• jave web 监听器。


    https://www.imooc.com/video/5664

    Web监听器由Servlet规范提供的,可以监听客户端的请求以及服务端的操作,即监听ServletContext、HttpSession、ServletRequest对象.(这三个对象称为域对象).监听事件分为这三个对象的创建、销毁事件以及这三个对象属性的变化事件.与监听绑定到HttpSession域中的某个对象的状态的时间,分别要实现不同的监听器接口.

    Web监听器的用途如下所示:<br> 1:统计在线人数和在线用户——知道当前有多少用户在使用系统<br> 2:系统启动时加载初始化信息——这个功能有好多种方式可以实现,这是其中之一<br> 3:统计网站的访问量——和1类似<br> 4:跟Spring结合

    有多个监听器的时候,按web.xml中注册顺序启动

    监听器>过滤器>servlet的启动顺序

    @监听器分类: 1.按监听器的对象划分: a 用户监听应用程序环境对象(ServletContext)的事件监听器 b 用于监听用户会话对象(HttpSession)的事件监听器 c 用于监听请求消息对象(ServletRequest)的事件监听器 2.按事件划分 a 监听域对象自身的创建和销毁的事件监听器 b 监听域对象中的属性的增加和删除的事件监听器 c 监听绑定到HttpSession域中的某个对象的状态的事件监听器

    HttpSession的创建和销毁

    实现HttpSessionListener接口用于监听它的创建和销毁事件

    一个HttpSession可以注册多个HttpSessionListener接口,

    一个web应用中可以有多个HttpSession对象

    有两个事件处理方法: sessionCreated方法: public void sessionCreated(HttpSessionEvent se) session创建时调用 sessionDestroyed方法: public void sessionDestroyed(HttpSessionEvent se) session销毁时调用

    HttpSessionListener的主要用途:

      统计在线人数 记录访问日志,

      记录访问时间、访问的ip

    /** * 销毁session * 1.关闭服务器 * 2.关闭浏览器 * 3.不关闭浏览器,session超时 */ 不关闭浏览器,session超时

    可以在web.xml配置session超时的时间 <session-config> <session-timeout>0</session-timeout> </session-config> 0:session没有超时的限制 1:session超时1分钟后销毁,但是并不是准确的一分钟

     

    ServletRequest的事件监听器

    实现ServletRequestListener接口用于监听它的创建和销毁事件 一个ServletRequest可以注册多个ServletRequestListener接口,

    有两个事件处理方法: requestInitialized方法: public void requestInitialized(ServletRequestEvent sre) request创建时调用 参数ServletRequestEvent可以获取ServletRequest对象 ServletRequest sr = sre.getServletRequest() 进而获取初始化参数:sr.getInitParmeter("") requestDestroyed方法: public void requestDestroyed(ServletRequestEvent sre) request销毁时调用

    ServletRequest的主要用途:

      读取参数

      记录访问历史

    request监听的是用户的每一个访问请求

     

    request.setAttribute("...","..."); // 是存储在request对象中的属性

    request.getAttribute("..."); // get的只能是setAttribute设置的属性

    request.getParameter("..."); // 获取的是http://请求中设置的param

    监听器的分类-按监听事件划分:<br>

    1、监听器绑定到HttpSession域中的某个对象的状态事件监听器;<br>

    2、HttpSession中的对象状态:<br>

    (1)绑定:通过setAttribute保存到session对象当中;<br>

    (2)解除绑定:removeAttribute;<br>

    (3)钝化:将session对象持久化到存储设备上;<br>

    (4)活化:将session对象从存储设备上进行恢复。<br>

    3、session钝化机制:<br>

    (1)把服务器中不常使用的session对象暂时的序列化到系统文件或是数据库中,当使用时反序列化到内存中,整个过程有服务器自动完成。<br>

    (2)session的钝化机制由SessionManager管理,创建一个普通的javabean绑定和解除绑定需实现HttpSessionBindingListener接口<br>

    4、要想实现钝化和活化,除了需实现HttpSessionActivationListener接口还需要实现Serializable接口

    Servlet 3.0的监听器的使用:@WebListener("3.0web监听器");

     不用注册了,但还是要实现接口

  • 相关阅读:
    Nginx+Keepalived实现站点高可用
    强(strong)、软(soft)、弱(weak)、虚(phantom)引用
    Linux SSH 连接不上
    ExtJs Column 显示文字内容过长 使用Tootip显示全部内容
    史上最清晰的红黑树讲解(上)
    MySQL Cluster 集群
    分析《统计学习方法第2版》PDF+习题部分代码+部分课件讨论
    Case Styles: Camel, Pascal, Snake, and Kebab Case
    为什么EXE不能超过4GB
    But How Do It Know 关于人工智能的思考
  • 原文地址:https://www.cnblogs.com/aoyihuashao/p/8921652.html
Copyright © 2020-2023  润新知