javabean结构
package com.lesson7.bean;public class Circle{private int radius;public Circle(){radius=1;}public int getRadius(){ //get方法return radius;}public void setRadius(int newRadius){ //set方法radius=newRadius;}public double circleArea(){return Math.PI*radius*radius;}public double circlLength(){return 2.0*Math.PI*radius;}}
属性以小写字母开头,驼峰命名格式,相应的 getter/setter 方法是 get/set 接上首字母大写的属性名
javabean使用:(注意全都可以是自闭合标签)
声明javabean并实例化
//在 JSP页面中通过import指令引入bean<%@ page import="com.lesson7.bean.*"%>//通过useBean标记来创建bean对象<jsp:useBean id="bean_name" class="创建bean的类" scope="bean的有效范围"/>
1.创建bean的类要带有完整的包名,如com.lesson7.bean.*
2.scope表示bean的取值范围,可取page,session,request和application,代表不同的作用范围
调用javabean
调用javabean有两种方法:
直接调用javabean方法:如circle.getRadius()
或者取得bean属性<jsp:getProperty name="beanname" property="propertyname" />
name为bean名字,property为bean的属性。
几种设置bean属性的方法
直接设置bean属性(相比于getProperty多了个value属性):
<jsp:setProperty name="Name" property="property" value="Value" />
利用表单为属性赋值:
//param要和传入表单的name一致<jsp:setProperty name="student" property="name" param="xingming"/>//如果表单name和Bean的property相同 则可以省略param<jsp:setProperty name="beanName" property="xingming"/>//如果均一一对应 则可以用全部赋值<jsp:setProperty name="beanName" property="*" />
转发之前页面为一表单,跳转之后用setProperty赋值,这时就没有了value(要求表单项的name和Bean的Property相同)
整体赋值(要求set方法齐全,且表单的参数name一一对应于bean的属性):
<jsp:setProperty name="beanName" property="*" />
关于生命周期(scope)
page<request < session < application
- page
仅在一个页面上生效。
- request
只在一次请求上(请求转发不算,因为转发是服务器端的行为)生效,当把信息返回给客户端,该对象就被摧毁。 - session
是服务器端的行为,一个用户对应一个,session过期或者关闭浏览器后失效,一个用户就好比一个session对象,互不干扰。
用于登录和购物车。
- application
服务器结束后才失效,所有用户共享一个application。
用于统计网站访问总次数。
