在
Servlet
规范中定义了多种类型的监听器,它们用于监听的事件源分别为
ServletContext, HttpSession
和
ServletRequest
这三个域对象。
关于ServletContext域对象的
ServletContextListener 是否创建或撤销了一个上下文(上下文由容器读取xml后生成的键值,并把上下文的引用放在ServletContext中) 事件类型:ServletContextAttributeEvent
ServletContextAttributeListener 监听Web应用上下文是否增加,删除或替换了一个属性 事件类型ServletContextAttributeEvent
关于HttpSession域对象的
HttpSessionListener 监听有多少个并发用户,跟踪活动的会话 事件类型:HttpSessionEvent
HttpSessionBindingListener 监听你的属性类在绑定到会话属性或从会话属性中删除时得到通知(针对这个特有的属性) 事件类型:HttpSessionBindingEvent
HttpSessionAttributeListener 增加,删除或更替一个会话属性时希望你知道(针对会话属性)事件类型HttpSessionBindingEvent
HttpSessionActivationListener 当一个属性类所绑定的会话属性迁移到另一个JVM时得到通知 事件类型:HttpSessionEvent
关于ServletRequest域对象的
ServletRequestListener 每次请求到来时你都想知道以便建立日志记录 事件类型:ServletRequestEvent
ServletRequestAttributeListener 增加,删除或替换一个请求属性时希望你能知道
统计在线人数的程序用例:
想要统计当前在线人数实际上就是查看有多少个有效session,使用HttpSessionListener
创建一个Session时,sessionCreated(HttpSessionEvent se) 方法将会被调用。
销毁一个Session时,sessionDestroyed (HttpSessionEvent se) 方法将会被调用。
Session域对象创建和销毁的时机创建:用户每一次访问时,服务器创建session
监听器代码:
xml设置: