javaWeb中Session相关事件监听器(7)

JavaWeb应用中,很多的地方都和session有关。因此session相关的事件监听器,在日常工作中非常有用。 Servlet 规范中定义了两个特殊的监听器接口”HttpSessionBindingListener和HttpSessionActivationListener”来帮助JavaBean 对象了解自己在Session域中的这些状态变化,实现这两个接口的类不需要 web.xml 文件中进行注册。 1、 HttpSessionBindingListener接口   实现了HttpSessionBindingListener接口的JavaBean对象可以感知自己被绑定到Session中和 Session中删除的事件   当对象被绑定到HttpSession对象中时,web服务器调用该对象的void valueBound(HttpSessionBindingEvent event)方法   当对象从HttpSession对象中解除绑定时,,web服务器调用该对象的void valueUnbound(HttpSessionBindingEvent event)方法

2、 HttpSessionActivationListener接口

  实现了HttpSessionActivationListener接口的JavaBean对象可以感知自己被活化(反序列化)和钝化(序列化)的事件   当绑定到HttpSession对象中的javabean对象将要随HttpSession对象被钝化(序列化)之前,web服务器调用该javabean对象的void sessionWillPassivate(HttpSessionEvent event) 方法。这样javabean对象就可以知道自己将要和HttpSession对象一起被序列化(钝化)到硬盘中.   当绑定到HttpSession对象中的javabean对象将要随HttpSession对象被活化(反序列化)之后,web服务器调用该javabean对象的void sessionDidActive(HttpSessionEvent event)方法。这样javabean对象就可以知道自己将要和 HttpSession对象一起被反序列化(活化)回到内存中

3、 javaBean感知自己被绑定到session中的源代码 实现了HttpSessionBindingListener接口的JavaBean对象可以感知自己被绑定到Session中和 Session中删除的事件   当对象被绑定到HttpSession对象中时,web服务器调用该对象的void valueBound(HttpSessionBindingEvent event)方法   当对象从HttpSession对象中解除绑定时,web服务器调用该对象的void valueUnbound(HttpSessionBindingEvent event)方法。 示例源代码如下:

package com.servlet.listener;import javax.servlet.http.HttpSessionBindingEvent;import javax.servlet.http.HttpSessionBindingListener;/** * 简单实现HttpSessionBindingListener接口,知道本JAVABEAN是否被加入到session中。 * @author 范芳铭 */{private String name;public EasyLisenterSelf(String name){this.name = name;}(HttpSessionBindingEvent event) {System.out.println(name+”,加入session。”);}(HttpSessionBindingEvent event) {System.out.println(name+”,session移除。”);}public String getName() {return name;}}

4、 测试用的session.jsp

> > <body><%//将javabean对象绑定到Session中session.setAttribute(“bean”,new EasyLisenterSelf(“javaBean监控自己”));//从Session中移除javabean对象session.removeAttribute(“bean”);%> </body></html>

5、 运行结果 启动WEB中间件,从URL访问: :8080/webStudy/session.jsp 控制台打印情况: javaBean监控自己,加入session。 javaBean监控自己,session移除。

享受每一刻的感觉,欣赏每一处的风景,这就是人生。

javaWeb中Session相关事件监听器(7)

相关文章:

你感兴趣的文章:

标签云: