Listener概述、监听对象的创建和销毁、监听域对象属性变化、监听会话相关的感知型监听器及监听器实现

简介: Listener概述、监听对象的创建和销毁、监听域对象属性变化、监听会话相关的感知型监听器及监听器实现

一、Listener概述


● Web程序开发中,可以对对象的创建和销毁、域对象中属性的变化、会话相关内容进行监听


● Servlet中提供八个监听器,都是以接口的形式提供,具体功能需要自行完善


● 相关概念:


1. 事件:触发的动作


2. 事件源:产生事件的对象


3. 事件监听器:监听发生在事件源上的事件


4. 事件处理器:监听器的成员方法,事件发生时会触发该方法


二、监听对象的创建和销毁的监听器


ServletContextListener接口:


1、用于监听ServletContext对象的创建与销毁


2、核心方法:


方法 说明
void contextInitialized(ServletContextEvent sce) ServletContext对象创建时执行
void contextDestroyed(ServletContextEvent sce) ServletContext对象销毁时执行


HttpSessionListen


1、用于监听HttpSession对象的创建与销毁


2、核心方法:


方法 说明
void sessionCreated(HttpSessionEvent se) HttpSession对象创建时执行
void sessionDestroy(HttpSessionEvent se) HttpSession对象销毁时执行


ServletRequestListener接口:


1、用于监听ServletRequest对象的创建与销毁


2、核心方法:


方法 说明
void requestInitialized(ServletRequestEvent sre) ServletRequest对象创建时执行
void requestDestroyed(ServletRequestEvent sre) ServletRequest对象销毁时执行


三、监听域对象属性变化的监听器


ServletContextAttributeListener接口:


1、用于监听ServletContext中属性的变化


2、核心方法:


方法 说明
void attributeAdded(ServletContextAttributeEvent scae) 域中添加属性时执行
void attributeRemoved(ServletContextAttributeEvent scae) 域中移除属性时执行
void attributeReplaced(ServletContextAttributeEvent scae) 域中替换属性时执行


HttpSessionAttributeListener接口:


1、用于监听HttpSession中属性的变化


2、核心方法:


方法 说明
void attributeAdded(HttpSessionBindingEvent se) 域中添加属性时执行
void attributeRemoved(HttpSessionBindingEvent se) 域中移除属性时执行
void attributeReplaced(HttpSessionBindingEvent se) 域中替换属性时执行


ServletRequestAttributeListener接口:


1. 用于监听ServletRequest中属性的变化


2. 核心方法:


方法 说明
void attributeAdded(ServletRequestAttributeEvent srae) 域中添加属性时执行
void attributeRemoved(ServletRequestAttributeEvent srae) 域中移除属性时执行
void attributeReplaced(ServletRequestAttributeEvent srae) 域中替换属性时执行


四、监听会话相关的感知型监听器


HttpSessionBindingListener接口:


1、用于监听JavaBean对象绑定到HttpSession对像和从HttpSession对象解绑的事件


2、核心方法:


方法 说明
void valueBound(HttpSessionBindingEvent event) 数据绑定(添加)到会话域时执
void valueUnbound(HttpSessionBindingEvent
event)
数据从会话域解绑(移除)时执


HttpSessionActivationListener接口:


1、用于监听HttpSession中对象活化(恢复到内存)和钝化(持久化到硬盘)的过程


2、核心方法:


方法 说明
void sessionWillPassivate(HttpSessionEvent se) 会话域中数据钝化时执行
void sessionDidActivate(HttpSessionEvent se) 会话域中数据活化时执行


五、监听器实现


步骤:


1、将监听器绑定到事件源,也就是注册监听器


2、监听器监听到事件发生时,将事件对象作为参数传给相关的成员方法


3、成员方法可以根据事件对象获取事件源,然后进行处理


注册监听器的方式有两种,一种是通过web.xml文件,一种是通过注解的方式:


1、通过web.xml注册


<!--<listener-class>标签中写的是监听器的实现类的全限定名类名-->
<listener>
    <listener-
class>com.liaoxiangqian.listener.MyListener</listener-class>
</listener>


2、通过注解注册


 //在监听器实现类上方使用该注解进行注册
 @WebListener

 

目录
相关文章
|
9天前
监听计算属性的变化
【10月更文挑战第23天】通过使用`watch`函数和`watchEffect`函数,我们可以有效地监听计算属性的变化,并根据变化进行相应的处理。
|
5月前
|
数据管理 Java
Spigot开发中的事件与监听器的关系
在Spigot插件开发中,监听器(Listener)是一个非常重要的概念。它们允许你捕捉和处理各种游戏事件,使你的插件能够对玩家的行为、游戏环境的变化等做出响应。本文将详细介绍监听器是什么、它们的用途,并通过一个代码示例展示如何使用监听器。
47 0
|
6月前
v-on监听多个方法
v-on监听多个方法
36 0
|
6月前
当监听的属性是对象的引用时,`watch`选项是否会触发监听?
当监听的属性是对象的引用时,`watch`选项是否会触发监听?
39 2
|
6月前
|
JavaScript 前端开发 UED
v-on 可以监听多个方法吗?
v-on 可以监听多个方法吗?
70 0
v-on可以监听多个方法吗?
总结:v-on是可以同时监听多个方法的
104 0
|
存储 缓存 JavaScript
activiti 全局流程监听ActivitiEventListener,实现监听不同类型事件,不需要在acitivit中配置任务监听,非常方便
activiti 全局流程监听ActivitiEventListener,实现监听不同类型事件,不需要在acitivit中配置任务监听,非常方便
1151 0
activiti 全局流程监听ActivitiEventListener,实现监听不同类型事件,不需要在acitivit中配置任务监听,非常方便
ServletContext对象的属性操作监听器
ServletContext对象的属性操作监听器的个人理解