• Web 监听器


    什么事web 监听器?

    • Servlet规范中定义的一种特殊类
    • 用于监听ServletContext、HttpSession和ServletRequest等象的创建与销毁的事件
    • 用监听域对象的属性发生修改的事件

    web 监听器的常见用途:

    • 统计在线人数和在线用户
    • 系统启动时加载初始化信息
    • 统计网站访问量
    • 跟Sring结合

    配置web监听器:

    • 创建一个实现监听接口的类

        import javax.servlet.ServletContextEvent;

        import javax.servlet.ServletContextListener;

        public class FirstListener implements ServletContextListener {

          @Override
          public void contextDestroyed(ServletContextEvent arg0) {

            System.out.println("context Destroyed!");
          }

          @Override
          public void contextInitialized(ServletContextEvent arg0) {
            System.out.println("context Initialized!");
          }

        }

    • 配置web.xml进行注册

        <!-- 注册web监听器 -->

        <listener>
          <listener-class>com.cgj.spring.mvc.listener.FirstListener</listener-class>
        </listener>

    web监听器的启动顺序:

    • 一个web.xml中多个监听器,按注册的顺序启动
    • 加载优先级:监听器 > 过滤器 > Servlet

    web监听器的分类:

    • 按监听的对象划分:

        监听应用程序环境对象(ServletContext)的事件监听器

        监听用户会话对象(HttpSession)的事件监听器

        监听请求消息对象(ServleRequest)的事件监听器

    • 按监听的事件划分:

        监听域对象自身的创建和销毁的事件监听器

          ServletContextListener:编写定时器、加载全局属性对象

          HttpSessionListener:统计在线人数、记录访问日志

          ServleRequestListener:读取请求参数、记录访问历史

        监听域对象的属性增加和删除的事件监听器

          方法:attributeAdded,attributrRemoved,attributeReplaced

          接口:ServletContextAttributeListener、HttpSessionAttributeListener、ServletRequestAttributeListener

        监听绑定到HttpSession域中的某个对象的状态的事件监听器(不需要在web.xml中注册,只需在对应类中实现相应的接口)

          HttpSessionBinDingListener:

            绑定:valueBound方法

            解除绑定:valueUnbound方法

          HttpSessionActivationListener(钝化和活化需要实现Serializable接口)

            钝化:sessionWillPasivate方法

            活化:sessionDidActivate方法

         (什么是Session钝化?

     Servlet3.0下的监听器的用法:

      不需要在web.xml中注册只需要在,监听器的类上边加一个注解@WebListener("describe info");

      弊端:无法定义监听器的顺序,需要tomcat1.7及以上,jdk1.6及以上

  • 相关阅读:
    window.location.href的使用方法
    hdu 2850 Load Balancing (优先队列 + 贪心)
    几种常见模式识别算法整理和总结
    【DateStructure】 Charnming usages of Map collection in Java
    编写你自己的单点登录(SSO)服务
    微软历史最高市值是多少?
    Tomcat配置一个ip绑定多个域名
    递归算法:求序列的全排列
    SMTP协议分析
    platform_device与platform_driver
  • 原文地址:https://www.cnblogs.com/LionheartCGJ/p/6794415.html
走看看 - 开发者的网上家园