Listener(Web监听器、活化、钝化)
Web监听器
总共有8个 划分成三种类型
- 定义一个类,实现接口
- 注册 | 配置监听器
监听三个作用域创建和销毁
- request —httpServletRequest
- session —httpSession
- aapplication — ServletContext
ServletContextListener
servletcontext创建:
- 启动服务器的时候
servletContext销毁:
- 关闭服务器. 从服务器移除项目
- ServletRequestListener
request创建:
访问服务器上的任意资源都会有请求出现。
访问 html: 会
访问 jsp: 会
访问 servlet : 会
request销毁:
服务器已经对这次请求作出了响应。
public class MyRequestListener implements ServletRequestListener {
@Override
public void requestDestroyed(ServletRequestEvent sre) {
System.out.println("servletrequest 销毁了");
}
@Override
public void requestInitialized(ServletRequestEvent sre) {
System.out.println("servletrequest 初始化了");
}
}
<listener>
<listener-class>com.itheima.listener.MyRequestListener</listener-class>
</listener>
HttpSessionListener
session的创建
只要调用getSession
html: 不会
jsp: 会 getSession();
servlet: 会session的销毁
超时 30分钟
非正常关闭 销毁
正常关闭服务器(序列化)
public class MySessionListener implements HttpSessionListener {
@Override
public void sessionCreated(HttpSessionEvent se) {
System.out.println("创建session了");
}
@Override
public void sessionDestroyed(HttpSessionEvent se) {
System.out.println("销毁session了");
}
}
作用:
ServletContextListener
利用它来,在servletcontext创建的时候,
完成自己想要的初始化工作
执行自定义任务调度。 执行某一个任务。 Timer
HttpSessionListener
统计在线人数.
监听三个作用域属性状态变更
可以监听在作用域中值 添加 | 替换 | 移除的动作。
- servletContext — ServletContextAttributeListener

- request — ServletRequestAttributeListener

- session — HttpSessionAttributeListener

监听httpSession里面存值的状态变更
这一类监听器不用注册。
- HttpSessionBindingListener
监听对象与session 绑定和解除绑定 的动作
- 让javaBean 实现该接口即可
@Override
public void valueBound(HttpSessionBindingEvent event) {
System.out.println("对象被绑定进来了");
}
@Override
public void valueUnbound(HttpSessionBindingEvent event) {
System.out.println("对象被解除绑定");
}
- HttpSessionActivationListener
用于监听现在session的值 是 钝化 (序列化)还是活化 (反序列化)的动作
- 钝化 (序列化)
把内存中的数据 存储到硬盘上
- 活化 (反序列化)
把硬盘中的数据读取到内存中。
NO01:在bean包下创建一个bean并且实现HttpSessionActivationListener , Serializable接口,这是与其他监听不同的地方
public class Bean02 implements HttpSessionActivationListener , Serializable{
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public void sessionWillPassivate(HttpSessionEvent se) {
System.out.println("session中的值被钝化了...");
}
@Override
public void sessionDidActivate(HttpSessionEvent se) {
System.out.println("session中的值被活化了...");
}
}
NO02:创建一个JSp页面用来加个数据进去
<%@page import="com.itheima.domain.Bean02"%>
这是demo04页面
<%
Bean02 bean = new Bean02();
bean.setName("lisisi");
session.setAttribute("bean", bean);
%>
- session的钝化活化的用意何在
session中的值可能会很多, 并且我们有很长一段时间不使用这个内存中的值, 那么可以考虑把session的值可以存储到硬盘上【钝化】,等下一次在使用的时候,在从硬盘上提取出来。 【活化】
- 如何让session的在一定时间内钝化.
做配置即可
1. 在tomcat里面 conf/context.xml 里面配置
对所有的运行在这个服务器的项目生效
2. 在conf/Catalina/localhost/context.xml 配置
对 localhost生效。 localhost:8080
3. 在自己的web工程项目中的 META-INF/context.xml
只对当前的工程生效。
maxIdleSwap : 1分钟不用就钝化
directory : 钝化后的那个文件存放的目录位置。
D:\tomcat\apache-tomcat-7.0.52\work\Catalina\localhost\ListenerDemo\itheima
<Context>
<Manager className="org.apache.catalina.session.PersistentManager" maxIdleSwap="1">
<Store className="org.apache.catalina.session.FileStore" directory="itheima"/>
</Manager>
</Context>
- 然后刷新一下就活化了
Listener(Web监听器、活化、钝化)的更多相关文章
- Web 监听器
什么事web 监听器? Servlet规范中定义的一种特殊类 用于监听ServletContext.HttpSession和ServletRequest等象的创建与销毁的事件 用监听域对象的属性发生修 ...
- Web监听器导图详解(转)
阅读目录 Web监听器 监听器的分类 Servlet版本与Tomcat版本 getAttribute与getParameter的区别 参考 监听器是JAVA Web开发中很重要的内容,其中涉及到的知识 ...
- java Web监听器导图详解
监听器是JAVA Web开发中很重要的内容,其中涉及到的知识,可以参考下面导图: Web监听器 1 什么是web监听器? web监听器是一种Servlet中的特殊的类,它们能帮助开发者监听web中的特 ...
- Web监听器导图详解
监听器是JAVA Web开发中很重要的内容,其中涉及到的知识,可以参考下面导图: Web监听器 1 什么是web监听器? web监听器是一种Servlet中的特殊的类,它们能帮助开发者监听web中的特 ...
- Filter过滤器Listener:监听器
Filter过滤器 1. 概念 web中的过滤器:当访问服务器资源是,过滤器可以将请求拦截下来,完成一些特殊功能: 过滤器的作用 完成通用的操作:例如登录验证.统一编码处理.敏感字符过滤... 快速入 ...
- Filter(过滤器)、ThreadLocal(本地线程)、Listener(监听器)
Filter(过滤器) Filter过滤器它的作用是:拦截请求,过滤响应. 过滤器链 1)执行的顺序依次是: A B C Demo03 C2 B2 A2 2)如果采取的是注解的方式进行配置,那么过滤器 ...
- 在自定义的web监听器中嵌入web中的定时事件
在 http://www.cnblogs.com/myadmin/p/4806265.html 中说明了自定义web监听器的一些东西. 本文中的web定时任务也基于上篇文章的自定义web监听器. 新建 ...
- java Web 监听器Listener详解
简介 JavaWeb中的监听器是Servlet规范中定义的一种特殊类,它用于监听web应用程序中的ServletContext.HttpSession和 ServletRequest这三大域对象的创建 ...
- 16.Listener(监听器)
/*监听器*/ java的事件监听机制(主要是对一些web元素的监听 (ServletContext(计时器),HttpSession和ServletRequest)) 1.事件监听涉及到三个组件:事 ...
随机推荐
- Xcode 9.0 报错,Safe Area Layout Guide Before IOS 9.0
解决方案就是: 第一步 第二步 第三步 重新编译.
- 服务端OLEVARIANT数据之后传输
将OLEVARIANT数据流化,然后对流进行压缩,还原成OLEVARIANT以后再发送. procedure StreamToVariant(Stream: TStream; var V: OLEVa ...
- No module named 'PyQt5.QtWebEngineWidgets' 解决方法
“No module named 'PyQt5.QtWebEngineWidgets”报错的原因是PyQt5版本过高,解决方法主要有两大类方法: [方法一] 指定安装5.10.1版本的pyqt5 pi ...
- nginx反向代理(2)
目录 nginx缓存 基本概念 常用模块 proxy_cache 超时相关 常见架构 ========================================================= ...
- [Database] MAC MySQL中文乱码问题
1 确保数据库编码设置, 可修改my.cnf mysql> show variables like '%character%'; +--------------------------+---- ...
- jqGrid一次性读取本地数据
参考:http://blog.sina.com.cn/s/blog_54da57aa010154r7.html
- 1552146271@qq.com
北京时间9月27日早间消息,美国外卖服务DoorDash周四宣布,一项安全漏洞暴露了该公司大约490万客户.商家和送货员的个人数据. 这家总部位于旧金山的公司在一份声明中说,此次泄露的信息可能包括大约 ...
- 新闻网大数据实时分析可视化系统项目——6、HBase分布式集群部署与设计
HBase是一个高可靠.高性能.面向列.可伸缩的分布式存储系统,利用Hbase技术可在廉价PC Server上搭建 大规模结构化存储集群. HBase 是Google Bigtable 的开源实现,与 ...
- spring事务代码实践
事务一般是指数据库事务,是指作为一个程序执行单元执行的一系列操作,要么完全执行,要么完全不执行.事务就是判断以结果为导向的标准. 一.spring的特性(ACID) (1).原子性(atomicity ...
- java web开发缓存方案,ehcache和redis哪个更好
Ehcache在java项目广泛的使用.它是一个开源的.设计于提高在数据从RDBMS中取出来的高花费.高延迟采取的一种缓存方案.正因为Ehcache具有健壮性(基于java开发).被认证(具有apac ...