快速业务通道

J2EE探索: 有状态网络的J2EE技术 - 编程入门网

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

J2EE探索: 有状态网络的J2EE技术

时间:2011-04-11 IBM Kyle Gabhart

在 J2EE 探索系列的 第一部分中,我们首先研究了 J2EE 中状态管理的最新技术。上个 月,我们讨论了 J2EE 中管理无状态网络的最佳选项;这个月我们将讨论管理有状态网络的 技术。

首先我将简要介绍有状态应用程序管理,然后谈论不同的解决方案如何应用于 Web 层或 业务层。接下来,我将比较 J2EE 中有状态应用程序管理技术的优缺点。就象在前一部分中 一样,我们将通过研究每种技术最常用的一些实现,以及用于为您的企业选择合适解决方案 的一些最佳实践来结束本文。

请注意,对于本文而言,JSP(Java ServerPages)文件被认为是专用类型的 servlet。

有状态应用程序管理

您可能会回想起来,在上一篇文章中,Web 应用程序协议被分成两大类别: 无状态 (stateless)和 有状态(stateful),协议的 状态指的是它“记忆”从一个传输到下一个 传输的信息的能力。因为有状态连通性是大多数企业应用程序的基本需求之一,并且因为 Web 应用程序依赖于 HTTP(内在的无状态协议),所以聪明的开发人员已经找到了许多技巧 来在 HTTP 上模拟有状态连接。有状态信息可以存储在 HTML 表单字段中、附加到超链接或 者存储在客户机端的 cookie 中。

客户机和服务器之间的有状态交互可以在 Web 层或业务层上进行管理。要在 Web 层上管 理状态,我们使用与 HTTPSession API 结合的 servlet。要在业务层上管理状态,我们使用 有状态会话 EJB 组件。在接下来的章节里,我们将探究这两种开发选项。

Web 层

Servlet 体系结构的 HTTPSession API 允许应用程序开发人员管理跨网络的客户机/服务 器交互(或 会话)的状态。 HTTPSession 接口定义了 HTTPSession API 的核心功能。它为 J2EE 应用程序提供了一种方法,使它可以识别跨多个页面请求的单个客户机,以及将数据存 储在与那个客户机相关联的服务器上。通过该接口,servlet 容器创建和管理客户机和服务 器之间的会话。该会话由 HTTPSession 对象表示,它可以跨来自相同客户机的多个连接和页 面请求持续存在一段特定的时间。Servlet 使用该接口来查看与处理有关会话的信息,如创 建时间和上一次访问会话的时间。该接口还允许 servlet 将对象绑定到会话,从而以一种跨 多个连接(来自相同客户机)持续存在的方式将该信息与特定的客户机进行关联。

因此, HTTPSession 接口允许 servlet 容器创建和管理客户机会话,并且使 servlet 能访问与会话相关的信息、将对象绑定到会话以及访问先前绑定的对象。到现在为止,一直 都还不错。但是 servlet 容器如何跟踪通过无状态协议(如 HTTP)通信的客户机呢?为了 实现这一点,为每个 HTTPSession 对象都提供一个唯一的标识,以确保每个客户机会话和与 会话相关的数据可以被唯一标识。考虑到 HTTP 内在的无状态本质,在每次请求时,该会话 标识必须被客户机传递给服务器,以便于 servlet 容器将客户机与正确的会话相关联。会话 标识可以用三种方式中一种进行传递:作为 HTML 表单中的参数(通常是隐藏字段);作为 附加在查询字符串后的参数;或者作为 cookie 的属性。不管会话标识如何传递,servlet 容器都将拦截它,检查它,并找到与之关联的 HTTPSession 对象。

Servlet 性能

由 Servlet 体系结构创建的轻量级线程模型决不会因为 servlet 或 JSP 文件创建、读 取或修改 HTTPSession 对象而受到破坏。该对象只是将对象引用存储为简单键-值对的散列 表或类似的集合。同样, HTTPSession 内存空间的实现本身也是轻量级的,只需要存储(或 许序列化)会话对象和相应的会话标识。简而言之,servlet 可以支持与 HTTP 客户机的有 状态交互,而且对应用程序设计或容器资源

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