Java监听器listener的介绍
Java监听器listener的介绍
listener
能做什么
当web中某些动作发生之后,服务器就调用listener中对应的方法。
内部机制
接口回调
Web监听器
步骤
创建需要的监听器类,实现接口
注册|配置(有些不需要注册)监听器。
servlet4.0可以用反射实现
@WebListener()
servlet2.5是需要在web.xml中配置
<listener>
<listener-class>com.itheima.listener.MyRequestListener</listener-class>
</listener>
三个作用域的监听器(需要注册)
request ---httpServletRequest
session ---httpSession
aapplication --- ServletContext
用途
主要是这3个域的创建与销毁时调用方法
- ServletContextListener
利用它来,在servletcontext创建的时候,
- 完成自己想要的初始化工作
- 执行自定义任务调度。 执行某一个任务。 Timer
- HttpSessionListener
统计在线人数
ServletRequestListener
- request创建:
访问服务器上的任意资源都会有请求出现。
访问 html: 会
访问 jsp: 会
访问 servlet: 会
- request销毁:
服务器已经对这次请求作出了响应。
ServletContextListener
- servletcontext创建:
启动服务器的时候
- servletContext销毁:
关闭服务器. 从服务器移除项目
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里面存值的状态变更(不用注册)
HttpSessionBindingListener
监听对象与session 绑定
session.setAttribute("键名",对象)
和解除绑定session.removeAttribute("键名")
的动作
作用
JavaBean被绑定了和解绑时调用
步骤
让JavaBean实现该接口
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\itheimamaxIdleSwap
: 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的介绍的更多相关文章
- JAVA监听器Listener
JAVA监听器Listener 一. 简介 监听器用于对web中内置对象的状态或者属性变化进行监听并做出相应响应的一种Servlet;在内置对象的生命周期中,产生.销毁等状态发生变化时,监听器就会进行 ...
- Java监听器Listener使用说明
转载:http://blog.csdn.net/meng2602956882/article/details/13511587 1.什么是Java监听器 监听器也叫Listener,是Servlet的 ...
- Java监听器Listener使用详解
监听器用于监听web应用中某些对象.信息的创建.销毁.增加,修改,删除等动作的发生,然后作出相应的响应处理.当范围对象的状态发生变化的时候,服务器自动调用监听器对象中的方法.常用于统计在线人数和在线用 ...
- Java监听器Listener的使用详解
监听器用于监听Web应用中某些对象的创建.销毁.增加,修改,删除等动作的发生,然后作出相应的响应处理.当监听范围的对象的状态发生变化的时候,服务器自动调用监听器对象中的方法.常用于统计网站在线人数.系 ...
- java之Servlet监听器Listener
常用应用场景:单点登录.统计在线人数 一.简介 (一)概述 1.Listener 用于监听 java web程序中的事件,例如创建.修改.删除Session.request.context等,并触发响 ...
- java监听器(Listener)学习笔记
现在来说说Servlet的监听器Listener,它是实现了javax.servlet.ServletContextListener 接口的服务器端程序,它也是随web应用的启动而启动,只初始化一次, ...
- 【java web】监听器listener
一.简介 Java的监听器,也是系统级别的监听.监听器随web应用的启动而启动.Java的监听器在c/s模式里面经常用到,它会对特定的事件产生产生一个处理.监听在很多模式下用到,比如说观察者模式,就是 ...
- javaWeb学习总结(11)- 监听器(Listener)学习
一.监听器介绍 1.1.监听器的概念 监听器是一个专门用于对其他对象身上发生的事件或状态改变进行监听和相应处理的对象,当被监视的对象发生情况时,立即采取相应的行动.监听器其 实就是一个实现特定接口的普 ...
- 过滤器(Filter)、拦截器(Interceptor)、监听器(Listener)
一.Filter 过滤器 1.简介 Filter也称之为过滤器,它是Servlet技术中最实用的技术,WEB开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servle ...
随机推荐
- hdu 2616 暴力使用 dfs求最短路径(剪枝有点依稀)
Kill the monster Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- Python Django mysqlclient安装和使用
一.安装mysqlclient 网上看到很过通过命令:pip install mysqlclient 进行安装的教程,但是我却始终安装失败,遇到的错误千奇百怪,后来通过自己下载mysqlclient客 ...
- linux环境,hidraw设备自动加载时默认权限的设置方法
在linux系统中,hidraw设备会自动加载并设置默认权限,但系统的默认只允许root用户访问,普通用户是不允许读写. 设置的方法是修改udev的配置,配置路径是/etc/udev/rules.d/ ...
- 简介:google ctemplate:简单易用的文字模板(转载)
转自:http://blog.csdn.net/aladdina/article/details/4531736 CTemplate 是一个简单实用.功能强大的文字模板(template langua ...
- 3_PHP表达式_2_变量
以下为学习孔祥盛主编的<PHP编程基础与实例教程>(第二版)所做的笔记. PHP变量可分为自定义变量和预定义变量. 以下所谈到的变量均为自定义变量. 1.变量的基本概念 PHP的变量名遵循 ...
- J.U.C之AQS:阻塞和唤醒线程
此篇博客所有源码均来自JDK 1.8 在线程获取同步状态时如果获取失败,则加入CLH同步队列,通过通过自旋的方式不断获取同步状态,但是在自旋的过程中则需要判断当前线程是否需要阻塞,其主要方法在acqu ...
- 理解Java序列化中的SerialVersionUid
一.前言 SerialVersionUid,简言之,其目的是序列化对象版本控制,有关各版本反序列化时是否兼容.如果在新版本中这个值修改了,新版本就不兼容旧版本,反序列化时会抛出InvalidClass ...
- Date与String的相互转换
构造函数 日期:new Date();//获取当前日期,精确到毫秒. 日期:new Date(long date);//即1970 年 1 月 1 日 00:00:00 GMT(Greenwich M ...
- JAVA笔记整理(六),JAVA中的多态
JAVA引用变量有两个类型:一个是编译时类型,一个运行时类型 编译时类型由声明该变量时使用的类型决定,运行时类型由实际赋给该变量的对象决定.如果编译时类型和运行时类型不一样,就形成了多态. 因为子类其 ...
- k8s的网络
K8S的网络中主要存在4种类型的通信: ①同一Pod内的容器间通信 ②各个Pod彼此间的通信 ③Pod和Service间的通信 ④集群外部流量和Service之间的通信 K8S为Pod和Ser ...