Listener 监听器介绍
Listener 监听器是 JavaWeb 三大组件之一。JavaWeb 的三大组件分别是:Servlet 程 序、Listener 监听器、Filter 过滤器。
监听器是用于监听某种变化(对象创建/销毁, 增删改等等属性变化),某个变化都有自己对应的调用方法。
继承对应监听器的接口并重写方法,就可以使用监听器完成自己想要的功能,方法的实现功能由程序员决定。
JavaWeb 的监听器
ServletContextListener 监听(比较常用)
作用:监听 ServletContext 创建或销毁( Web 应用启动时,会自动创建 ServletContext), 即生命周期监听。例如:加载初始化的配置文件。
ServletContextListener 监听 方法
void contextInitialized(ServletContextEvent servletContextEvent) 监听Servletcontext 被创建行为
void contextDestroyed(ServletContextEvent servletContextEvent) 监听Servletcontex被销毁 行为
ServletContextAttributeListener 监听器
作用:监听 ServletContext 属性变化
ServletContextAttributeListener 监听方法
void attributeAdded(ServletContextAttributeEvent event) 添加属性
void attributeReplaced(ServletContextAttributeEvent event) 替换属性
void attributeRemoved(ServletContextAttributeEvent event) 移除属性
public class MyServletContextAttributeListener implements ServletContextAttributeListener { @Override public void attributeAdded(ServletContextAttributeEvent servletContextAttributeEvent) { System.out.println("添加了 servletContext 属性名= " +servletContextAttributeEvent.getName() + " 属 性 值 =" + servletContextAttributeEvent.getValue()); } @Override public void attributeRemoved(ServletContextAttributeEvent servletContextAttributeEvent) { System.out.println("删除了 servletContext 属性"); } @Override public void attributeReplaced(ServletContextAttributeEvent servletContextAttributeEvent) { System.out.println("替换了 servletContext 属性 "); } }
HttpSessionListener 监听器
作用:监听 Session 创建或销毁,即生命周期监听(和ServletContextListener 监听一样,只是监听对象不同)。
public class MyHttpSessionListener implements HttpSessionListener { @Override public void sessionCreated(HttpSessionEvent httpSessionEvent) { System.out.println("SessionEvent 创建,完成 WEB 初始化的工作.."); } @Override public void sessionDestroyed(HttpSessionEvent httpSessionEvent) { System.out.println("SessionEvent 销毁.."); } }
HttpSessionAttributeListener 监听器
作用:监听 Session 属性的变化
HttpSessionAttributeListener 监听器方法
void attributeAdded(ServletRequestAttributeEvent srae) 添加属性
void attributeReplaced(ServletRequestAttributeEvent srae) 替换属性
void attributeRemoved(ServletRequestAttributeEvent srae) 移除属性
ServletRequestListener 监听
作用:监听 Request 创建或销毁,即 Request 生命周期监听。
ServletRequestListener 监听方法(和前面差不多,只是对象的区别):
void requestInitialized(ServletRequestEvent sre) 创建 request
void requestDestroyed(ServletRequestEvent sre) 销毁 request
个人理解,如有错误,欢迎指教,谢谢。