javaweb之监听器详解
在servlet中定义了多种类型的监听器,他们用于监听事件源分别是servletContext,httpsession,servletrequest 这三个域对象。
servlet中监听器主要有三类:
1,监听三个域对象的创建和销毁的监听器(3个 ),
servletContextListenlisten监听器:用来监听servletcontxt域对象的创建和销毁的监听器:
创建:在服务器启动的时候,为每个web应用创建单独的ServletContext对象。
contextInitialized用来监听创建
销毁:在服务器关闭的时候,或者项目从web服务器中移除的时候。
contextDsttroyed用来监听销毁
创建监听器就是新建一个类然后实现servletContextListen

然后在配置xml(用eclipse创建lissten文件系统会自动生成)
<listener>
<listen_class>监听器名称的全路径</>
</listener>

HttpSessionListener监听器
用来监听HttpSession对象的创建和销毁
n 服务器端第一次调用getSession()方法时候。
l 销毁:
n 非正常关闭服务器(正常关闭服务器session会被序列化)。
n Session过期(默认过期时间30分钟)。
n 手动调用session.invalidate()方法。

套路同上

ServletRequestListener监听器
l 用户监听ServletRequest对象的创建和销毁
l 创建
n 从客户端向服务器发送一次请求,服务器就会创建request对象。
l 销毁
服务器对这次请求作出了响应之后,request对象就销毁了。


2,监听三个域对象的属性变更(属性添加,移除,替换)的监听器(3个)
ServletContextAttributeListener
l 监听ServletContext对象中的属性变更(属性添加,移除,替换)的监听器
HttpSessionAttributeListener
l 监听HttpSession对象中的属性变更(属性添加,移除,替换)的监听器


ServletRequestAttributeListener
l 监听ServletRequest对象中的属性变更(属性添加,移除,替换)的监听器
3,监听httpsession中Javabean的状态改变(钝化,活化,绑定,解绑)的监听(2个)
保存在Session域中的Java类可以有多种状态:绑定到session中;从session中解除绑定;随session对象持久化到一个存储设备中(钝化);随session对象从一个存储设备中恢复(活化)。
Servlet对方中定义了两个特殊的监听的接口来帮助Java类了解自己在Session域中的状态:
HttpSessionBindingListener接口
HttpSessionActivationListener接口,
实现这两个接口的类不需要在web.xml中进行配置。
HttpSessionBindingListener监听器:
监听Java类在HttpSession中的绑定和解除绑定的状态的监听器:

HttpSessionActivationListener监听器
监听HttpSession中Java类的钝化和活化监听器

l 配置完成session的序列化和反序列化
Context标签可以配置在:
tomcat/conf/context.xml:所有tomcat下虚拟主机和虚拟目录下的工程都会序列化session
tomcat/conf/Catalina/localhost/context.xml:localhost虚拟主机下的所有项目会序列化session
工程/META-INF/context.xml:当前工程才会序列化session。
<Context>
<Manager className="org.apache.catalina.session.PersistentManager" maxIdleSwap="1">
<Store className="org.apache.catalina.session.FileStore" directory="itheima"/>
</Manager>
</Context>
保存在Session域中的Java类可以有多种状态:绑定到session中;从session中解除绑定;随session对象持久化到一个存储设备中(钝化);随session对象从一个存储设备中恢复(活化)。
javaweb之监听器详解的更多相关文章
- JavaWeb监听器详解
1 JavaWeb监听器概述 在JavaWeb被监听的事件源为:ServletContext.HttpSession.ServletRequest,即三大域对象.有监听域对象"创建" ...
- JavaWeb开发之详解Servlet及Servlet容器
自JavaEE诞生伊始,Servlet容器和Servlet技术,就构成了JavaEE应用的核心,配合其它组件,它们完善了Java企业级开发的全套解决方案.小到一个静态博客网站,大到分布式的集群应用,都 ...
- JavaWeb之XML详解
XML语言 什么是XML? XML是指可扩展标记语言(eXtensible Markup Language),它是一种标记语言,很类似HTML.它被设计的宗旨是传输数据,而非显示数据. XML标签没有 ...
- Java程序员从笨鸟到菜鸟之(二十一)java过滤器和监听器详解 【转】
过滤器 1.Filter工作原理(执行流程) 当客户端发出Web资源的请求时,Web服务器根据应用程序配置文件设置的过滤规则进行检查,若客户请求满足过滤规则,则对客户请求/响应进行拦截,对请求头和请 ...
- Spring 框架中注释驱动的事件监听器详解
事件交互已经成为很多应用程序不可或缺的一部分,Spring框架提供了一个完整的基础设施来处理瞬时事件.下面我们来看看Spring 4.2框架中基于注释驱动的事件监听器. 1.早期的方式 在早期,组件要 ...
- java过滤器和监听器详解
过滤器 1.Filter工作原理(执行流程) 当客户端发出Web资源的请求时,Web服务器根据应用程序配置文件设置的过滤规则进行检查,若客户请求满足过滤规则,则对客户请求/响应进行拦截,对请求头和请求 ...
- Spring 4.2框架中注释驱动的事件监听器详解
事件交互已经成为很多应用程序不可或缺的一部分,spring框架提供了一个完整的基础设施来处理瞬时事件.下面我们来看看Spring 4.2框架中基于注释驱动的事件监听器. 1.早期的方式 在早期,组件要 ...
- Servlet监听器详解及举例
监听器就是一个实现特定接口的普通java程序,这个程序专门用于监听另一个java对象的方法调用或属性改变,当被监听对象发生上述事件后,监听器某个方法将立即被执行. 监听器原理 监听原理 1.存在事件源 ...
- Filter(过滤器)与Listener(监听器)详解
11.Filter(重点) Filter:过滤器,用来过滤网站的数据: 处理中文乱码 登陆验证... Filter开发步骤: 导包 编写过滤器 导包不要错 实现Filter接口,重写对应的方法即可 p ...
随机推荐
- XML配置文件的命名空间与Spring配置文件中的头
一直以来,写Spring配置文件,都是把其他配置文件的头拷贝过来,最多改改版本号,也不清楚哪些是需要的,到底是干嘛的.今天整理一下,拒绝再无脑copy. 一.Spring配置文件常见的配置头 < ...
- jmeter配置、安装
一. 工具描述 apache jmeter是100%的java桌面应用程序,它被设计用来加载被测试软件功能特性.度量被测试软件的性能.设计jmeter的初衷是测试web应用,后来又扩充了其它的功能.j ...
- 简聊iOS支付集成(支付宝和微信支付)
一.支付集成是什么 1.现在大部分app都有快捷支付功能,支付集成将第三方支付平台集成到自己的项目中,能够完成自己项目中的支付功能, 二.支付集成的使用 <1>.支付宝: 下载SDK和De ...
- python 面向对象编程(二)
在上一篇文章中谈到了类的基本定义和使用方法,这只体现了面向对象编程的三大特点之一:封装. 下面就来了解一下另外两大特征:继承和多态. 在Python中,如果需要的话,可以让一个类去继承一个类,被继承的 ...
- android-studio-bundle-141.2178183首次执行Hello World的时候出现ADB not responding. If you'd like to retry, then please manually kill "adb.e的错误
这是由于有其他程序在占用adb.exe要使用的端口5037,打开命令提示符cmd,输入指令netstat -aon|findstr 5037查看在使用此端口的程序,如 8036即为占用该端口号的PID ...
- open vswitch常用操作
以下操作都需要root权限运行,在所有命令中br0表示网桥名称,eth0为网卡名称. 添加网桥: #ovs-vsctl add-br br0 列出open vswitch中的所有网桥: #ovs-vs ...
- NuGet(Nuget Packages)
Nuget是一个.NET平台下的开源的项目,它是Visual Studio的扩展.在使用Visual Studio开发基于.NET Framework的应用时,Nuget能把在项目中添加.移除和更新引 ...
- 复选框选中删除行(DOM练习)
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...
- 京东笔试---通过考试(DP)
题目描述 小明同学要参加一场考试,考试一共有n道题目,小明必须作对至少60%的题目才能通过考试.考试结束后,小明估算出每题作对的概率,p1,p2,...,pn,你能帮他算出他通过考试的概率吗 ...
- node-ejs-mongodb结合的项目案例-----引用mongoose和未引用mongoose模块
本项目个人尝试了2种方法,一个是直接用mongod,一个是引用mongod里的mongoose. nodejs-ejs-mogondb- nodej+ejs模板,通过mogondb数据查询数据实现简单 ...