欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Web监听器_监听绑定、活钝化HttpSession

程序员文章站 2024-03-20 10:12:28
...

1. 绑定HttpSession
 将javaBean绑定到HttpSession,我们需要用到HttpSessionBindingListener这个监听器,并且是在javaBean中进行实现这个监听器。

//如果javaBean被绑定到session中时,会调用下面这个方法。
public void valueBound(HttpSessionBinding event){
    //这里写具体要触发的功能。
}

//如果javaBean从session域中移除,就会调用下面这个方法。
public void valueUnbound(HttpSessionBindingEvent event){
    //这里写具体触发的功能。
}

注意:这个监听器是由javaBean来实现的,并且不需要在web.xml中进行配置。

2. javaBean的钝化和活化
 所谓的javaBean的钝化是将session中的javaBean保存到文件中。而活化则与其相反,从文件中将javaBean直接获取。所以我们需要创建一个配置文件context.xml,将这个配置文件存放在META-INF下。
 配置文件如下:

<!--除了directory,其他的使固定的-->
<?xml version="1.0" encoding="UTF-8"?>
<Context>
    <Manager className="org.apache.catalina.session.PersistentManager"
        maxIdleSwap="1">
        <!--directory代表的是存放色杀死你文件的目录名字,可以根据自己喜好起名字。-->
        <Store className="org.apache.catalina.session.FileStore"
            directory="it315" />
    </Manager>
</Context>

 要实现这个功能,我们必须要javaBean中实现Serializable接口(最标准的javaBean是要求实现序列化的),然后实现监听器HttpSessionActivationListener然后就能实现活化和钝化。

//当我们关闭服务器的时候,就会触发钝化方法。
public void sessionWillPassivate(HttpSessionEvent se){
    //这里写具体触发的功能。
}

//当我们要从session中获取javaBean,就会触发活化方法。
public void sessionDidActivate(HttpSessionEvent se){
    //这里写具体触发的功能。
}

注意:这个监听器也是由javaBean来实现的,并且不需要在web.xml中进行配置。