监听器
作用:监听web应用程序中对象的创建、销毁、增加、删除等动作
概念:
- 被监听的对象(三个域对象 request,session,servletContext)
- 监听器:监听事件源对象, 事件源对象的状态的变化都会触发监听器 。
- 注册监听器:将监听器与事件源进行绑定。
- 响应行为:监听器监听到事件源的状态变化时,所涉及的功能代码(程序员编写代码)
servlet规范中提供了的监听器
servlet包
ServletContextListener:监听ServletContext对象的创建和销毁
contextInitialized(ServletContextEvent sce):ServletContext对象创建时执行
contextDestroyed(ServletContextEvent sce):ServletContext对象销毁时执行
ServletContextAttributeListener:监听ServletContext对象中属性的增加、删除、替换
attributeAdded(ServletContextAttributeEvent scae):ServletContext对象中添加属性时执行
attributeRemoved(ServletContextAttributeEvent scae):ServletContext对象中删除属性时执行
attributeReplaced(ServletContextAttributeEvent scae):ServletContext对象中替换属性时执行
ServletRequestListener:监听ServletRequest对象的创建和销毁
requestInitialized(ServletRequestEvent sre):ServletRequest对象创建时执行
requestDestroyed(ServletRequestEvent sre):ServletRequest对象销毁时执行
ServletRequestAttributeListener:监听ServletRequest对象中属性的增加、删除、替换
attributeAdded(ServletRequestAttributeEvent srae):ServletRequest对象中添加属性时执行
attributeRemoved(ServletRequestAttributeEvent srae):ServletRequest对象中删除属性时执行
attributeReplaced(ServletRequestAttributeEvent srae):ServletRequest对象中替换属性时执行
servlet.http包
HttpSessionListener:监听HttpSession对象的创建和销毁
sessionCreated(HttpSessionEvent se):HttpSession对象创建时执行
sessionDestroyed(HttpSessionEvent se):HttpSession对象销毁时执行
HttpSessionAttributeListener:监听HttpSession对象中属性的增加、删除、替换
attributeAdded(HttpSessionBindingEvent se):HttpSession对象中添加属性时执行
attributeRemoved(HttpSessionBindingEvent se):HttpSession对象中删除属性时执行
attributeReplaced(HttpSessionBindingEvent se):HttpSession对象中替换属性时执行
HttpSessionBindingListener:监听HttpSession对象中属性的绑定和解绑
实现HttpSessionBindingListener接口的类被绑定或解绑到HttpSession对象中时执行
HttpSessionIdListener:监听HttpSession对象的迁移
sessionIdChanged(HttpSessionEvent event, String oldSessionId):HttpSession对象的迁移时执行
HttpSessionActivationListener:监听HttpSession对象的钝化和活化
sessionWillPassivate(HttpSessionEvent se):HttpSession对象钝化时执行
sessionDidActivate(HttpSessionEvent se):HttpSession对象活化时执行
配置监听器
XML
<listener>
<listener-class>监听器全限定类名</listener-class>
</listener>
全限定类名:类的根路径到该类的全路径
注解
@WebListener
public class 监听器类名 implements 监听器接口 {
@Override
重写方法
}