HttpSessionListener和HttpSessionAttributeListener区别

时间:2020-12-05 05:43:09

一、HttpSessionListener

HttpSessionListener是对Session的一个监听,主要监听关于Session的两个事件,即初始化和销毁。HttpSessionListener有两个方法:

VoidsessionCreated(HttpSessionEvent se):当session创建时会收到通知。

VoidsessionDestroyed(HttpSessionEvent se):当session销毁时也会收到通知。

在调用session.invalidate()方法时,就会调用VoidsessionDestroyed()销毁方法。
       故根据HttpSessionListener的特性,如果想在用户登录或者退出时做些什么,就可以设置session监听,例如:防止用户重复登录,统计用户在线数量,统计用户登录频率等等。

二、HttpSessionAttributeListener

HttpSessionAttributeListener是SessionAttribute的监听,当在会话对象中加入属性、移除属性或替换属性时,就会调用HttpSessionAttributeListener监听器。

它有三个方法:

public voidattributeAdded(HttpSessionBindingEvent se):在session中添加对象时触发此操作

public voidattributeRemoved(HttpSessionBindingEvent se):修改、删除session中添加对象时触发此操作

public voidattributeReplaced(HttpSessionBindingEvent se):在Session属性被重新设置时

三、来个例子

1、web.xml配置

2、监听实现类