监听器概述
1、监听session,request,servletContext这三个对象里存取数据的变化
2、监听器对象可以在事情发生前、发生后可以做一些必要的处理
3、Servlet监听器主要目的是给Web应用增加事件处理机制,以便更好地监视和控制Web应用的状态变化
监听器实现步骤:
1、 确定事件源。事件源:servletContext,session,request
2、 确定监听者。监听器必须实现监听器接口,并在监听器接口中实现逻辑方法
3、 注册
监听器只有注册之后,才能被容器所识别。
<listener>
<listener-class>
com.lovobook.MyServletContextListener
</listener-class>
</listener>
Servlet3标准中可以使用@WebListener注册
监听器类型
1、ServletContextListener:用于监听ServletContext对象创建和销毁的事件。
void contextInitialized(ServletContextEventsce) ——上下文对象创建时,触发
void contextDestroyed(ServletContextEventsce) ——上下文对象销毁时触发
2、HttpSessionListener接口:监听HttpSession的创建和销毁。
sessionCreated(HttpSessionEvent se)方法——创建HttpSession触发。
sessionDestroyed (HttpSessionEvent se)——销毁HttpSession触发
3、HttpSessionBindingListener :唯一不需要注册的接口
当一个类实现了HttpSessionBindingListener接口后,只要对象加入Session范围(即调用HttpSession对象的setAttribute方法的时候)或从Session范围中移出(即调用HttpSession对象的removeAttribute方法的时候或Session Time out的时候)时,容器分别会自动调用下列两个方法:
valueBound(HttpSessionBindingEvent event)——绑定到session时触发
valueUnbound(HttpSessionBindingEvent event)——移除session时触发