WEB中两个特殊的监听器HttpSessionBindingListener和HttpSessionActivationListener (活化与钝化)

HttpSessionBindingListener 实现此接口类的类,不必在web.xml中进行配置。 实现此接口的类,通常是一个JavaBean,一个JavaBean通过实现此接口,可以感知自己是否添加到了Session中。或是感知自己是否从Session中移除。  示例:

public class Person implements HttpSessionBindingListener {

  public void valueBound(HttpSessionBindingEvent arg0) {

    System.err.println("我被添加到了Sesion中"+arg0.getName());

}

   public void valueUnbound(HttpSessionBindingEvent arg0) {

    System.err.println("我从Session中被移除了....");

}

}

//

HttpSessionActivationListener

实现此接口的JavaBean,可以感知自己被活化(从硬盘到内存)和钝化(从内存到硬盘)的过程。 如果需要同时保存Session中的JavaBean则JavaBean也要实现Serializable序列化接口。 实现此接口的JavaBean与HttpSessionBindingListener一样,不必配置到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>

 

第一步:书写一个JavaBean,并实现HttpSessionActivationListener接口如下:

第二步:JSP页面,判断是否存在Person,如果没有将Person放到Session中:

第三步:配置Tomcat的Server.xml文件或是将配置好的xml发布文件放到CATALIINA_HOME\conf\Catalina\localhost目录下:

第四步:测试

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

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值