Listener

Java Web —— Listener监听器

概念

  • Servlet规范定义中的一种特殊类
  • 用于监听ServletContext(application),HttpSession(Session)和ServletRequest(request)等域对象的创建与销毁事件
  • 用于监听域对象的属性发生修改的事件
  • 可以在事件发生前后做一些必要的处理

监听器的启动顺序

多个监听器按照web.xml注册顺序启动

优先级上:监听器Listener > 过滤器Filter > Servlet

监听器的分类

按监听的对象划分

  • 监听应用程序环境对象(ServletContext)的事件监听器
    • 主要用途:定时器、全局属性对象
    • implements ServletContectListener
    • public void contextInitialized(ServletContextEvent sce)
    • public void contextDestroyed(ServletContextEvent sce)
  • 监听用户会话对象(HttpSession)的事件监听器
    • 主要用途:统计在线人数、记录访问日志
    • implements HttpSessionListener
    • public void sessionCreated(HttpSessionEvent sce)
    • public void sessionDestroyed(HttpSessionEvent sce)
  • 监听请求消息对象(ServletRequest)的事件监听器
    • 主要用途:读取参数、记录访问历史
    • implements ServletRequestListener
    • public void requestInitialized(ServletContextEvent sce)
    • public void requestDestroyed(ServletContextEvent sce)

按监听的事件划分

  • 监听域对象自身的创建/销毁的事件监听器
    • 见上一节内容
  • 监听域对象中属性的增加/删除的事件监听器
    • implements ServletContectAttributeListener、HttpSessionAttributeListener、ServletRequestAttributeListener
    • public void attributeAdded(ServletContectAttributeEvent arg0);
    • public void attributeRemoveed(ServletContectAttributeEvent arg0);
    • public void attributeReplaced(ServletContectAttributeEvent arg0);
  • 监听绑定到HttpSession域中的某个对象的状态的事件监听器
Ty.Wings wechat
欢迎您订阅我的公众号,并在GitHub上为我Star!