Web---Listener---钝化与活化

HttpSessionActivationListener

  • 实现此接口的JavaBean,可以感知自己被活化(从硬盘到内存)钝化(从内存到硬盘)的过程。
  • 如果需要同时保存Session中的JavaBeanJavaBean也要实现Serializable序列化接口。
  • 实现此接口的JavaBeanHttpSessionBindingListener一样,不必配置到web.xml中。

要实现此功能,必须要先配置以下信息:

<Context path="/myProj" docBase="D:/programfiles/projects/MyProj/WebRoot">
<!-- 配置会话的持久化 -->
<Manager className="org.apache.catalina.session.PersistentManager"
 saveOnRestart="true"
 maxActiveSessions="1"
 minIdleSwap="120"
 maxIdleSwap="180"
 maxIdleBackup="5"
 maxInactiveInterval="1800">
<Store className="org.apache.catalina.session.FileStore"
       directory=“保存目录">
</Store>
</Manager>
</Context>

本次测试运行环境是Tomcat8.5,该版本不需要配置,钝化的文件就在当前项目的运行目录中,当然要修改位置可以通过上面的模板进行配置。

运用场景

当项目已经投入运营时,遇到维护时需要重启服务器,而有些信息是存储在用户的session中,如果不进行钝化用户的一些信息存在丢失的可能。

测试过程

  1. 多次开启新的浏览器窗口,并记录SESSIONID
  2. 使用shutdown.bat关闭tomcat应用。
  3. 观察指定的目录下是否存在*.session文件。
  4. 再次重新启动tomcat,并使用http://localhost:8080/projectName;jsessionid=xxxxx指定sessionid的方式访问服务器。
  5. 观察是否为关闭tomcat之前的同一个Session
  6. 一般情况下,PersistentManager持久化SessionCookie共同使用。
  7. HttpSessionActivationListener只做为监听类,监听自己是否钝化或是活化。

完整代码链接

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值