Servlet中八个监听器介绍
一、监听对象创建的监听器
1、ServletContextListener
/*** 用于监听ServletContext对象创建和销毁的监听器* @since v 2.3*/public interface ServletContextListener extends EventListener {/*** 对象创建时执行此方法。该方法的参数是ServletContextEvent事件对象,事件是【创建对象】这个动作* 事件对象中封装着触发事件的来源,即事件源,就是ServletContext*/public default void contextInitialized(ServletContextEvent sce) {}/*** 对象销毁执行此方法*/public default void contextDestroyed(ServletContextEvent sce) {}
}
2、HttpSessionListener
/*** 用于监听HttpSession对象创建和销毁的监听器* @since v 2.3*/
public interface HttpSessionListener extends EventListener {/*** 对象创建时执行此方法。*/public default void sessionCreated(HttpSessionEvent se) {}/*** 对象销毁执行此方法*/public default void sessionDestroyed(HttpSessionEvent se) {}
}
3、ServletRequestListener
/*** 用于监听ServletRequest对象创建和销毁的监听器* @since Servlet 2.4*/
public interface ServletRequestListener extends EventListener {/*** 对象创建时执行此方法。*/public default void requestInitialized (ServletRequestEvent sre) {}/*** 对象销毁执行此方法*/public default void requestDestroyed (ServletRequestEvent sre) {}
}
二、监听域中属性发生变化的
1、ServletContextAttributeListener
/*** 用于监听ServletContext域(应用域)中属性发生变化的监听器* @since v 2.3*/public interface ServletContextAttributeListener extends EventListener {/*** 域中添加了属性触发此方法。参数是ServletContextAttributeEvent事件对象,事件是【添加属性】。* 事件对象中封装着事件源,即ServletContext。* 当ServletContext执行setAttribute方法时,此方法可以知道,并执行。*/public default void attributeAdded(ServletContextAttributeEvent scae) {}/*** 域中删除了属性触发此方法*/public default void attributeRemoved(ServletContextAttributeEvent scae) {}/*** 域中属性发生改变触发此方法*/public default void attributeReplaced(ServletContextAttributeEvent scae) {}
}
2、HttpSessionAttributeListener
/*** 用于监听HttpSession域(会话域)中属性发生变化的监听器* @since v 2.3*/
public interface HttpSessionAttributeListener extends EventListener {/*** 域中添加了属性触发此方法。*/public default void attributeAdded(HttpSessionBindingEvent se) {}/*** 域中删除了属性触发此方法*/public default void attributeRemoved(HttpSessionBindingEvent se) {}/*** 域中属性发生改变触发此方法*/public default void attributeReplaced(HttpSessionBindingEvent se) {}
}
3、ServletRequestAttributeListener
/*** 用于监听ServletRequest域(请求域)中属性发生变化的监听器* @since Servlet 2.4*/
public interface ServletRequestAttributeListener extends EventListener {/*** 域中添加了属性触发此方法。*/public default void attributeAdded(ServletRequestAttributeEvent srae) {}/*** 域中删除了属性触发此方法*/public default void attributeRemoved(ServletRequestAttributeEvent srae) {}/*** 域中属性发生改变触发此方法*/public default void attributeReplaced(ServletRequestAttributeEvent srae) {}
}
三、和会话相关的两个感知型监听器
1、HttpSessionBinderListener
/*** 用于感知对象和会话域绑定的监听器* 当有数据加入会话域或从会话域中移除,此监听器的两个方法会执行。* 加入会话域即和会话域绑定* 从会话域移除即从会话域解绑*/
public interface HttpSessionBindingListener extends EventListener {/*** 当数据加入会话域时,也就是绑定,此方法执行*/public default void valueBound(HttpSessionBindingEvent event) {}/*** 当从会话域移除时,也就是解绑,此方法执行*/public default void valueUnbound(HttpSessionBindingEvent event) {}
}
2、HttpSessionActivationListener
/*** 用于感知会话域中对象钝化和活化的监听器*/
public interface HttpSessionActivationListener extends EventListener {/*** 当会话域中的数据钝化时,此方法执行*/public default void sessionWillPassivate(HttpSessionEvent se) {}/*** 当会话域中的数据活化时(激活),此方法执行*/public default void sessionDidActivate(HttpSessionEvent se) {}
}
相关文章:
Servlet中八个监听器介绍
一、监听对象创建的监听器 1、ServletContextListener /*** 用于监听ServletContext对象创建和销毁的监听器* since v 2.3*/public interface ServletContextListener extends EventListener {/*** 对象创建时执行此方法。该方法的参数是ServletContextEvent事件对象…...
LicenseBox Crack,对服务器的要求最低
LicenseBox Crack,对服务器的要求最低 LicenseBox是用于管理基于PHP的软件、WordPress插件或主题、主题、插件和WordPress的更新和许可的完整软件。它易于安装,对服务器的要求最低,用户友好的界面,无限脚本的使用为您的创造力打开了大门。 Li…...
css中重难点整理(vertical-align)
一、vertical-align 在学习vertical-align的时候,可能会很困惑。即使网上有一大推文章讲veitical-align,感觉看完好像懂了,等自己布局的时候用到vertical-align的时候好像对它又很陌生。这就是我在布局的时候遇到的问题。 本来vertical-align就很不好理…...
javaScript基础面试题 ---宏任务微任务
宏任务微任务一、为什么JS是单线程语言?二、JS是单线程,怎样执行异步代码?1、JS是单线程语言 2、JS代码执行流程,同步执行完,再进行事件循环(微任务、宏任务) 3、清空所有的微任务,再…...
基于JSP的网上书城
技术:Java、JSP等摘要:随着科技的迅速发展,计算机技术已应用到社会的各个领域。随着计算机技术和通信技术的迅速发展,网络的规模也逐渐增大,网络的元素也随之不断增加,有的利用其通信,有的利用其…...
C#教程 05 常量
文章目录 C# 常量整数常量浮点常量字符常量字符串常量定义常量C# 常量 常量是固定值,程序执行期间不会改变。常量可以是任何基本数据类型,比如整数常量、浮点常量、字符常量或者字符串常量,还有枚举常量。 常量可以被当作常规的变量,只是它们的值在定义后不能被修改。 整数…...
【华为OD机试真题java、python】基站维修工程师【2022 Q4 100分】(100%通过)
代码请进行一定修改后使用,本代码保证100%通过率。本文章提供java、python两种代码 题目描述 小王是一名基站维护工程师,负责某区域的基站维护。 某地方有 n 个基站( 1<n<10 ),已知各基站之间的距离 s( 0<s<500 ), 并且基站 x 到基站 y 的距离,与基站 y …...
你是真的“C”——为冒泡排序升级赋能!
你是真的“C”——为冒泡排序升级赋能!😎前言🙌冒泡排序升级赋能之境界一!冒泡排序升级赋能之境界二!qsort库函数的运用和认识总结撒花💞😎博客昵称:博客小梦 😊最喜欢的…...
【JavaEE】基于mysql与servlet自制简易的表白墙程序
文章目录1 表白墙页面构建2 Servlet 回顾3 表白墙后端程序实现3.1 我们需要做什么?3.2 实现细节4 实现结果写在最后1 表白墙页面构建 该页面由标题、文本、三个 input 输入框与一个提交按钮构成,整体比较简单,相关样式文件和页面代码会在后面…...
抓包技术(浏览器APP小程序PC应用)
P1 抓包工具 01. Fidder 首先第一个Fiddler它的优势,独立运行,第二个支持移动设备(是否能抓移动APP的包,)在这一块的话wireshark、httpwatch就不支持,因此在这一块就可以排除掉前连个,因为我们…...
linux笔记(10):ubuntu环境下,基于SDL2运行lvgl+ffmpeg播放mp4
文章目录1.ubuntu安装ffmpeg1.1 源码安装1.1 克隆ffmpeg源码1.2 配置编译条件,编译,安装1.2 直接安装依赖包2.下载lvgl源码2.1 测试原始代码2.2 运行lv_example_ffmpeg_2()例程2.2.1 配置 LV_USE_FFMPEG 为 12.2.2 lv_example_ffmpeg_2()替换lv_demo_wid…...
JavaScript专题之类型判断(下)
参考原文:JavaScript专题之类型判断(下) 前言 在上篇《JavaScript专题之类型判断(上)》中,我们抄袭 jQuery 写了一个 type 函数,可以检测出常见的数据类型,然而在开发中还有更加复杂的判断,比如 plainObject、空对象…...
【VC 7/8】vCenter Server 基于文件的备份和还原Ⅲ—— 使用 SMB 协议备份 VC(VAMI 中文)
目录2.2 使用 SMB 协议备份 VC(VAMI 中文)(1)登录 vCenter Server 管理界面(2)进入备份页面(3)配置 Backup Schedule(4)开始备份(5)备…...
linux - 内核编译
一. 编译的实质基于头文件和c文件--->产生对象文件(.o)将所有的对象文件链接起来,产生可执行文件。内核的编译系统组成Makefile分布在内核源代码中的Makefile, 定义内核的编译规则,配合Kconfig使用。Kconfig配置文件,给用户提供…...
Spring——配置文件实现IOC和DI入门案例
现在先如图创建如下的Maven项目,在业务层和数据层分别写上对应的接口和实现类 在BookServiceImpl中创建一个BookDaoImpl对象,并调用里面的save()方法。 在测试类里面new一个bookservice的实现类,调用save()方法 输出如下图所示 要使用IOC容…...
机器学习100天(四十一):041 对偶支持向量机-公式推导
《机器学习100天》完整目录:目录 机器学习 100 天,今天讲的是:对偶支持向量机-公式推导! 本节主要延续上一节的内容,推导线性支持向量机的对偶形式。本节内容包含的数学理论和推导很多,我尽量简化其中的数学部分,只做感性的介绍,便于大家在理解的同时不受数学复杂公式…...
C语言下的signal()函数
signal()简介 signal() 函数是 C 语言中用于处理系统信号的函数。它在 signal.h 头文件中进行声明。信号用作进程间通信,报告异常行为,例如除零,或用户的一些按键组合,例如同时按下 Ctrl 与 C 键,产生信号 SIGINT。 …...
google独立站和与企业官网的区别是什么?
google独立站和与企业官网的区别是什么? 答案是:独立站通过谷歌SEO优化可以更好的获取自然排名的流量。 随着互联网的不断发展,企业越来越重视自身网站的建设和优化,而在企业网站建设中,很多人会犯一个常见的错误&am…...
Vue3---语法初探
目录 hello world 实现简易计时显示 反转字符串 显示隐藏 了解循环 了解双向绑定实现简易记事 设置鼠标悬停的文本 组件概念初探,进行组件代码拆分 hello world 最原始形态,找到 id 为 root 的标签,将 Vue 实例的模板放入标签之内 …...
esp8266WiFi模块通过MQTT连接华为云
esp8266WiFi模块通过MQTT连接华为云总结:一、 MQTT透传AT固件烧录二、 串口调试2.1 设置模块为STA模式2.2 连接WiFi2.3 设置MQTT的登陆用户名与密码2.4 设置MQTT的ClientID2.5 设置MQTT接入地址2.6 订阅设备属性上报的主题2.7 上传数据2.8 平台下发命令2.9 华为云物…...
3个技巧让FanControl风扇识别率提升90%:Windows 11用户的实战指南
3个技巧让FanControl风扇识别率提升90%:Windows 11用户的实战指南 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_…...
小米路由器R3G刷机实战:从官方固件到蜜罐版MT工具箱的保姆级避坑指南
小米路由器R3G深度改造指南:解锁第三方固件的完整路线图 当你盯着家里那台性能日渐吃紧的小米路由器R3G时,是否想过它其实蕴藏着未被发掘的潜力?这款发布于数年前的中端路由器,凭借MT7621双核芯片和128MB内存的硬件基础࿰…...
QtUnblockNeteaseMusic终极指南:高效解锁网易云音乐地区限制
QtUnblockNeteaseMusic终极指南:高效解锁网易云音乐地区限制 【免费下载链接】QtUnblockNeteaseMusic A desktop client for UnblockNeteaseMusic, made with Qt. 项目地址: https://gitcode.com/gh_mirrors/qt/QtUnblockNeteaseMusic QtUnblockNeteaseMusic…...
别再死记硬背SPI时序了!用STM32CubeMX+W25Q128实战,5分钟搞懂CPOL/CPHA模式选择
从波形到代码:STM32CubeMX可视化解析SPI四种模式的实战指南 当第一次接触SPI通信时,那四种工作模式(CPOL/CPHA组合)就像天书一样令人困惑。传统教程往往要求死记硬背时序图,但今天我们将通过STM32CubeMX和W25Q128 Flas…...
OmenSuperHub深度解析:3个关键技术突破彻底改变惠普游戏本性能管理体验
OmenSuperHub深度解析:3个关键技术突破彻底改变惠普游戏本性能管理体验 【免费下载链接】OmenSuperHub 使用 WMI BIOS控制性能和风扇速度,自动解除DB功耗限制。 项目地址: https://gitcode.com/gh_mirrors/om/OmenSuperHub 你是否曾因官方Omen Ga…...
高性能JSXBIN解码器架构设计:3大核心技术优势深度解析
高性能JSXBIN解码器架构设计:3大核心技术优势深度解析 【免费下载链接】jsxer A fast and accurate JSXBIN decompiler. 项目地址: https://gitcode.com/gh_mirrors/js/jsxer Jsxer是一个快速且准确的JSXBIN反编译器,专门用于将Adobe ExtendScrip…...
从零构建智能体工作流引擎:核心架构、实现与生产级实践
1. 项目概述:从零构建一个智能体工作流引擎最近在GitHub上看到一个名为agentkit的项目,来自BCG X的官方仓库。这个标题立刻引起了我的兴趣,因为它直指当前AI应用开发中的一个核心痛点:如何高效、可靠地编排和管理多个AI智能体&…...
GitHub个人访问令牌实战:告别密码认证,安全推送代码与创建PR
1. 项目概述与核心痛点如果你刚开始接触开源贡献,或者最近在尝试向GitHub推送代码时,大概率会遇到一个令人困惑的拦路虎:在终端执行git push命令后,系统提示你输入用户名和密码。你很自然地输入了登录GitHub网站用的账号密码&…...
Minecraft服务器技能管理自动化:mcpskills-cli命令行工具实战指南
1. 项目概述与核心价值最近在折腾一些自动化脚本,特别是涉及到Minecraft服务器管理和技能系统的时候,发现很多操作还是得手动进后台敲命令,或者依赖一些图形化面板,效率上总感觉差了点意思。直到我发现了alibiinformationsuperhig…...
基于LLM的代码库智能维护:自动化更新与重构实践
1. 项目概述:当代码库有了AI大脑最近在GitHub上看到一个挺有意思的项目,叫“CodeWithLLM-Updates”。光看名字,你可能觉得这又是一个“用AI写代码”的工具,但仔细研究它的README和代码结构,我发现它的定位要更“幕后”…...
