欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

JSP与JavaBeans

程序员文章站 2022-07-02 20:17:26
JSP与JavaBeans 1. 使用 beans 为了在JSP 页面中使用benas,我们必须使用JSP 动作标签:useBean useBean 格式:...
JSP与JavaBeans
1. 使用 beans
为了在JSP 页面中使用benas,我们必须使用JSP 动作标签:useBean
useBean 格式:
jsp:useBean id= “给bean 起的名字” class= “创建beans 的类”scope= “bean 有效范围”>
当服务器上某个含有 useBean 动作标签的JSP 页面被加载执行时,JSP 引擎将首先根据id 的名字,在一个同步块中,查找JSP 引擎内置
pageContent 对象中是否含有名字id 和作用域scope 的对象,如果这个对象存在,JSP 引擎就分配一个这样的对象给客户,如果在
pageContent 中没有查找到指定作用域、名字是id 的对象,就根据class指定的类创建一个名字是id 对象,即创建了一个名字是id 的beans,
并添加到pageContent 内置对象中,并指定该beans 的作用域是scope,同时JSP 引擎分配给客户一个作用域是scope、名字是id 的beans。
useBean 标签中scope 取值的不同情况阐述如下:
scope 取值page
JSP 引擎分配给每个客户的beans 是互不相同的,也就是说,尽管每个客户的beans 的功能相同,但它们占有不同的内存空间。该beans
的有效范围是当前页面,当客户离开这个页面时,JSP 引擎取消分配给该客户的beans。
scope 取值session
JSP 引擎分配给每个客户的beans 是互不相同的,该beans 的有效范围是客户的会话期间,也就是说,如果客户在多个页面中相互连接,
每个页面都含有一个useBeans 标签,这些useBean 标签中id 的值相同,并且scope 的值都是session,那么,该客户在这些页面得到的
beans 是相同的一个。如果客户在某个页面更改了这个beans 的属性,其它页面的这个beans 的属性也将发生同样的变化。当客户关闭浏览
器时,JSP 引擎取消分配给客户的beans。
scope 取值request
JSP 引擎分配给每个客户的beans 是互不相同的,该beans 的有效范围是request 期间。客户在网站的访问期间可能请求过多个页面,
如果这些页面含有socope 取值是request 的useBeans 标签,那么pageCotent 对象在每个页面分配给客户的beans 也是互不相同的。JSP
引擎对请求作出响应之后,取消分配给客户的这个beans。
scope 取值application
JSP 引擎为每个客户分配一个共享的beans,也就是说,所有客户共享这个beans,如果一个客户改变这个beans 的某个属性的值,那
么所有客户的这个beans 的属性值都发生了变化。这个beans 直到服务器关闭才被取消。
注:当使用作用域是session 的beans 时,要保证客户端支持Cookie.
为了使服务器的所有web 服务目录下的JSP 页面文件都能使用我们的beans,我们必须将上面编译通过生成的字节码类文件:
Circle.class 拷贝到JSP 引擎的classes 文件夹下, 即D:tomcat\Jakarta-tomcat-4.0\classes 下,另外,在使用 beans 的JSP 页面中,
必须有如下的import 指令:
如果想让某个 beans 只对examples 目录下的JSP 页面可用,那么创建该beans 的字节码文件需存放在webapps/example/Web-inf/classes目录中,
2.获取和修改 beans 的属性
当我们使用useBean 动作标签创建一个beans 后,在java 程序片中这个beans 就可以调用方法产生行为,比如修改属性。获取或修改beans 的属性还
可以使用动作标签getProperty、setProperty
2.1getProperty 动作标签
使用该标签可以获得beans 的属性值,并将这个值用串的形式显示给客户
getProperty 动作标签:

其中,name 取值是beans 的名字,用来指定要获取哪个beans 的属性的值;property 取值是该beans 的一个属性的名字。该指令的作
用相当于在程序片中使用beans 调用getXxx()方法。
2.2 setProperty 动作标签
使用该标签可以设置beans 的属性值。
setProperty 动作标签可以通过3 种方式设置beans 属性的值。
(1)将benas 属性的值设置为一个表达式的值或字符串。
benas 属性的值设置为一个表达式的值:
benas 属性的值设置为一个字符串:
(2)使用setProperty 设置beans 属性值的第2 种方式是:
通过HTTP 表单的参数的值来设置beans 的相应属性的值,要求表单参数名字必须与beans 属性的名字相同,JSP 引擎会自动将字符串转换为beans 属性的类型。

该标签不用再具体指定 beans 属性的值将对应表单中哪个参数指定的值,系统会自动根据名字进行般配对应。
(3)使用setProperty 设置beans 属性值的第3 种方式是:
通过request 的参数的值来设置beans 的相应属性的值,要求request 参数名字必须与beans 属性的名字相同,JSP 引擎会自动将request 获取的
字符串数据类型转换为beans 相应的属性的类型。

注:需要注意的是,只有提交了和该beans 相对应的表单后,该指令标签才被执行。
注:不能在中同时使用value 和param。
@page>