美文网首页java学习笔记整理
Spring Boot使用监听器Listener

Spring Boot使用监听器Listener

作者: _借东西的小人 | 来源:发表于2019-10-18 16:30 被阅读0次

    监听器也叫Listener,是Servlet的监听器,可以用于监听Web应用中某些对象,信息的创建,销毁,增加,修改,删除等动作的发生,然后做出相应的处理.当范围对象的状态发生变化时,服务器自动调用监听器对象中的方法,常用于统计在线人数和在线用户,系统加载时进行信息初始化,统计网站的访问量等.
    根据监听对象可以把监听器分为3类:ServletContext(对应application),HttpSession(对应session),ServletRequest(对应request).Application在整个Web服务中只有一个,在Web服务器关闭是销毁.Session对应每个会话,在会话起始时创建,一端关闭会话时销毁.Request对象是客户发送请求时创建的(一同创建的还有Response),用于封装请求数据,在一次请求处理完毕时销毁.
    根据监听的事件,可以把监听器分为以下3类.

    1. 监听对象创建与销毁,如ServletContextListener.
    2. 监听对象域中属性的增加和删除,如HttpSessionListener和ServletRequestListener.
    3. 监听绑定到Session上的某个对象的状态,如ServletContextAttributeListener,HttpSessionAttributeListener,ServletRequestAttributeListener等.
      监听器Listener的使用
    • 在Listener类上引入注解,将一个类声明为监听器.
      @WebListener
      该注解将会在应用部署时被容器处理,容器根据具体的属性配置将相应的类部署为监听器.
    @WebListener
    public class UserListener implements ServletContextListener {
        @Override
        public void contextInitialized(ServletContextEvent sce) {
            System.out.println("ServletContext上下文初始化");
        }
    
        @Override
        public void contextDestroyed(ServletContextEvent sce) {
            System.out.println("ServletContext上下文销毁");
        }
    }
    
    
    • ServletContextListener类
      能够监听ServletContext对象的生命周期,实际上就是监听Web应用的生命周期.当Servlet容器启动或者终止Web应用时,会触发ServletContextEvent事件,该事件由ServletContextListener类来处理.在ServletContextListener接口中定义了处理ServletContextEvent事件的两个方法:contextInitialized和contextDestroyed.
    1. contextInitialized:当Servlet容器启动Web应用时调用该方法.在调用完该方法之后,容器再对Filter初始化,并且对那些在Web应用启动时就需要被初始化的Servlet进行初始化.
    2. contextDestroyed:当Servlet容器终止Web应用时调用该方法.在调用该方法之前,容器会先销毁所有的Servlet和Filter过滤器.

    相关文章

      网友评论

        本文标题:Spring Boot使用监听器Listener

        本文链接:https://www.haomeiwen.com/subject/ytcmuctx.html