HttpSession监听器的执行顺序

来源:互联网 发布:百度下载软件 编辑:程序博客网 时间:2024/06/06 08:34

Servlet标准中指定了4个用于监听HttpSession中的各种事件的监听器接口,它们分别是:

  1. HttpSessionListener
  2. HttpSessionAttributeListener
  3. HttpSessionBindingListener
  4. HttpSessionActivationListener

下面对这几个接口里面的方法用户进行简要的描述

1. HttpSessionListener接口描述

package javax.servlet.http;import java.util.EventListener;public interface HttpSessionListener extends EventListener {    /**    * 当Session创建时,事件会触发当前方法的执行    **/    void sessionCreated(HttpSessionEvent var1);    /**    * 当Session销毁(即调用HttpSession.invalidate()方法)时,该事件会触发当前方法的执行    **/    void sessionDestroyed(HttpSessionEvent var1);}

2. HttpSessionAttributeListener接口描述

package javax.servlet.http;import java.util.EventListener;public interface HttpSessionAttributeListener extends EventListener {    /**    * 当往Session添加新属性时(即调用HttpSession.setAttribute(name, value)方法)时,该事件会触发当前方法的执行    **/    void attributeAdded(HttpSessionBindingEvent var1);    /**    * 当更新Session已存在属性的值(即调用HttpSession.setAttribute(name, value)方法, 这里面的name属性在session当中已存在,如果不存在,也就相当于新填属性,当前方法则不会被触发,而是去触发attributeAdded方法)时,该事件会触发当前方法的执行    **/    void attributeReplaced(HttpSessionBindingEvent var1);    /**    * 当Session中的属性被删除(即调用HttpSession.removeAttribute(name)方法)时,该事件会触发当前方法的执行    **/    void attributeRemoved(HttpSessionBindingEvent var1);}

3. HttpSessionBindingListener接口说明

package javax.servlet.http;import java.util.EventListener;public interface HttpSessionBindingListener extends EventListener {    /**    * 该方法触发的条件是: 当往session里面添加或者替换属性值(即:session.setAttribute(attrName, attrValue)) ,如果attrValue实现了当前这个接口,则会在attrValue加入到session前,调用attrValue对象的valueBound方法    **/    void valueBound(HttpSessionBindingEvent var1);    /**    * 该方法触发的条件是: 当session在移除某个属性时(即:session.removeAttribute(attrName)) ,如果attrValue对应的attrValue(属性值), 实现了当前这个接口,则在移除属性值之前,由容器调用attrValue对象的valueUnbound方法(即当前方法)    **/    void valueUnbound(HttpSessionBindingEvent var1);}

4. HttpSessionActivationListener接口说明

package javax.servlet.http;import java.util.EventListener;public interface HttpSessionActivationListener extends EventListener {    /**    * 该方法触发的条件是: 当session需要进行持久化的时候,如果session中的属性值实现了当前接口,则在持久化前调用属性值实现的当前方法;    **/    void sessionWillPassivate(HttpSessionEvent var1);    /**    * 该方法触发的条件是: 当session需要进行持久化状态激活的时候,如果session中的属性值实现了当前接口,则在session激活后,调用属性值实现的当前方法;    **/    void sessionDidActivate(HttpSessionEvent var1);}
0 0
原创粉丝点击