zoukankan      html  css  js  c++  java
  • 监听器

    1 监听器的定义

    Servlet规范中定义的一种特殊类

    用于监听ServletContext HttpSeesion 和 - - ServletRequest等域对象的创建与销毁事件

    用于监听域对象的属性发生改变的事件

    可以在事件发生前、发生后做一些必要的处理

    2 监听器的用途

    统计在线人数和在线用户

    系统启动时加载初始化信息

    统计网站访问量

    跟spring结合

    3 第一个实例讲解

    步骤:

    1.创建一个实现监听器接口的类
    // 创建一个实现接口xxxListenner的类
    public class FirstListenner implements ServletContextListener {
    // 自动重写里面的方法
    @Override
    public void contextDestroyed(ServletContextEvent arg0) {
    System.out.println("contextDestroyed");
    }
    @Override
    public void contextInitialized(ServletContextEvent arg0) {
    System.out.println("contextInitialized");
    }
    }
    2.配置web.xml进行注册或者在类上面加注解@WebListener(3.0以上版本才能用)
    <listener>
    <listener-class>com.fs.listenner.FirstListenner</listener-class>
    </listener>
    监听器的启动顺序:

    1.web.xml可以注册多个监听器,他的加载顺序是按照注册顺序来的
    2.web.xml里面可以注册监听器、过滤器(拦截器是spring的功能)、servlet,他们的加载顺序是:监听器>过滤器>servlet
    4 监听器的分类

    按监听的对象划分

    1.用于监听应用程序环境对象(ServletContext--主要用于获取和设置全局属性配置)的事件监听器
    2.用于监听用户会话对象(HttpSession--统计在线人数、记录访问日志)的事件监听器
    3.用于监听请求消息对象(ServletRequest--读取参数、记录访问历史)的事件监听器
    按监听的事件划分

    1.监听域对象自身的创建和销毁的事件监听器
    2.监听域对象中的属性的增加或删除的事件监听器
    3.监听绑定到HttpSession域中的某个对象的状态的事件监听器
    要监听对象的绑定<-->解除绑定,那么该类就要实现HttpSessionBindingListerner接口
    要监听对象的钝化<-->活化(内存<-->硬盘),那么该类就要实现HttpSessionActivationListener和Serialization接口
    5 实际项目中常用案例:统计在线人数及用户

    逻辑:

    1.统计在线人数很简单:
    创建一个session监听类
    定义一个数字代表在线人数
    当session创建时++
    当session销毁时--
    把这个数字放到application中,这样就可以从application中取出在线人数了
    2.统计用户
    如何确定一个用户呢?ip地址。如何获得ip地址呢?那就要通过request了
    创建一个request监听类、用户类(ip,createTime,sessionId)
    定义一个List<user>
    当request创建的时候,我们先要判断seesionId是否存在,如果不存在,就要创建一个user放到List中
    而要移除user,得session销毁时才表示该用户不活跃了,所以移除user的在session中去进行
    将List放到application中

  • 相关阅读:
    二柱子在线答题
    SWUST OJ(952)
    SWUST OJ (943)
    FileZilla 客户端连接 FlieZilla 服务器 连接成功读取目录列表却失败的解决办法
    串的模式匹配算法 ------ KMP算法
    lvalue require as increment operand
    c 语言连续输入字符型数据
    [pat]数素数
    [PAT]数字分类
    HDOJ_4540_威威猫系列故事——打地鼠
  • 原文地址:https://www.cnblogs.com/xgzzzy16/p/9822591.html
Copyright © 2011-2022 走看看