监听器

作者: 小强0_0 | 来源:发表于2017-12-15 10:50 被阅读0次

    监听器种类

    1. ServletContextListener
    /**
    *可从servletContextEvent中获取当前applicationContext对象,从而进行操作,只在当期服务器启动时执行
    */
    public void contextInitialized(ServletContextEvent servletContextEvent)
    /**
    *可从servletContextEvent中获取当前applicationContext对象,从而进行操作,仅在服务器正常关闭前执行,可以与init方法配合实现类似统计服务器运行时间等功能
    */
    public void contextDestroyed(ServletContextEvent servletContextEvent)
    
    2. ServletRequestListener
    /**
    *当前请求结束时执行
    */
    public void requestDestroyed(ServletRequestEvent servletRequestEvent)
    /**
    *当前请求发起时执行,可从servletRequestEvent获取当前请求,从而获取请求中的参数,以及其他信息当然也可以做相应的操作
    */
    public void requestInitialized(ServletRequestEvent servletRequestEvent)
    
    3. HttpSessionListener
    /**
    *仅在当前回话启动时执行,可从httpSessionEvent中获取当期回话,从而获取当前会话的信息,当然也可以对当前会话做相应的操作,可以实现类似当前在线人数的统计实现等
    */
    public void sessionCreated(HttpSessionEvent httpSessionEvent)
    /**
    *仅在当前回话结束时执行,可以做相应的资源释放等操作
    */
    public void sessionDestroyed(HttpSessionEvent httpSessionEvent)
    
    4. ServletContextAttributeListener
    /**
    *在当期程序运行期间,如果有向application中添加属性的操作,则会触发该监听器,通过servletContextAttributeEvent可以获取发生改变的属性名,以及属性值
    */
    public void attributeAdded(ServletContextAttributeEvent servletContextAttributeEvent)
    /**
    *与added方法类似,在删除属性的时候触发
    */
    public void attributeRemoved(ServletContextAttributeEvent servletContextAttributeEvent)
    /**
    *与added方法类似,在修改属性的时候触发
    */
    public void attributeReplaced(ServletContextAttributeEvent servletContextAttributeEvent)
    
    5. HttpSessionAttributeListener
    /**
    *与ServletContextAttributeListener中类似,只是监控对象变为当前session中的属性
    */
    public void attributeAdded(HttpSessionBindingEvent httpSessionBindingEvent)
    public void attributeRemoved(HttpSessionBindingEvent httpSessionBindingEvent)
    public void attributeReplaced(HttpSessionBindingEvent httpSessionBindingEvent)
    
    6. ServletRequestAttributeListener
    /**
    *同样与ServletContextAttributeListener中类似,但是监控对象变为当前request中的属性
    */
    public void attributeAdded(ServletRequestAttributeEvent servletRequestAttributeEvent)
    public void attributeRemoved(ServletRequestAttributeEvent servletRequestAttributeEvent)
    public void attributeReplaced(ServletRequestAttributeEvent servletRequestAttributeEvent)
    
    7. HttpSessionBindingListener
    /**
    *与以上监听器不同无需注册,只需在一个bean中实现HttpSessionBindingListener,在bean中实现以下两个方法即可
    */
    /**
    *绑定
    */
    public void valueBound(HttpSessionBindingEvent httpSessionBindingEvent)
    /**
    *解除绑定
    */
    public void valueUnbound(HttpSessionBindingEvent 
    
    8.HttpSessionActivationListener
    /**
    *与7类似,同时需要实现Serializable接口
    */
    /**
    *钝化(序列化)
    */
    public void sessionWillPassivate(HttpSessionEvent httpSessionEvent)
    /**
    *活化化(反序列化)
    */
    public void sessionDidActivate(HttpSessionEvent httpSessionEvent)
    

    7、8使用方法都是直接将属性绑定到一个实现相应接口的bean的实例中即可。类似
    session().setAttribute("user", new User())
    8 主要是用在服务器终端后会话信息的保存

    相关文章

      网友评论

          本文标题:监听器

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