1 HttpSessionAttributeListener : 当一对象被放入session 时触发或从session中移除时触发相应的事件。
相应的方法:
Void attributeAdded(HttpSessionBindingEvent e);//当对象被增加到一个session中时,会执行此方法
Void attributeRemoved(HttpSessionBindingEvent e); //当对象从一个session中移除时,会执行此方法
Void attributeReplaced(HttpSessionBindingEvent e); //当对象替换出一个session时,会执行此方法
变量HttpSessionBindingEvent e有如下方法:
getSession();
getName();
Object getValue();
我们可以编写一个实现了HttpSessionAttributeListener的类,并重写三个方法。在方法中我们可以通过HttpSessionBindingEvent e参数获取当前的session;被添加/移除/替换的属性的名称;以及相应的值,需要注意的是getValue返回的是Object类型的对象。(对于attributeReplaced中使用HttpSessionBindingEvent获得的值是旧值还是新值,我还不太清楚,知道的说下啊)
2 HttpSessionBindingListener: 当一个实现了此接口的对象被加入到session中或被移除时相应的事件就会被触发。
相应的方法:
Void valueBound(HttpSessionBindingEvent e);//当实现了本接口的类的对象被增加到session中时,执行对象的此方法
Void valueUnbound (HttpSessionBindingEvent e); //当实现了本接口的类的对象被移除出session中时,执行对象的此方法
**1和2的区别在于: 第二个不需要在web.xml中进行配置。
3 HttpSessionListener:当一个session被创建或销毁时会执行相应的事件
相应的方法:
Void SessionCreated(HttpSessionEvent e)
Void SessionDestroyed(HttpSessionEvent e)
HttpSessionEvent 有如下方法:
getSession().
4 HttpSessionActivationListener :用于分布式服务中,当会话被激活时调用相应的事件。
**将Listener增加到程序中的方法:
在web.xml中增加listener标签即可:
<listener>
<listener-class>
YOUR_CLASS_NAME
</listener-class>
</listener>
<listener>
<listener-class>
YOUR_CLASS_NAME
</listener-class>
</listener>