Geronimo!第 3 部分: 状态问题
2009-11-11 00:00:00 来源:WEB开发网像这样的事件通知让对象能够在特定的时间完成与正在发生事件密切相关的事情,如将会话已经发生这一事实记入日志,这将导致会记录下更多的用户购物习惯。可以用这种方式触发各种各样的高级数据挖掘规则。
服务器状态
服务器上进行的会话管理包括许多任务,这些任务也许在直观上并不明显。但每个会话都消耗服务器资源(特别是内存),这些资源必须在会话超时时收回。会话的超时值依赖于许多因素,对这些因素的详细介绍超出了本文讨论的范围,可以用应用程序的部署工具来设定该值。或者,会话对象本身可以通过调用 getMaxInactiveInterval() 或 setMaxInactiveInterval() 方法来获取或设定该超时值。
每个会话都有一个与其相关联的生存时间计数器,一个比较好的做法是定时地使用服务方法来访问该会话,因为这样做会重置计数器且会阻止会话的超时(实例化及终止会话会消耗大量的 CPU 和内存资源,因而最好是在合理的时间内保持会话的活动)。
这就是为什么要向用户显示 Sign out 或 Log off 这类的按钮并鼓励用户去使用这些按钮的原因之一。当用户单击该按钮时,实质上告知服务器该会话已经结束,随后会调用该会话的 invalidate() 方法来清理服务器上该会话的数据并收回前面提到的资源。清单 2 中的代码说明了这一过程。
清单 2. FinishServlet public class FinishServlet extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// Get session and shopping cart information and end the session.
HttpSession theSession = request.getSession();
theSession.invalidate();
- ››Geronimo V2.1.5 中的安全提升
- ››Geronimo 叛逆者: Apache Geronimo 的 JMS 实现:...
- ››Geronimo 叛逆者: Geronimo 与 Apache 许可带来的...
- ››Geronimo 叛逆者: 加入集群功能
- ››Geronimo 叛逆者: 摒弃 JBoss,使用 Apache Geron...
- ››Geronimo 叛逆者: 使用集成软件包:Codehaus 的 W...
- ››Geronimo 叛逆者: 直面 JSF
- ››部分 WM6.5 手机有望升级到 Windows Phone 7
- ››Geronimo!第 2 部分: 构建 Geronimo
- ››Geronimo!第 3 部分: 状态问题
- ››Geronimo!第 4 部分: 模式
- ››Geronimo 叛逆者: 使用集成程序包:GlassFish JST...
更多精彩
赞助商链接