这个监听器主要用于网站在线超时退出的功能。
OnlineUserListener实现了HttpSessionListener定义的两个方法:
sessionCreated()和sessionDestroyed()。
这两个方法可以监听到当前应用中session的创建和销毁情况。我们这里只用到sessionDestroyed()在session销毁时进行操作就可以。
从HttpSessionEvent中获得即将销毁的session,得到session中的用户名,并从在线列表中删除。最后一句向console打印一条信息,提示操作成功。
为了让监听器发挥作用,我们将它添加到web.xml中:
<listener>
<listener-class>anni.OnlineUserListener</listener-class>
</listener>
以下两种情况下就会发生sessionDestoryed(会话销毁)事件:
一,执行session.invalidate()方法时,就会发生sessionDestoryed(会话销毁)事件。
二,如果用户长时间没有访问服务器,超过了会话最大超时时间,服务器就会自动销毁超时的session。
会话超时时间可以在web.xml中进行设置,为了容易看到超时效果,我们可以将超时时间设置为最小值。
<session-config> <session-timeout>1</session-timeout> </session-config>