Java监听器listener的介绍

listener

  • 能做什么

    当web中某些动作发生之后,服务器就调用listener中对应的方法。

  • 内部机制

    接口回调

Web监听器

  • 步骤

    1. 创建需要的监听器类,实现接口

    2. 注册|配置(有些不需要注册)监听器。

      servlet4.0可以用反射实现@WebListener()

      servlet2.5是需要在web.xml中配置

      <listener>
      <listener-class>com.itheima.listener.MyRequestListener</listener-class>
      </listener>

三个作用域的监听器(需要注册)

request  ---httpServletRequest
session ---httpSession
aapplication --- ServletContext
  1. 用途

    主要是这3个域的创建与销毁时调用方法

    • ServletContextListener

    利用它来,在servletcontext创建的时候,

    1. 完成自己想要的初始化工作
    2. 执行自定义任务调度。 执行某一个任务。 Timer
    • HttpSessionListener

    统计在线人数

  2. ServletRequestListener

    • request创建:

    访问服务器上的任意资源都会有请求出现。

    访问 html: 会

    访问 jsp: 会

    访问 servlet: 会

    • request销毁:

    服务器已经对这次请求作出了响应。

  3. ServletContextListener

    • servletcontext创建:

    启动服务器的时候

    • servletContext销毁:

    关闭服务器. 从服务器移除项目

  4. HttpSessionListener

    • session的创建

    只要调用 getSession

    html: 不会

    jsp: 会

    servlet:会 要写getSession();

    • session的销毁

    超时 30分钟

    非正常关闭 销毁

    正常关闭服务器(序列化)

监听三个作用域属性状态变更(需要注册)

​ servletContext --- ServletContextAttributeListener

​ request --- ServletRequestAttributeListener

​ session --- HttpSessionAttributeListener

  • 条件

    可以监听在作用域中值 添加 | 替换 | 移除的动作。

    调用的相应的方法。

  • 用法(重载,只是3方法的参数不同,查API就行了)

    @Override
    public void attributeAdded(HttpSessionBindingEvent sbe) {
    /* This method is called when an attribute
    is added to a session.
    */
    } @Override
    public void attributeRemoved(HttpSessionBindingEvent sbe) {
    /* This method is called when an attribute
    is removed from a session.
    */
    } @Override
    public void attributeReplaced(HttpSessionBindingEvent sbe) {
    /* This method is invoked when an attibute
    is replaced in a session.
    */
    }

监听httpSession里面存值的状态变更(不用注册)

  1. HttpSessionBindingListener

    监听对象与session 绑定session.setAttribute("键名",对象)和解除绑定session.removeAttribute("键名")的动作

  • 作用

    JavaBean被绑定了和解绑时调用

  • 步骤

    让JavaBean实现该接口

  1. HttpSessionActivationListener

    用于监听现在session的值 是 钝化 (序列化)还是活化 (反序列化)的动作

  • 作用

    钝化 (序列化)将内存中的数据存到硬盘中

    活化 (反序列化)将硬盘的数据加载到内存中

    session中的值可能会很多, 并且我们有很长一段时间不使用这个内存中的值, 那么可以考虑把session的值可以存储到硬盘上【钝化】,等下一次在使用的时候,在从硬盘上提取出来。 【活化】

  • 步骤

  • 创建

    让JavaBean实现该接口和Serializable接口

  • session中的值一段时间不用自动钝化的配置

  • 1.在tomcat里面 conf/context.xml 里面配置

    对所有的运行在这个服务器的项目生效

    2.在conf/Catalina/localhost/context.xml 配置

    对 localhost生效。 localhost:8080

    3.在自己的web工程项目中的 META-INF/context.xml

    只对当前的工程生效。

    存储地址 tomcat目录\work\Catalina\localhost\ListenerDemo\itheima

    maxIdleSwap : 1分钟不用就钝化

    directory : 钝化后的那个文件存放的目录位置。

    <Context>
    <Manager className="org.apache.catalina.session.PersistentManager" maxIdleSwap="1">
    <Store className="org.apache.catalina.session.FileStore" directory="itheima"/>
    </Manager>
    </Context>

Java监听器listener的介绍的更多相关文章

  1. JAVA监听器Listener

    JAVA监听器Listener 一. 简介 监听器用于对web中内置对象的状态或者属性变化进行监听并做出相应响应的一种Servlet;在内置对象的生命周期中,产生.销毁等状态发生变化时,监听器就会进行 ...

  2. Java监听器Listener使用说明

    转载:http://blog.csdn.net/meng2602956882/article/details/13511587 1.什么是Java监听器 监听器也叫Listener,是Servlet的 ...

  3. Java监听器Listener使用详解

    监听器用于监听web应用中某些对象.信息的创建.销毁.增加,修改,删除等动作的发生,然后作出相应的响应处理.当范围对象的状态发生变化的时候,服务器自动调用监听器对象中的方法.常用于统计在线人数和在线用 ...

  4. Java监听器Listener的使用详解

    监听器用于监听Web应用中某些对象的创建.销毁.增加,修改,删除等动作的发生,然后作出相应的响应处理.当监听范围的对象的状态发生变化的时候,服务器自动调用监听器对象中的方法.常用于统计网站在线人数.系 ...

  5. java之Servlet监听器Listener

    常用应用场景:单点登录.统计在线人数 一.简介 (一)概述 1.Listener 用于监听 java web程序中的事件,例如创建.修改.删除Session.request.context等,并触发响 ...

  6. java监听器(Listener)学习笔记

    现在来说说Servlet的监听器Listener,它是实现了javax.servlet.ServletContextListener 接口的服务器端程序,它也是随web应用的启动而启动,只初始化一次, ...

  7. 【java web】监听器listener

    一.简介 Java的监听器,也是系统级别的监听.监听器随web应用的启动而启动.Java的监听器在c/s模式里面经常用到,它会对特定的事件产生产生一个处理.监听在很多模式下用到,比如说观察者模式,就是 ...

  8. javaWeb学习总结(11)- 监听器(Listener)学习

    一.监听器介绍 1.1.监听器的概念 监听器是一个专门用于对其他对象身上发生的事件或状态改变进行监听和相应处理的对象,当被监视的对象发生情况时,立即采取相应的行动.监听器其 实就是一个实现特定接口的普 ...

  9. 过滤器(Filter)、拦截器(Interceptor)、监听器(Listener)

    一.Filter 过滤器 1.简介 Filter也称之为过滤器,它是Servlet技术中最实用的技术,WEB开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servle ...

随机推荐

  1. vue npm run build 失败

    之前删除过 node-moudel 文件夹,然后 npm install 重新安装,一切OK.打包的时候,报错,找不到caniuse什么的.再删除node-moudel,重新cnpm install ...

  2. Javascritp Array数组方法总结

    合并数组 - concat() 用法一 (合并两个数组) var hege = ["Cecilie", "Lone"]; var stale = [" ...

  3. Java8新特性 - 并行流与串行流

    并行流就是把一个内容分成多个数据块,并用不同的线程分别处理每个数据块的流. Java8中将并行进行了优化,我们可以很容易的对数据进行并行操作.Stream API可以声明性地通过parallel()和 ...

  4. Windows下的Android Studio环境搭建、安装使用

    https://jingyan.baidu.com/article/20b68a88ff2ca4796cec6232.html https://blog.csdn.net/jklinux/articl ...

  5. JavaScript中进制和字符编码问题

    1.进制: JavaScript中允许使用字面量的形式声明不同进制的数字: var a = 0b10; // 2 声明一个二进制 var b = 010; // 8 八进制,严格模式下会报错 var ...

  6. 第十三篇:socket网络编程

    本篇主要介绍网络编程的基础,以及UDP/TCP网络的socket编程,关于UDP套接字聊天器的实现.以及基于TCP套接字的服务器/客户端的实现上传下载功能. 一.网络通信 关于网络通信即通过网络(介质 ...

  7. Linux命令——killall 、kill 、pkill、xkill

    参考:killall .kill .pkill 命令详解 Using kill, killall, and pkill 4 Ways to Kill a Process – kill, killall ...

  8. C++——调用优化

    原始代码 #include<iostream> using namespace std; class Test { public: //以参数列表形式对数据成员进行初始化 Test() : ...

  9. LoggerFactory is not a Logback LoggerContext but Logback is on the classpath. Either remove Logback or the competing implementation

    2019-06-26 22:19:57.408642475 java.lang.IllegalArgumentException: LoggerFactory is not a Logback Log ...

  10. python练习题(三)

    题目: 一.二选一 1.每个区生成1个符合身份证规则的身份证号码 2.随机生成10个符合身份证规则的身份证号码 二.要求: 1.身份证属于南京市 2.出生日期为1980-1-1 至 2019-8-1的 ...