JavaBean是一种可重复使用、且跨平台的软件组件。JavaBean可分为两种:一种具有用户界面(UI,User Interface)的JavaBean,还有一种是没有用户界面的,主要负责处理事务(如数据运算、操纵数据库)的JavaBean。JSP通常访问的 是后一种。
在JSP网页中,既可以通过程序代码来访问JavaBean,也可以通过特定的JSP标签来访问JavaBean。
访问JavaBean的JSP标签:
1. 导入JavaBean类
<%@ page import = "mypack.CounterBean"%>
2. 声明JavaBean对象
<jsp:useBean id = "myBean" class = "mypack.CounterBean" scope = "session" />
<jsp:useBean>标签中id代表JavaBean对象的变量名,class用来指定JavaBean的类名,scope用来指定 JavaBean对象的范围。如果在scope指定的范围内,该JavaBean对象不存在,则创建这个JavaBean对象,如果在scope指定的范 围内,该JavaBean对象已经存在,则直接获得已经存在的JavaBean对象的引用。
在<jsp:useBean>标签中,指定class属性时,必须给出完整的JavaBean的类名(包括类所属的包的名字)。
3. 访问JavaBean属性
JSP提供了访问JavaBean属性的标签,如果要将JavaBean的某个属性输出到网页上,可以用<jsp:getroperty>标 签;如果要给JavaBean的某个属性赋值,可以用<jsp:setProperty>标签。
scope属性决定了JavaBean对象存在的范围。scope可选值包括page、request、session和application。scope默认属性值为page。
在page范围内:客户每次请求访问JSP页面时,都会创建一个JavaBean的对象。JavaBean对象的有效范围是客户请求访问的当前JSP网页。JavaBean在以下两种情况下都会结束生命周期:
客户请求访问的当前JSP网页通过<forward>标记将请求转发到另一个文件;
客户请求访问的当前JSP页面执行完毕并向客户端发回响应。
在request范围内:客户每次请求访问JSP页面都会创建一个新的JavaBean对象。其有效范围为:
客户请求访问的当前页面
和当前JSP网页共享同一个客户请求的网页,即当前JSP网页中<%include>指令以及<forward>标记包含的其他JSP文件。
当所有共享同一个客户请求的JSP页面执行完毕并向客户端发出响应时,JavaBean对象结束生命周期。
在session范围内:JavaBean对象被创建后,它存在于整个Session的生命周期内,同一个Session中的JSP文件共享这个JavaBean对象。
在application范围内:JavaBean对象被创建后,它存在于整个Web应用的生命周期内,Web应用的所有JSP页面都能共享同一个JavaBean对象。
在JSP网页中,既可以通过程序代码来访问JavaBean,也可以通过特定的JSP标签来访问JavaBean。
访问JavaBean的JSP标签:
1. 导入JavaBean类
<%@ page import = "mypack.CounterBean"%>
2. 声明JavaBean对象
<jsp:useBean id = "myBean" class = "mypack.CounterBean" scope = "session" />
<jsp:useBean>标签中id代表JavaBean对象的变量名,class用来指定JavaBean的类名,scope用来指定 JavaBean对象的范围。如果在scope指定的范围内,该JavaBean对象不存在,则创建这个JavaBean对象,如果在scope指定的范 围内,该JavaBean对象已经存在,则直接获得已经存在的JavaBean对象的引用。
在<jsp:useBean>标签中,指定class属性时,必须给出完整的JavaBean的类名(包括类所属的包的名字)。
3. 访问JavaBean属性
JSP提供了访问JavaBean属性的标签,如果要将JavaBean的某个属性输出到网页上,可以用<jsp:getroperty>标 签;如果要给JavaBean的某个属性赋值,可以用<jsp:setProperty>标签。
scope属性决定了JavaBean对象存在的范围。scope可选值包括page、request、session和application。scope默认属性值为page。
在page范围内:客户每次请求访问JSP页面时,都会创建一个JavaBean的对象。JavaBean对象的有效范围是客户请求访问的当前JSP网页。JavaBean在以下两种情况下都会结束生命周期:
客户请求访问的当前JSP网页通过<forward>标记将请求转发到另一个文件;
客户请求访问的当前JSP页面执行完毕并向客户端发回响应。
在request范围内:客户每次请求访问JSP页面都会创建一个新的JavaBean对象。其有效范围为:
客户请求访问的当前页面
和当前JSP网页共享同一个客户请求的网页,即当前JSP网页中<%include>指令以及<forward>标记包含的其他JSP文件。
当所有共享同一个客户请求的JSP页面执行完毕并向客户端发出响应时,JavaBean对象结束生命周期。
在session范围内:JavaBean对象被创建后,它存在于整个Session的生命周期内,同一个Session中的JSP文件共享这个JavaBean对象。
在application范围内:JavaBean对象被创建后,它存在于整个Web应用的生命周期内,Web应用的所有JSP页面都能共享同一个JavaBean对象。