Skip to content

作用:监听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

xml
<listener>
    <listener-class>监听器全限定类名</listener-class>
</listener>

全限定类名:类的根路径到该类的全路径

注解

java
@WebListener
public class 监听器类名 implements 监听器接口 {
    @Override
    重写方法
}