HttpSession监听器的执行顺序

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);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值