SSM-回炉重造-三大组件之监听器

servlet

filter

listener

八个监听器(3类)

  • 监听ServletContext事件

    1. ServletContextListener:

      作用:监听ServletContext生命周期(从创建到销毁的过程[服务器启动创建->销毁]).

    2. ServletContextAttributeListener:

      作用:监听ServletContext域中的属性变化

      四域对象: pageContext->request->session->application

      作用范围从小到大

  • 监听HttpSession事件

    1. HttpSessionListener:

      作用:监听HttpSession的生命周期(session第一次使用的时候创建)

      session销毁时机:

      1. session超时
      2. 手动失效(invalidate())
    2. HttpSessionAttributeListener:

      作用:监听所有对象在HttpSession域中属性变化

    3. HttpSessionActivitionListener:

      作用:监听某个对象随着HttpSession活化钝化

    4. HttpSessionBindingListener:

      作用:监听某个对象保存(绑定)到session中和从session中一处(解绑)

    其中HttpSessionActivitionListenerHttpSessionBindingListener不需要在web.xml中注册

  • 监听ServletRequest事件

    1. ServletRequestListener:

      作用:监听request对象的生命周期(请求进来创建新的request保存请求的详细信息,请求完成销毁request对象)

    2. ServletRequestAttributeListener

      作用:监听request域中的属性变化

监听器生效步骤

  1. 写某个具体监听器的实现类

    public class MyServletContextListener implements ServletContextListener {
        @Override
        public void contextInitialized(ServletContextEvent sce) {
            ServletContext servletContext = sce.getServletContext();
    
            System.out.println("contextInitialized()....."+ servletContext);
        }
    
        @Override
        public void contextDestroyed(ServletContextEvent sce) {
    
            System.out.println("contextDestroyed().....");
        }
    }
  1. web.xml中进行注册

    <listener>
    <listener-class>com.oylong.listener.MyServletContextListener</listener-class>
    </listener>
Last modification:October 18, 2020
If you think my article is useful to you, please feel free to appreciate