Listener监听器 - HttpSessionBindingListener监听器 & HttpSessionActivationListener监听器

(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

效果:

 

posted @ 2021-10-13 17:26  Jasper2003  阅读(45)  评论(0编辑  收藏  举报