JavaWeb 之监听器
1. JavaWeb 监听器概述
- 在 JavaWeb 被监听的事件源为: ServletContext, HttpSession, ServletRequest, 即三大域对象.
- 监听域对象"创建"与"销毁"的监听器;
- 监听域对象"操作域属性"的监听器;
- 监听 HttpSession 的监听器;
- J2EE 文档
javax.servlet
包下;
ServletContext 事件源
生命周期监听:
ServletContextListener
, 它有两个方法, 一个在出生后调用,一个在死亡前调用;void contextInitialized(ServletContextEvent sce);
: 创建 ServletContext 时,调用;void contextDestroyed(ServletContext sce);
: 销毁 ServletContext 时, 调用;
属性监听:
ServletContextAttributeListener
,它有三个方法:void attributeAdded(ServletContextAttributeEvent event);
: 添加属性时调用;void attributeReplaced(ServletContextAttributeEvent event);
: 替换属性时调用;void attributeRemoved(ServletContextAttributeEvent event);
: 移除属性时调用
HttpSession 事件源
- 生命周期监听:
HttpSessionListener
- 属性监听:
HttpSessionAttributeListener
ServletRequest 事件源
- 生命周期监听:
ServletRequestListener
- 属性监听:
ServletRequestAttributeListener
事件对象
ServletContextEvent
:- 主要方法
ServletContext getServletContext()
, 获取事件源;
- 主要方法
HttpSessionEvent
- HttpSesssion getSession(), 获取事件源;
ServletRequest
ServletContext getServletContext();
ServletRequest getServletRequest();
ServletContextAttributeEvent
ServletContext getServletContext()
: 获取事件源;String getName()
: 获取属性名;Object getValue()
: 获取替换之前的属性值;
2. 感知监听
2.1 特点
- 它用来添加到 JavaBean 上,而不是添加到三大域上!
- 这两个监听器都不需要在 web.xml 中注册;
- 与 HttpSession 相关.
2.2 监听器
HttpSessionBindingListener
, 它有两个方法void valueBound(HttpSessionBindingEvent event)
;void valueUnbound(HttpSessionBindingEvent event)
;
3. session 钝化和活化相关的监听器
- Tomcat 会在 session 长时间不被使用时钝化 session 对象, 所谓钝化 session, 就是把 session 通过
序列化的方式保存到硬盘文件中. 当用户再使用 session 时, Tomcat 还会把钝化的对象再活化 session,
所谓活化就是把硬盘文件中的 session 在反序列化会内存.
3.1 监听器
HttpSessionActivationListener
, 它有两个方法public void sessionWillPassivate(HttpSessionEvent event)
: 当对象感知被活化时调用本方法;public void sessionDidActivate(HttpSessionEvent event)
: 当对象感知被钝化时调用本方法;
配置 Tomcat 钝化 session 的参数, 目录:
tomcat/conf/catalina/localhost
, 文件名称为项目名称
<Context>
// 该参数固定, maxIdleSwap 表示 session 最大不活动时间 1 分钟
<Manager className="org.apache.catalina.session.PersistentManager" maxIdleSwap="1">
// 设置 session 序列化地址 Tomcat/work/catalina/localhost/listener/mysession 目录下
<Store className="org.apache.catalina.session.FileStore" directory="mysession"/>
</Context>
参考资料:
JavaWeb 之监听器的更多相关文章
- JavaWeb中监听器+过滤器+拦截器区别、配置和实际应用
JavaWeb中监听器+过滤器+拦截器区别.配置和实际应用 1.前沿上一篇文章提到在web.xml中各个元素的执行顺序是这样的,context-param-->listener-->fil ...
- JavaWeb基础—监听器Listener
javaWeb三大组件: servlet listener(用的不多) filter 什么叫监听器: 初次相见:AWT 二次相见:SAX(XML解析时)Bundle 绑定 监听器是一个接口,内容由我们 ...
- JavaWeb中监听器
一.事件源:三大域! ServletContext 生命周期监听:ServletContextListener,它有两个方法,一个在创建时调用,一个在销毁时调用: void contextIniti ...
- Javaweb基础--->监听器listener(转发)
JavaWeb中的监听器 1.基本概念 JavaWeb中的监听器是Servlet规范中定义的一种特殊类,它用于监听web应用程序中的ServletContext, HttpSession和 Servl ...
- IT兄弟连 JavaWeb教程 监听器1
1 基本概念 监听器是一个专门用于对其他对象身上发生的事件或状态改变进行监听和相应处理的对象,当被监视的对象发生情况时,立即采取相应的行动.监听器其实就是一个实现特定接口的普通java程序,这个程序 ...
- 深入分析JavaWeb Item38 -- 监听器(Listener)高速学习
一.监听器介绍 1.1.监听器的概念 监听器是一个专门用于对其它对象身上发生的事件或状态改变进行监听和对应处理的对象,当被监视的对象发生情况时,马上採取对应的行动.监听器事实上就是一个实现特定接口的普 ...
- 深入分析JavaWeb Item39 -- 监听器(Listener)学习进阶
一.监听域对象中属性的变更的监听器 域对象中属性的变更的事件监听器就是用来监听 ServletContext, HttpSession, HttpServletRequest 这三个对象中的属性变更信 ...
- javaweb之监听器详解
在servlet中定义了多种类型的监听器,他们用于监听事件源分别是servletContext,httpsession,servletrequest 这三个域对象. servlet中监听器主要有三类: ...
- JavaWeb -- sevlet 监听器
1.三个域对象的监听(创建和销毁) servletContext, session, request 监听器 ServletContext监听器: public class MyServletCon ...
随机推荐
- LoadRunner监控tomcat
LoadRunner监控tomcat (2012-10-25 14:01:42)转载▼ double atof (const char * string);Action(){ // 保存JVM内 ...
- asp.net+mvc+easyui+sqlite 简单用户系统学习之旅(三)—— 简单登录页面+sqlite+动软代码生成器的使用
上一节讲到利用easyui的layout.tree.tab和datagrid创建用户管理的页面,注意利用到easyui的页面一定要按顺序添加jQuery和easyUI的.js和.css样式,灵活查看e ...
- gradle多渠道打包及友盟统计-eclipse版本
在进行渠道打包的之前,先看看准备篇,知道打包为了什么. 参见1.0android批量打包认知. eclipse中使用gradle多渠道打包全部流程 一.生成gradle文件,配置本地的gradle环境 ...
- GoogLeNet模型的微调
我从零开始训练了GoogLeNet模型. 但它没有给我带来希望的结果. 作为替代,我想对我的数据集中的GoogLeNet模型进行微调. 有谁知道我应该遵循什么步骤? 采纳答案: 假设你正在尝试做图像分 ...
- Sring容器的懒加载lazy-init设置
默认情况下,spring的IOC容器中lazy-init是false的,即没有打开懒加载模式. 如果你没有看到这个lazy-init 的参数设置就说明是false啦. 那么什么是懒加载? 懒加载--- ...
- 超级拷贝scp
scp -r 超级拷贝,其是ssh的一个组件,通过ssh访问来拷贝文件.首先保证已安装openssh-server. 用法:scp -r 目标用户名@目标ip:目标文件绝对路径 存放位置 $ scp ...
- 应用市场出新规,国内千款应用TargetSdkVersion调查分析
近期,谷歌针对Google Play上架应用发布强制性适配Android 8.0公告,要求自2018 年 8 月 1 日起,所有向 Google Play 首次提交的新应用都必须基于 Andro ...
- VLC WebPlugin中文
Documentation:WebPlugin 这篇文档讲述的是 VLC media player Web plugins 和怎样在网页使用它 Contents 1 介绍: 构建包含video的Web ...
- 结果集(ResultSet)用法
结果集(ResultSet)是数据中查询结果返回的一种对象,可以说结果集是一个存储查询结果的对象,但是结果集并不仅仅具有存储的功能,他同时还具有操纵数据的功能,可能完成对数据的更新等. 结果集读取数据 ...
- kmalloc、vmalloc、malloc的区别
简单的说: kmalloc和vmalloc是分配的是内核的内存,malloc分配的是用户的内存 kmalloc保证分配的内存在物理上是连续的,vmalloc保证的是在虚拟地址空间上的连续,malloc ...