走上开放之路: .NET开发人员的J2EE基础(下) - 编程入门网
Step 5 与前一个例子相同,不过要注意 Step 5 中对 close() 方法的调用仅把连接返回池中,而不是关闭该数据库连接。
J2EE 应用程序状态管理 在编写 J2EE Web 应用程序时,可以任意选择一组丰富的类和接口来管理应用程序的状态 。我们将介绍 J2EE HttpSession 类(它类似于 ASP.NET HttpSessionState 类),以及允 许您管理应用程序状态的其他类和接口。我们还会讨论如何同时在 Java Servlets 和 JSP 页面中使用这些类和接口。不过,我们将首先介绍 范围的概念,它是理解 J2EE 中的应用程 序状态管理的关键。 范围 从程序员的角度看,状态管理涉及临时地存储数据和在需要时检索它们。在 J2EE 中,您 可以选择多个“存储位置”,每个位置具有它自己规则,控制着所存储的任何数据在多长时 间内可用。持续时间范围从处理特定页面时临时存储一些数据到在应用程序运行生命期内存 储数据不等。J2EE 中的“存储位置”选择称为特定存储请求或检索的 范围。该范围决定了 您将把数据附加到哪些 J2EE 对象,以及那些数据将在多长时间内可用。可用的范围宝库o: 会话:这类似于 ASP.NET 中的会话范围。只要会话还是活动的,您就可以在该用户会话 范围内放置任何对象并检索它。J2EE 应用程序使用 HttpSession 接口(类似于 ASP.NET 中 的 HttpSessionState )。对象通过一个 String 作为标签来添加到会话中,并使用相同的 标签来检索它。 请求:在 J2EE 中, HttpServletRequest 对象允许您向它附加数据,这非常类似 HttpSession 接口。当多个资源处理单个请求时,这是很有用的。例如,某个 Java Servlet 可能是一个 HTML 表单提交的目标,然后它将请求转发给一个 JSP 页面以完成它。在这个例 子中,该 sevlet 能够向 HttpRequest 对象附加数据,并且 JSP 页面能够访问它。注意在 这种场景中,该 servlet 和 JSP 页面都使用相同的 HttpRequest 对象。向相同请求内的不 同资源转发的能力类似于 ASP.NET 中的 Server.Transfer 。 应用程序:所有 J2EE Web 应用程序在部署之前都打包到一个具有 .war 扩展名的文件中 。该文件的格式是标准的,因此您可以把同一个应用程序部署到不同的应用服务器。单个 .war 文件中的所有 J2EE 组件都被认为是同一个应用程序的组成部分,并且共享共同的应用 程序上下文。这是通过 ServletContext 接口向开发人员公开的,这个接口(就像 HttpSession 和 HttpRequest 接口一样)允许您附加和删除任何 Java 对象。只要应用程序 还在运行,添加到 ServletContext 的项就可用,并且会在单独会话的创建和销毁过程中保 留下来。 页面:页面上下文在处理单个页面的过程中可用。例如,JSP 页面顶部的 Java scriptlet 能够在 PageContext 中放置对象,然后相同页面中的其他 scriptlet 就可以访 问它。 管理应用程序状态 现在您已经对范围有了更好的了解,下面我们可以深入地讨论管理 J2EE 应用程序中的状 态的机制。最佳实践坚持认为,对于任何临时的状态存储,您都应该确定需要存储该数据多 长时间,然后使用满足需要的、具有最短生存时间的范围。例如,假设您需要某个 JSP 页面 中的数据,该 JSP 页面是从某个 servlet 转发的请求的目标。虽然会话状态和应用程序状 态也满足您的需要,但是在这两种情况下,数据都会在使用完之后悬置在那里。这样不必要 地增加了当前应用程序的资源需求。对于这个例子,请求范围能够满足需要,却不会在您不 需要之后还将数据悬置在那里。 走上开放之路: .NET开发人员的J2EE基础(下)(9)时间:2011-04-09 IBM David Carew管理 JSP 页面中的状态 在 JSP 脚本环境中,所有范围对象都是用隐含变量来表示的。您可以在自己的 sciptlet 中使用这些变量,而不需要 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |