web-servlet-listerer

1. 什么是监听器

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

监听器的相关概念:

  1. 事件源:被监听的对象  ----- 三个域对象 request  session  servletContext
  2. 监听器:监听事件源对象  事件源对象的状态的变化都会触发监听器
  3. 注册监听器:将监听器与事件源进行绑定
  4. 响应行为:监听器监听到事件源的状态变化时 所涉及的功能代码

事件监听机制

  1. 事件:一件事情
  2. 事件源 :事件发生的地方
  3. 监听器 :一个对象
  4. 注册监听:将事件、事件源、监听器绑定在一起。 当事件源上发生某个事件后,执行监听器代码

2. 监听器类型

2.1. ServletContext的变化

2.1.1. 监听生命周期

ServletContextListener接口内部方法:
初始化:contextInitialized 
销毁:contextDestroyed

2.1.2. 监听属性内容变化

ServletContextAttributeListener接口
attributeAdded:监听属性的添加
attributeRemoved:监听属性的移除
attributeReplaced:监听属性的修改

2.2. 监听HttpSession变化

2.2.1. 监听生命周期

HttpSessionListener
sessionCreated:监听Session对象的创建
sessionDestroyed:监听Session对象的销毁

2.2.2. 监听属性内

HttpSessionAttributeListener
监听HttpSession的内容的变化内部的方法:
attributeAdded:监听属性的添加
attributeRemoved:监听属性的移除
AttributeReplaced:监听属性的修改

2.2.3. 监听钝化和活化

HttpSessionActivationListener
sessionWillPassivate: 监听Session内部存储对象的钝化‐存储
sessionDidActivate:  监听Session内部存储对象的活化‐‐‐读取对应类需要实现序列化接口Serializable

2.2.4. 监听对象的添加和移除

HttpSessionBindingListener
valueBound:监听对象的绑定
valueUnbound:监听对象的解除绑定

2.2.5. HttpSession的id的变化

这是Servlet3.1新增的

HttpSessionIdListener
sessionIdChanged:监听HttpSession的id的变化

2.3. 监听ServletRequest的变化

2.3.1. 监听生命周期

ServletRequestListener
1、requestInitialized:监听request对象的初始化
2、requestDestroyed:监听request对象的销毁

2.3.2. 监听属性内容变化

ServletRequestAttributeListener
attributeAdded:监听属性的添加
attributeRemoved:监听属性的移除
attributeReplaced:监听属性的修改

2.3.3. 监听异步请求

Servelt3.1新增监听器
AsyncListener
1、onStartAsync:监听异步开始
2、onTimeout:监听超时
3、onError:监听异步的错误信息
4、onComplete:监听异步的完成

3. 配置

3.1. xml的配置

<listener>
	<listener‐class>com.qf.web.listener.RequestLeftListener</listener‐ class>
</listener>

3.2. 注解式配置

Servlet3.0之后新增的,使用注解@WebListener进行监听器的注册

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值