监听器的编写流程
-
编写监听器实现类(8种中的其一),实现指定接口
-
在web.xml文件配置监听器(部分监听不需要配置)
<listener> <listener-class> ... </listener-class> </listener>
监听器分类
- 监听域对象创建与销毁
- ServletContextListener
- HttpSessionListener
- ServletRequestListener
- 监听域对象属性发生变更(添加,替换,删除)
- ServletContextAttributeListener
- HttpSessionAttributeListener
- ServletRequestAttributeListener
- 监听Session作用域特殊javabean(不需要在web.xml中配置)
-
HttpSessionActivationListener:可以监听实现HttpSessionActivationListener接口对象(该对象必须实现Serializable接口)的钝化与活化
HttpSession.setAttribute("key",JavaBean implements HttpSessionActivationListener)
-
钝化
服务器正常关闭或者超过指定钝化时间(IDEA关闭为异常关闭)
-
活化
session域中获得该对象时
-
可以通过配置文件 指定对象钝化时间 --- 对象多长时间不用被钝化
在META-INF下创建一个context.xml(不存在META-INF文件夹的话新建该文件夹)
<Context>
<Manager className="org.apache.catalina.session.PersistentManager" maxIdleSwap="1">
<Store className="org.apache.catalina.session.FileStore" directory="itcast205" />
</Manager>
</Context>
-
-
HttpSessionBindingListener:可以监听实现HttpSessionBindingListener接口对象的绑定与解绑到Session
-
绑定状态
HttpSession.setAttribute("key",JavaBean implements HttpSessionBindingListener)
-
解绑状态
服务器正常关闭
HttpSession.removeAttribute("key");
-
-
网友评论