快速业务通道

理解作用域和受管Bean - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-07-04

理解作用域和受管Bean

时间:2011-07-20

您在本教程中所创建的 Web 应用程序采用 application 范围内的一个对象来统计投票数,采用 session 范围内的一个对象来确保用户在每个会话中只能投票一次。该应用程序采用一个 request 范围内的对象来显示用户提交投票的时间。该时间存储在 request 范围,因为应用程序在响应被发送到客户端浏览器以后不再需要这个值。

本教程需要采用以下技术及资源

JavaServer Faces 组件/

Java EE 平台

理解作用域和受管Bean - 编程入门网1.2 和 Java EE 5*

理解作用域和受管Bean - 编程入门网1.1 和 J2EE 1.4

Travel 数据库 理解作用域和受管Bean - 编程入门网非必须

* 为了利用 NetBeans IDE 6.0 的 Java EE 5 能力,请采用一个完全符合 Java EE 5 规范的应用程序服务器,如 Sun Java Application Server 9/GlassFish 。

此教程已针对 GlassFish v2 应用程序服务器上的应用做出调整。如果您使用的是不同的服务器,请参阅发行说明及常见问题解答以了解已知问题和变通方法。要了解受支持的服务器和 Java EE 平台的信息,请参阅发行说明。

关于作用域

当用户停留在一个页面上的时候,即使页面重新显示,例如用户点击一个返回空值的按钮时,组件的值仍然被存储。然而,用户离开这个页面时,组件的值随即消失。

要让值对其他页面有效,或者对用户应当返回的相同页面有效,你需要存储值。当你从 IDE 里创建一个项目时, IDE 将创建三个 受管 Bean 用来存储值:

RequestBean1

SessionBean1

ApplicationBean1

下图所示的是一个列出了受管 Bean 的“导航”窗口。

理解作用域和受管Bean - 编程入门网

图表 1:默认的受管 Bean

一个受管 Bean 就是一个 JavaBean 对象,该对象被 JavaServer Faces web 应用程序所呈现并存储于request、session 或者 application 范围内。Web 应用程序将 RequestBean1 存储于 request 范围内,将 SessionBean1 存储于 session 范围内,并将 ApplicationBean1 存储于 application 范围内。

要向这些受管 Bean 添加属性,您可以右击“导航”窗体中的一个 bean 并在源代码中键入属性声明。右击 Java 编辑器中的任意处,然后选择“重构” > “封装字段”。然后从列表中选择属性并勾选要添加的方法,点击“构造”。

在创建一个 bean 属性来存储值之前,您必须决定属性值的适用作用域。因为许多用户可能在同一时间访问 web 应用程序,您需要使用尽可能最小的作用域以便对服务器资源进行最好的利用。下图展示了每种作用域的持续期。

Application 作用域将持续到服务器停止该应用程序为止。您存储在 application bean 中的值对于使用同一应用程序映射的每个会话和每个请求都是有效的。

Session 作用域在用户第一次访问 web 应用程序中的某一页面时开始,当用户的会话由于长时间处于非活动状态而超时,或者当 web 应用程序令会话无效时,例如通过调用 session.invalidate(),会话终止。

Request 作用域在用户提交页面时开始,当响应彻底完成时终止,不论返回的页面是什么。

理解作用域和受管Bean - 编程入门网

图表 2: Web 应用程序的作用域

理解作用域和受管Bean(2)

时间:2011-07-20

例如, 您的 web 应用程序有一个用于选择测量类型的下拉列表(像素、厘米和英寸)。您可能要将选项列表存储于 ApplicationBean1 中,以便当前所有的用户会话可以共享这个列表。另一方面,您可能将用户登陆名存储于 SessionBean1 中,以使该用户名对该用户在此会话中所访问的任何页面都有效。如果对于当前请求您不需要其生命周期以外的信息,您可以通过将属性置于 RequestBean1 中来节约空间开销。

警告: 如果您已在一个导航规则的 &l

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号