监听器

1.Servlet监听器

  servlet中定义的一种特殊类,用于监听web应用中的ServletContext,HttpSession,ServletRequest等域对象的创建与销毁事件,以及监听这些域对象的属性发生修改的事件。

二:对象建立销毁监听器

2.ServletContextListener

  监听ServletContext对象被创建或者销毁的servlret监听器

  实现:

    创建一个实现ServletContextListener的类,并且实现其中的两个方法。

    在web.xml中配置Lister:

      <listener>

         <listener-class>.........</>

      </>

  是最最常用的Listener,可以在当前WEB应用被加载时对当前web应用的相关资源进行初始化操作:连接数据池,创建spring ioc,读取当前web应用的初始化参数

  API:

    contextInitialized(ServletContextEvent sce)

    contextDestoryed(ServletContextEvent sce)

  ServletContextEvent:

    里面只有getServletContext方法。

3.ServletRequestListener,HttpSessionListener

  与上面的类似。

4.生命周期

  request:是一个请求,当一个响应返回时,被销毁。当发一个请求时创建。

    请求转发只是一个request。

    重定向是两个request。

  Session:

    第一访问WEB应用一个JSP或Servlet时,且该JSP或者Servlet中还需要创建session对象,此时服务器会创建一个session对象。

    销毁:过期,调用invalidate方法,当前web应用被卸载,关闭浏览器不意味着这session销毁。

  application:

    贯穿当前web应用的生命周期。

三:域对象中属性的变更的事件监听器

1.接口

  ServletContextAttributeListener

  HttpSessionAttributeListener

  ServletRequestAttributeListener

2.在web.xml中配置

  <listener>

    <listener-class>......</>

  </>

3.监听事件

  添加属性

  替换属性

  移除属性

4.以ServletContextAttributeEvent API 说明

  getName:获取属性的名字

  getValue:获取属性的值

四:sessioin绑定的事件监听器

1.介绍

  servlet规范中定义了两个特殊的监听器接口来帮助JavaBean对象了解自己在session域中的这些状态。

  HttpSessionBindingListener,HttpSessionActivationListener,实现这两个接口的类不需要web.xml中注册。

2.HttpSessionBindingListener接口

  可以感知被绑定到session中和从session中删除的事件

  API:

    valueBand(HttpSessionBingEvent)

    valueUnBand(HttpSessionBingEvent)

3.HttpSessionActivationListener接口

  监听实现了该接口和Serializable接口的java类对象随session钝化和活化事件

  活化:从磁盘中读取session对象

  钝化:向磁盘中写入session对象

  不需要在web.xml中配置。

  API:

    sessionWillPassivate(HttpSessionEvent):在钝化前被调用

    sessionDidActivate(HttpSessionEvent):在活化后被调用

   HttpSessionEvent:

    里面有getSession()方法。

  

原文地址:https://www.cnblogs.com/juncaoit/p/7627246.html