监听HttpSession中Java类状态改变的监听器

本文深入探讨了Servlet中的两种特殊监听器:HttpSessionBindingListener与HttpSessionActivationListener,它们用于跟踪Java类在Session域中的状态变化。文章详细解释了如何通过实现这些接口来监控类的绑定、解除绑定、钝化和活化过程,并提供了配置session序列化的具体方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第三类监听器概述

保存在Session域中的Java类可以有多种状态:

  • 绑定到session中;
  • 从session中解除绑定;
  • 随session对象持久化到一个存储设备中(钝化);
  • 随session对象从一个存储设备中恢复(活化);

Servlet中定义了两个特殊的监听的接口来帮助Java类了解自己在Session域中的状态:

  • HttpSessionBindingListener接口

  • HttpSessionActivationListener接口

实现这两个接口的类不需要在web.xml中进行配置。

1.HttpSessionBindingListener监听器

在这里插入图片描述


bean代码:
在这里插入图片描述
jsp代码:
在这里插入图片描述


2.HttpSessionActivationListener监听器

监听Httpsession中Java类的钝化和活化监听器。

在这里插入图片描述
bean代码
在这里插入图片描述

配置完成session的序列化和反序列化

Context标签可以配置在:
  • tomcat/conf/context.xml
    所有tomcat下虚拟主机和虚拟目录下的工程都会序列化sessions
  • tomcat/conf/Catalinalocalhost/context.xml
    localhost 虚拟主机下的所有项目会序列化session
  • 工程/META-INF/context.xml
    当前工程才会序列化session。
<Context>
	<Manager className="org.apache.catalina.session.PersistentManager" maxIdleSwap="1">
	<Store className="org.apache.catalina.session.FileStore" directory="xxx"/>
	</Manager>
</Context>


1分钟不操作,就序列化到xxx位置去
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值