HTTP Session 管理[转]

原创 2005年04月24日 10:31:00
HTTP Session 管理
  当用户没有从会话中注销就关闭浏览器时,用户会话中的EJB不会被垃圾收集。这就是内存中有太多EJB的主要原因。要避免这种情况,HTTP session 管理必须注意所有可能的结合。我们可以在web.xml (Web应用程序部署描述符)中设置一个默认的会话超时周期,如下所示:

<session-config>
<session-timeout>x</session-timeout>
<session-config>


  通过这个设置,用户的会话会在不活动x分钟后自动释放。
  另一种方法是在创建HTTP session时用下面的代码编写会话管理

HttpSession session=new HttpSession ();
session.setmaxinactiveinternal(int timeoutSeconds);


  这段代码会使不活动了timeoutSeconds时间的用户会话失效。
  注意:如果您把两个步骤都做了,那么在servlet代码中的值将覆盖在web.xml中设置的值。
  这两种方法惟一的不同点是第二种方法以秒作为参数,而 <session-timeout> 标记则是以分钟作为参数。通常,当会话失效后,logoff servlet/JSP 会用代码删去被特殊会话所引用的所有对象/对象图形的引用。但是当用户只是关闭浏览器时,就没有办法调用注销servlet/JSP。在这种情况下,即使会话已经失效,被封装的对象和对象图形会继续存在。当垃圾收集器试图对该会话进行垃圾收集时,它也会对所有这些封装对象进行收集。当我们有大对象时(拥有大的引用/数据的对象),我们也可以用HTTPSessionListener接口来进行同样的清除工作。

javax.servlet.http.HTTPSessionListener 接口
  该接口声明了下面两种回调方法:

Public void sessionCreated(HttpSessionEvent event);
Public void sessionDestroyed(HttpSessionEven event);


  这些方法在一个会话被创建/销毁前被调用。
  我们可以使用一个实现了这个接口的监听器类,并用这些回调方法来控制会话的创建和销毁。我们需要像下面这样在web.xml中注册我们的监听器类:

<listener>
<listener-class>MySessionListener</listener-class>
</listener>


  使用监听器类以及在web.xml文件中添加会话超时参数的好处是我们能对会话管理进行更多的控制。如果会话拥有大对象,那么在垃圾收集器清除这些对象之前,它的时间片可能会消失。在这种情况下,就需要等到下一个时间片才能清除这些对象。
  注意:我们所设计的应用程序只有一个进入点是很重要的。我们需要在这个类中启动一个新的 HTTP session。所有余下的页面应该检查 HTTP session 是否存在,并且当会话为null时(Session 到期)调入一个错误页面。这样就可以实现对 HTTP session 的集中控制。

http相关知识 - (2)状态管理 - session

http相关知识 - (2)状态管理 - session
  • It_rod
  • It_rod
  • 2017年02月21日 22:44
  • 312

http负载均衡/反向代理下常见的Session管理策略

引言       对于高性能Web系统而言,分布式的架构似乎是一种不可阻挡的趋势。在对于并发量巨大,而单个事务处理逻辑简单、计算量很小的系统而言,采用http负载均衡/反向代理是一种非常有效而且...

Tomcat7集群共享Session 基于redis进行统一管理(转)

背景:       很多时候,生产环境,需要多个tomcat协作,那么session的统一管理是一个首先需要解决的问题。session的统一管理有很多解决方案,比如存储至数据库、memcache、r...
  • gjq246
  • gjq246
  • 2017年03月10日 09:16
  • 811

java的会话管理:Cookie和Session(转)

java的会话管理:Cookie和Session 1.什么是会话 此处的是指客户端(浏览器)和服务端之间的数据传输。例如用户登录,购物车等 会话管理就是管理浏览器客户端和服务端之间会话过...

理解HTTP session原理及应用

  • 2015年04月24日 17:28
  • 30KB
  • 下载

【转】Python 包管理工具解惑【原文:http://zengrong.net/post/2169.htm】

Python 包管理工具解惑 本站文章除注明转载外,均为本站原创或者翻译。 本站文章欢迎各种形式的转载,但请18岁以上的转载者注明文章出处,尊重我的劳动,也尊重你的智商; 本站部...

转】第三章 HTTP状态管理--httpclient4 中文版帮助文档,最新官方版翻译版

第三章 HTTP状态管理 原始的HTTP是被设计为无状态的,面向请求/响应的协议,没有特殊规定有状态的,贯穿一些逻辑相关的请求/响应交换的会话。由于HTTP协议变得越来越普及和受欢迎,越来越多的从前...

session会话管理

  • 2014年08月04日 20:18
  • 278KB
  • 下载

集中式session管理方案

  • 2011年06月03日 21:29
  • 308KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:HTTP Session 管理[转]
举报原因:
原因补充:

(最多只允许输入30个字)