JavaBean是一种可重复使用的且跨平台的软件组件,可分为二种:一种是有用户界面(User Interface,UI)的JavaBean,另外一种是没有界面的,主要负责表示业务数据或者处理事务(如数据运算,操纵数据库)的JavaBean。JSP中通常为后一种
一个标准的JavaBean有以下特征:
1.JavaBean是一个公共的(public)类
2.JavaBean有一个不带参数的构造方法
3.JavaBean通过get得到属性值,通过set方法获取属性值
4.属性名与get,set方法存在固定对应关系。如:属性名为xyz那么对应的get和set方法为getXyz()和setXyz();
5.如果希望JavaBean持久化,实现java.io.Serializable接口
JSP中访问JavaBean语法
1.导入JavaBean类
2.声明JavaBean对象
3.访问JavaBean属性示例:
package com.jzbr.entity;public class CountBean {
private int count =0; public CountBean(int count) {
this.count = count;
} public int getCount() {
return count;
} public void setCount(int count) {
this.count = count;
}
}1.在Jsp页面中通过<%@page import="com.jzbr.entity.CountBean"%>导入Bean
2.通过<jsp:useBean>标签来声明JavaBean对象如下:
<jsp:useBean id="myBean" class="com.jzbr.entity.CountBean" scope="session"/>
声明了一个名为myBean的JavaBean对象
id:表示引用JavaBean对象的局部变量名。具有唯一性
class:用来指定JavaBean的类名,必须为完整类名即包括包名
scope:指定JavaBean存放的范围,可选值为page,request,session,application上述<jsp:useBean>标签等价于如下java代码:
CountBean myBean = null;
myBean = (CountBean)session.getAttribute("myBean");
if(myBean==null){
myBean = new CountBean();
session.setAttribute("myBean",myBean);
}
3.通过下面jsp标签访问或设置javaBean属性
<jsp:getProperty property="count" name="myBean"/>
等价于<%=myBean.getCount()%>
<jsp:setProperty property="count" name="myBean" value="1"/>
等价于<%=myBean.setCount(1)%>
name:与<jsp:useBean>标签中的id值相对应
property:对应CountBean类中对应的get,set方法
value:设置属性值
JavaBean的范围
page:页面范围它是scope的默认值。对应时间段为:从客户请求一个JSP文件开始,到这个JSP文件执行结束。
示例:<jsp:useBean id="myBean" class="com.jzbr.entity.CountBean" scope="page"/> 在index.jsp页面中
那么客户每次访问index.jsp时,<jsp:useBean>标签都会创建一个CountBean对象,并把他存放在页面范围内,当客户请求访问当前index.jsp页面执行完毕,接着跳转至其它页面或客户请求index.jsp执行完毕并向客户端发回响应这二种情况都会使CounBean生命周期结束。数据存放在当前页面中 request:请求范围。对应时间段:访问一个jsp页面,到这个jsp页面返回响应结果时结束,如jsp将这个请求转发给另一个jsp页面,那么直到其它页面返回响应结果时结束。数据存放在HttpServletRequest对象中 session:会话范围。对应时间段为:同一个IE浏览器进程。数据存放在HttpSession对象中。 application:Web应用范围。对应时间段:当前web应用生存周期。数据存放在ServletContext对象中