一、生命周期监听器
ServletContextListener
contextInitialized(ServletContextEvent evt)
contextDestroyed(ServletContextEvent evt)
可以ServletContextEvent取得ServletContext对象:getServletContext()方法
ServletRequestListener
requestDestroyed(ServletRequestEvent req)
requestInitialized(ServletRequestEvent req)
getServletRequest()获取request; getServletContext()获取ServletContext
HttpSessionListneer
sessionCreated(HttpSessionEvent evt)
sessionDestroyed(HttpSessionEvent evt)
getSession()获取HttpSession
实例:登录用户的计数功能
web.xml设置
二、属性操作监听器
在Servlet/JSP中,有三个对象可以设置属性,那就是ServletContext、HttpSession与ServletRequest。
对应ServletContextAttributeListener、HttpSessionAttributeListener、ServletRequestAttributeListener接口。
它们都有attributeAdded()、attributeRemoved()、AttributeReplaced()方法,
四、会话属性类监听器
HttpSessionBindingListener与HttpSessionActivationListener不必在web.xml中使用<listener>标签设置。
HttpSession在适当的时机就会直接调用接口上对应的方法,不必在web.xml作任何设置。
valueBound()是在setAttribute时触发
valueUnbound()则是在session销毁时触发
实例:
然后在Servlet中: