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域中的某个对象的状态的事件监听器