Web 监听器

本文详细介绍了Servlet规范中的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及以上

转载于:https://www.cnblogs.com/LionheartCGJ/p/6794415.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值