监听器

监听器的使用:

  作用:

    监听作用域对象 request、session、application 的创建、销毁和内容的改变

  使用:

    创建一个实现了指定接口的java类

 监听 request ---> ServletRequestListener 监听request对象的创建和销毁

    requestInitialized(ServletRequestEvent sre) //初始化

    requestDestroyed(ServletRequestEvent sre) // 销毁

  注意:

    形参可以获取监听的request对象

    sre.getServletRequest();

  监听 request ---> ServletRequestAttributeListener 监听request作用域数据的变更

    attributeAdded(ServletRequestAttributeEvent srae)

    attributeRemoved(ServletRequestAttributeEvent srae)

    attributeReplaced(ServletRequestAttributeEvent srae)

  注意:

    形参可以获取被监听的数据

    srae.getName() 获取监听数据的键

    srae.getValue() 获取监听数据的值

  监听 sssion ---> HttpSessionListener 监听session的初始化和销毁

    sessionCreate(HttpSessionEvent se) 初始化

    sessionDestroyed(HttpSessionEvent se) 销毁

  注意:形参可以获取被监听的session对象

  se.getSession();

  监听 session ---> HttpSessionAttributeListener 监听session数据的变更

    attributeAdded(HttpSessionBindingEvent event)

    attributeRemoved(HttpSessionBindingEvent event)

    attributeReplaced(HttpSessionBindingEvent event)

  注意:形参可以获取被监听的数据

    event.getName() 获取数据的键名

    event.getValue() 获取数据的值

  监听 application ---> ServletContextListener 监听application对象的初始化和销毁

    contextInitialized(ServletContextEvent sce) 初始化 服务器启动

    contextDestroyed(ServletContextEvent sce) 销毁 服务器关闭

  注意:形参可以获取当前application对象

  sce.getServletContext();

  监听 application ---> ServletContextAttributeListener 监听数据的变更

    attributeAdded(ServletContextAttributeEvent event)

    attributeRemoved(ServletContextAttributeEvent event)

    attributeReplaced(ServletContextAttributeEvent event)

  注意:形参可以获取当前监听的数据

    event.getName() 获取数据的键名

    event.getValue() 获取数据的值

  在web.xml配置监听器类

    <listener>

      <listener-class>com.bjsxt.listener.MyListener</listener-class>

    </listener>

  案例:

    统计当前在线人数

    统计网页浏览次数

原文地址:https://www.cnblogs.com/maigy/p/10923790.html