1. 实现HttpSessionListener接口
监听HttpSession的操作,主要是实现HttpSessionListener
。功能是:
- 监听HttpSession的操作。
- 创建一个Session时,激发
sessionCreateed
方法; - 销毁一个Session时,激发
sessionDestroyed
方法。
2. 实现HTTPSessionAttributeListener接口
- 监听HttpSession中的属性操作。包括:
- 属性的增加(
attributedAdded
方法); - 属性的删除(
attributedRemoved
方法); - 属性的修改(
attributedReplaced
方法)。
- 属性的增加(
实现方法
- 新建一个类,实现
HttpSessionListener
或者HTTPSessionAttributeListener
接口。
这两个接口在
http
包中。
- 重写接口里面的方法,当这些事件被调用的时候,执行自定义的操作。
- 在
web.xml
中进行监听器的注册。
3. 实现HttpSessionBindingListener
该事件不需要配置xml文件,对HttpSessionBingdingListener对象所对应的session进行监听。
包含的两个函数:
-
valueUnbound
方法将被以下任意条件下触发:- 执行
session.setAttribute(uocl",非uocl对象)
时; - 执行
session.removeAttribute("uocl")
时; - 执行
session.invalidate()
时; - 执行
session
超时后。
- 执行
和其他监听器的区别
-
HttpSessionListener
只需要设置到了web.xml
中就可有监听整个应用中的所有session。
+HttpSessionBindingListener
必须实例化后放入某一个session中,才可以进行监听,因此和session是一对一的。
实现方法
- 新建一个类,实现HttpSessionBindingListener。
- 实现接口内valueBound等方法,实现自定义的操作。
- 在要监听的Session的Servlet的定义中,导入该监听类,并实例化一个对象。此时发布后的应用就可以实现一对一的绑定监听了。
// 在session的servlet定义中实例化一个监听器
MyListener myListener = new MyListener();