快速业务通道

走上开放之路: ASP开发人员的J2EE基础(下) - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-17
制任何存储的数据得有效 时间。持续时间从处理某个特定页面所需的时间(临时存储一些数据),到应用程序运行生 命期(长期存储数据)不等。J2EE 中的“存储位置”选择称为特定存储请求或检索的 范围 。该范围决定了您将把数据附加到哪些 J2EE 对象,以及那些数据将在多长时间内可用。可 用的范围是:

会话:这类似于 ASP 中的会话范围。只要会话还是活动的,您就可以在该用户会话范围 内放置任何 Java 对象并检索它。J2EE 应用程序使用 HttpSession 接口(类似于 ASP 中的 SESSION )。可以使用 String 作为标签将对象添加到会话中,并使用相同的标签来检索它 。

请求:在 J2EE 中,HttpServletRequest 对象允许您向它附加数据,这非常类似 HttpSession interface 接口。当多个资源处理单个请求时,这是很有用的。例如,某个 Java Servlet 可能是一个 HTML 表单提交的目标,然后它将请求转发给一个 JSP 页面以完 成它。在这个例子中,该 sevlet 能够向 HttpRequest 对象附加数据,并且 JSP 页面能够 访问它。注意在这种场景中,该 servlet 和 JSP 页面都使用相同的 HttpRequest 对象。

应用程序:所有 J2EE Web 应用程序在部署之前都打包到一个具有 .war 扩展名的文件中 。该文件的格式是标准的,因此您可以把同一个应用程序部署到不同的应用服务器。单个 .war 文件中的所有 J2EE 组件都被认为是同一个应用程序的组成部分,并且共享共同的应用 程序上下文。这是通过 ServletContext 接口向开发人员公开的,这个接口(就像 HttpSession 和 HttpRequest 口一样)允许您附加和删除任何 Java 对象。只要应用程序还 在运行,添加到 ServletContext 的项就可用,并且会在单独会话的创建和销毁过程中保留 下来。这类似于 ASP 中的 APPLICATION 对象。

页面:页面上下文在处理单个页面的过程中可用。如,JSP 页面顶部的 Java scriptlet 能够在 PageContext 中放置对象,然后相同页面中的其他 scriptlet 就可以访问它。

管理应用程序状态

现在您已经对范围有了更好的了解,下面我们可以深入地讨论管理 J2EE Web 应用程序中 的状态的机制。最佳实践是,对于任何临时的状态存储,您都应该确定需要存储该数据多长 时间,然后使用满足需要的、具有最短生存时间的范围。例如,假设您需要某个 JSP 页面中 的数据,该 JSP 页面是从某个 servlet 转发的请求的目标。虽然会话状态和应用程序状态 也满足您的需要,但是在这两种情况下,数据都会在使用完之后悬置在那里。这样不必要地 增加了当前应用程序的资源需求。对于这个例子,请求范围能够满足需要,却不会在您不需 要之后还将数据悬置在那里。

管理 JSP 页面中的状态

在 JSP 脚本环境中,所有范围对象都是用隐含变量来表示的。您可以在自己的 sciptlet 中使用这些变量,而不需要显式地声明它们。可以使用的隐含变量有:

session: 实现 HttpSession 接口的类的一个实例。

application:实现 HttpSession 接口的类的一个实例。

request:实现 HttpServletRequest 接口的类的一个实例。

pageContext: PageContext 类的一个实例。

走上开放之路: ASP开发人员的J2EE基础(下)(9)

时间:2011-04-09 IBM Jeff Wilson

清单 31 展示了如何在 JSP scriptlet 中针对不同的范围添加和删除对象。

清单 31. JSP 页面中的状态管理

<%@ page contentType="text/html; charset=iso-8859-1" language="java" session="true" %> <% String foo = "I am a Foo"; // Place object in session scope session.setAttribute("Foo", foo); // Retrieve from session scope String sessionFoo = (String) session.getAttribute(&q

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号