JavaBean组件程序设计(4)

来源:百度文库 编辑:神马文学网 时间:2024/04/29 17:46:37
页面Bean
页面Bean为JSP保留数据,不是实现应用程序流中的任何功能。在JSP和Servlet之间,
有4中不同的范围值。
范围级别 所影响的API 注释
页面page 服务方法中的本地变量 只用正在处理的Servlet
无法通过这些方法在JSP
和Servlet之间共享数据
请求request request.setAttribute(key,obj)
request.getAttribute(key)
用于正在处理的Servlet和接收转发控制Servlet
或JSP
会话session session.setAttribute(key,obj)
session.setAttribute(key)
用于相同范围内的任何
Servlet或JSP
应用程序application setServletContext()
setAttribute(key,obj)
getAttribute(key)
对象包含应用程序范围内的对象
共享Bean
可以这样去理解共享Bean的概念,在一个JSP页面(或Servlet)中修改了Bean的属性,然后
在另一个页面中读取这个Bean的属性,可以看到这种变化。这是实现数据共享的一种重要
方式,也是MVC架构的基础。
Bean一共有4中范围(Scope):page、request、session和application。page对应于本页面
使用,是不可以共享的Bean。后3种都可以共享、范围递增。
第一种在request范围内共享,第二种在session范围内共享,第三种在整个应用程序中共享。
在共享Bean的应用中,使用forward和include方法来完成请求的转发和包含。除了这两种方
法之外,其他的方法是无效的或不建议使用的。这里所描述的案例是JSP之间共享Bean,也
可以是JSP与Servlet之间或Servlet与Servlet之间共享Bean。比如默认的页面Bean不能共享
。数据。
1)请求Bean
请求Bean即Request Bean,是在request范围内共享的Bean。
和页面Bean区别是使用Bean的时候带上了scope="request"
发出请求的JSP或Servlet修改的属性值在结合搜请求的JSP或Servlet中可以读出来,但是
如果两个程序之间没有发生请求关系的话,数据就无法共享。如果编写一个独立的JSP程序
修改了Bean的属性值,scope为request。在写一个JSP程序,scope为request,它不接受第
一个JSP的请求,无法读取修改了的Bean的属性值。
2)会话Bean
会话Bean属于应用应用程序的用户会话,与表示方式无关,但是却可以指向资源和其他数据的
引用,这些数据有助于用户会话来维护和保存状态信息。例如,一个会话Bean可以通过会话保
存用户的姓名和地址。
会话Bean即Session Bean,在session范围内共享数据。它的作用范围比请求Bean大很多。即使
两个文件没有发生请求关系,但是也可以共享数据。
3)应用程序Bean
应用程序Bean的作用范围比会话Bean要广,可以用来帮助应用程序的所有用户维持状态。与会话
Bean相比,使用她们呢的机会少一些,但是,如果需要减少内存的消耗或提升显示的效果,使用
Bean是非常有用的,特别是当许多用户需要存取资料而这些资料的获取成本相对较高时。
应用程序Bean即Application Bean,在application范围内共享数据。它的范围是最大的。
两个文件没有发生请求关系,也不是连在一起的页面,但他们之间可以共享数据。因为application
范围是整个应用程序中的所有文件。