【Java.Web】Session —— Session Listener监听器
Session监听器接口
在Servlet API中定义了4个用户监听Session中的各种事件的监听器接口:
javax.servlet.http public interface HttpSessionListener extends EventListener
- HttpSessionListener接口 —— 监听创建Session及销毁Session的事件,有如下两个方法:
- sessionCreated(HttpSessionEvent event) —— 当Servlet容器创建了一个Session后,会调用此方法
- sessionDestroyed(HttpSessionEvent event) —— 当Servlet容器将要销毁一个Session之前,会调用此方法
javax.servlet.http public interface HttpSessionIdListener extends EventListener
javax.servlet.http public interface HttpSessionAttributeListener extends EventListener
- HttpSessionAttributeListener接口 —— 监听向Session中加入属性,替换属性和删除属性的事件;有如下3个方法:
- attributeReplaced(HttpSessionBindingEvent event) —— 当Web应用替换了Session中一个已经存在的属性的值时,Servlet容器会调用此方法
- attributeAdded(HttpSessionBindingEvent event) —— 当Web应用向一个Session中加入了一个新的属性时,Servlet容器会调用此方法
- attributeRemoved(HttpSessionBindingEvent event) —— 当Web应用从一个Session中删除了一个属性时,Servlet容器会调用此方法
javax.servlet.http public interface HttpSessionBindingListener extends EventListener
- HttpSessionBindingListener接口 —— 监听Session与一个属性绑定或结束绑定的事件,有如下两个方法:
- valueUnbound(HttpSessionBindingEvent event) —— 当Web应用将要把一个属性与Session接触绑定之前,Servlet容器会调用此方法
- valueBound(HttpSessionBindingEvent event) —— 当Web应用把一个属性与Session绑定后,Servlet容器会调用此方法
javax.servlet.http public interface HttpSessionActivationListener extends EventListener
- HttpSessionActivationListener接口 —— 监听Session被激活和被搁置的事件,有如下两个方法:
- sessionDidActivate(HttpSessionEvent event) —— 当Servlet容器把一个Session激活后,会调用此方法
- sessionWillPassivate(HttpSessionEvent event) —— 当Servlet容器将要把一个Session搁置之前,会调用此方法
Session监听器的注册
- 对于HttpSessionListener和HttpSessionAttributeListener,它们必须在web.xml文件中通过<listener>元素向Servlet容器注册;
- 对于HttpSessionBindingListener和HttpSessionActivationListener接口,它们由Session的属性类来实现;
- 例如:假设MyData类的对象作为Session的属性与Session绑定,如果希望监听MyData对象与Session绑定,接触绑定以及Session被激活或搁置的事件,那么可以让MyData类实现HttpSessionBindingListener和HttpSessionActivationListener接口;
Session监听器使用示例
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
- 上一篇: HttpSession 相关的监听
- 下一篇: java web session监听销毁跳转