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中进行配置。
上一篇: 最长公共子序列问题
下一篇: javascript 监听器和定时器