(1)HttpSessionBindingListener监听器
HttpSession中绑定和解除绑定时,将会通知HttpSessionListener监听器
常用方法如下:
方法声明 | 功能介绍 |
void valueBound(HttpSessionBindingEvent event) | 有对象绑定时调用该方法 |
void valueUnbound(HttpSessionBindingEvent event) | 有对象解除绑定时调用该方法 |
例子:
<1> 创建Person.java分装类
<2> 将对象绑定 / 解除绑定
<3> 创建sessionBind.jsp,测试绑定 / 解除绑定
<4> 不需要在web.xml中配置此监听器
效果:
访问seesionBind.jsp:
(2)HttpSessionActivationListener监听器
当有session数值的钝化(又名持久化,将session里的数值写入到硬盘中)和活化(反序列化,从硬盘里把数据读取出来,放置到内存中)操作时,
将会通知HttpSessionActivationListener监听器。
常用方法如下:
方法声明 | 功能介绍 |
void sessionWillPassivate(HttpSessionEvent se) | 有钝化操作时调用该方法 |
void sessionDidActivate(HttpSessionEvent se) | 有活化操作时调用该方法 |
配置context.xml文件的方式如下:
<Manager className="org.apache.catalina.session.PersistentManager" saveOnRestart="true"> <!-- 配置文件存放的路径信息,可以自由指定 --> <Store className="org.apache.catalina.session.FileStore" directory="C:session"/> </Manager>
例子:
<1> 创建Student.java类
<2> 创建sessionActivate.jsp,创建数据
<3> 在Student.java类中,实现HttpSessionActivationListener接口
<4> 停止服务器,由于之前已经设置了序列化操作,所以钝化操作操作会自动进行
<5> 效果:数据已储存在本地
<6> 准备进行活化操作
1. 需要先配置文件存放的路径信息(context.xml)
2. 创建sessionGet.jsp,触发数据的活化操作
<7> 重启服务器,访问sessionGet.jsp
效果: