监听器——监听着我们WEB项目中的域对象
监听器 ——它监听着我们WEB项目中的域对象 何时被创建被销毁
ServlertContextListener——它监听ServletContext对象的创建和销毁
contextInitialized 创建的时候会调用 Tomcat启动时调用
contextDestroyed销毁的时候自动会调用的方法 Tomcat终止
这两个方法中携带的参数ServletContextEvent可以获取当前ServletContext对象
注意:每个监听器都需要在web.xml中配置标签
<listener><listener-class>com.iweb.test.HelloListener</listener-class></listener>
package com.iweb.test;import javax.servlet.Servlet;
import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;public class HelloListener implements ServletContextListener {//初始化@Overridepublic void contextInitialized(ServletContextEvent sce) {ServletContext sc=sce.getServletContext();sc.setAttribute("myAplicationKey","myAplicationValue");System.out.println("当前ServletContext对象创建");}
//销毁@Overridepublic void contextDestroyed(ServletContextEvent sce) {ServletContext sc= sce.getServletContext();System.out.println(sc.getAttribute("myAplicationKey"));System.out.println("当前ServletContext对象被销毁");}
}
执行结果:

关浏览器会话只是不能用了,不是被销毁了
2.HttpSessionListener——这是HttpSession的监听器,监听着一个会话什么时候被创建,什么时候被销毁
sessionCreated()————创建的方法
sessionDestroyed()————销毁的方法
HttpSessionListener 是 Java EE 的一个接口,用于监听 HTTP 会话的创建和销毁事件。它允许你在会话的生命周期内执行特定的操作,比如初始化或清理资源。
主要方法
sessionCreated(HttpSessionEvent se):
当一个新的 HTTP 会话被创建时调用。你可以在这里进行初始化操作,如设置默认属性。
@Override
public void sessionCreated(HttpSessionEvent se) {System.out.println("Session created: " + se.getSession().getId());
}
sessionDestroyed(HttpSessionEvent se):
当一个 HTTP 会话被销毁时调用。你可以在这里执行清理操作,如释放资源。
@Override
public void sessionDestroyed(HttpSessionEvent se) {System.out.println("Session destroyed: " + se.getSession().getId());
}
配置
要使用 HttpSessionListener,你需要在 web.xml 文件中配置它:
<listener><listener-class>com.example.SessionListener</listener-class>
</listener>
在这个例子中,SessionListener 是实现了 HttpSessionListener 接口的类。
3、ServletRequestListener——这是ServletRequest的监听器,监听着一个请求什么时候被创建,什么时候被销毁
requestInitialized()——创建的方法
requestDestroyed()——销毁的方法
ServletRequestListener 是 Java Servlet API 提供的一个接口,用于监听和处理 Servlet 请求的创建和销毁事件。它允许你在请求生命周期内执行特定操作,比如记录请求信息或进行资源管理。
主要方法
requestInitialized(ServletRequestEvent sre):
当一个 ServletRequest 对象被创建并准备好处理请求时调用。你可以在这里进行请求的初始化操作,如记录请求的开始时间。
@Override
public void requestInitialized(ServletRequestEvent sre) {ServletRequest request = sre.getServletRequest();System.out.println("Request initialized: " + request.getRemoteAddr());
}
requestDestroyed(ServletRequestEvent sre):
当请求处理完成并且 ServletRequest 对象被销毁时调用。你可以在这里执行清理操作,如记录请求的结束时间或释放资源。
@Override
public void requestDestroyed(ServletRequestEvent sre) {System.out.println("Request destroyed: " + sre.getServletRequest().getRemoteAddr());
}
配置
要使用 ServletRequestListener,你需要在 web.xml 文件中进行配置:
xml
<listener><listener-class>com.example.RequestListener</listener-class>
</listener>
在这个例子中,RequestListener 是实现了 ServletRequestListener 接口的类。
使用示例
假设你有一个实现了 ServletRequestListener 接口的类:java
package com.example;import javax.servlet.ServletRequestEvent;
import javax.servlet.ServletRequestListener;
import javax.servlet.annotation.WebListener;@WebListener
public class RequestListener implements ServletRequestListener {@Overridepublic void requestInitialized(ServletRequestEvent sre) {System.out.println("Request initialized: " + sre.getServletRequest().getRemoteAddr());}@Overridepublic void requestDestroyed(ServletRequestEvent sre) {System.out.println("Request destroyed: " + sre.getServletRequest().getRemoteAddr());}
}
在这个例子中,使用了 @WebListener 注解来声明监听器,并且实现了 requestInitialized 和 requestDestroyed 方法以处理请求的生命周期事件。
相关文章:
监听器——监听着我们WEB项目中的域对象
监听器 ——它监听着我们WEB项目中的域对象 何时被创建被销毁 ServlertContextListener——它监听ServletContext对象的创建和销毁 contextInitialized 创建的时候会调用 Tomcat启动时调用 contextDestroyed销毁的时候自动会调用的方法 Tomcat终止 这两个方法中携带的参数S…...
cs使用说明
cs分为服务器端和客户端,服务器端最好在linux上配置,客户端在windows中配置,首先要在服务器端配置好,客户端连接才能生效 服务器端配置 将cs包发送到kali虚拟机中(压缩包解压密码为mht) 1,给与cs包最大的权限 chmod -…...
skynet 连接redis
文章目录 概述main.luaagent.luaredis.lua 小结 概述 之前写过skynet 入门篇,还有skynet实操篇;这2篇,主要写了skynet如何使用,还有些skynet的调用流程之类。 其实,看过skynet的demo之后,发现skynet中没有…...
quark-design 原生引入使用说明
说明:旧项目前后不分离 使用原生html开发的情况下 以动作面板举例: esm全局引入的方式 <script type"module"> import quarkd from "https://cdn.jsdelivr.net/npm/quarkd2.0.4/esm" //直接使用 quarkd.ActionSheet({actions: [{ name: "Opti…...
UE开发中的设计模式(二) —— 中介者模式
上一篇文章介绍了观察者模式如何降低观察者和目标之间的耦合,并通过一个实例具体实现了观察者模式,本篇文章从上篇文章的实例继续,介绍中介者模式是如何带来对象间进一步的松耦合。 文章目录 问题提出概述问题解决总结优点缺点模式应用 参考资…...
安卓应用开发学习:聚合数据API获取天气预报
一、引言 上个月我通过腾讯位置服务,实现了手机定位应用的开发学习。最近在看软件书籍时,又看到了聚合数据API方面的内容。 书上介绍了聚合数据天气预报API的应用,不过书上的代码看得有些难受,我到聚合数据官网,对天气…...
设计模式 - 抽象工厂模式
💝💝💝首先,欢迎各位来到我的博客,很高兴能够在这里和您见面!希望您在这里不仅可以有所收获,同时也能感受到一份轻松欢乐的氛围,祝你生活愉快! 文章目录 引言一、抽象工…...
塔子哥选数字-阿里淘天2024笔试(codefun2000)
题目链接 塔子哥选数字-阿里淘天2024笔试(codefun2000) 题目内容 塔子哥有一个长为n的数组a。他定义一个数组的权值为:数组中不同的数字个数。 塔子哥希望从数组a中选出在个数子,使得这k个数字组成的数组权值最大,请你帮帮塔子哥。 输入描述…...
【leetcode】杨辉三角(Java语言描述)
杨辉三角 给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。 在「杨辉三角」中,每个数是它左上方和右上方的数的和。 示例 1: 输入: numRows 5 输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]示例 2: 输入: numRows 1 输出: [[1]] …...
Vue - 关于vue-kinesis 移动动画组件
Vue - 关于vue-kinesis 移动动画组件 vue-kinesis可以根据鼠标移动或滚动条来控制元素动画的动画效果;除此之外,vue-kinesis 还可以设置音频文件,根据音频频率来控制动画的跳动效果。 一、安装vue-kinesis Vue2版本: 1.安装 …...
leetCode- - - 链表
目录 1.反转链表(leetcode206) 2. 链表内指定区间反转(leetcode92) 3.链表中的节点每k个一组翻转(leetcode25) 4.合并两个排序的链表(leetcode21) 5.链表的中间节点(…...
Ashok:一款多功能开源网络侦查OSINT工具
关于Ashok Ashok是一款多功能开源网络侦查公开资源情报OSINT工具,该工具可谓是OSINT领域中的瑞士军刀,广大研究人员可以使用该工具轻松完成网络侦查任务。 侦察是渗透测试的第一阶段,这意味着在计划任何实际攻击之前收集信息。因此ÿ…...
没有获取淘宝API的资质怎么获取淘宝数据
淘宝是头部电商平台之一,每个自研商家或电商软件服务商想要开发电商管理功能模板就少不了要对接淘宝API。淘宝API是在淘宝开放平台提供的,自研商家和软件服务商接入淘宝开放平台需要经过一系列审核和申请流程,要求资质和相关资料符合对应的要…...
SQL手工注入
目录 1.判断是否存在sql注入点 1.1我们在地址栏中输入?id1 1.2我们在地址栏中输入?id-- 2.联合查询 2.1首先知道表格有几列,如果报错就是超过列数,如果显示正常就是没有超出列数。 2.2爆出显示位,就是看看表格里面哪一列是在页面显示…...
【SQL】大的国家
目录 题目 分析 代码 题目 World表: ---------------------- | Column Name | Type | ---------------------- | name | varchar | | continent | varchar | | area | int | | population | int | | gdp | bigint | ----…...
8月5日学习笔记 glibc安装与安全用户角色权限
一,glibc安装 https://www.mysql.com/ 官⽹ https://downloads.mysql.com/archives/community/ https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.33-li nux-glibc2.12-x86_64.tar 安装步骤 1.安装依赖库 [rootlocalhost ~]# yum list installed |g…...
DrissionPage 一个替代selenium的pip --- 一个可以接管正在运行的chrome包
DrissionPage 一个替代selenium的pip包,持续更新 1、加载内容,并接管chrome浏览器 from DrissionPage import ChromiumPage, ChromiumOptions page ChromiumPage(addr_or_opts127.0.0.1:9222) print(page.title)ul page.eles(idform-submit) for i i…...
爬虫入门--了解相关工具
目录 1.爬虫与python 2.第一个爬虫 3.web请求的全过程 3.1服务器渲染 3.2前端JS渲染 4.浏览器工具 4.1Elements 4.2Console 4.3Source 4.4network(重点) 5.小结 1.爬虫与python 首先我们要知道,爬虫一定要用Python么? 非也~…...
django项目中通用的分页组件
文章目录 分页组件pager组件代码 分页组件 应用分页组件,需要以下两个步骤: 视图函数中:(先获取queryset,将request和queryset传入分页组件对象中,得到生成的html标签) def customer_list(requ…...
想实现ubuntu搭建sqli-labs靶场
目录 首先前期的nginx和php部署完成编辑编辑 Xftp导入sqli-labs 遇到了的问题 它提示我们请检查db-creds.inc 去尝试解决这个问题 尝试修改MySQL root密码 修改db-creds.inc配置 再次尝试依旧失败 思考:会不会是MySQL版本过高的原因 重新下载MySQL5.7.…...
AI专著撰写大揭秘:实用工具深度解读,轻松打造学术佳作
撰写学术专著不仅考验研究者的学术能力,同样是对心理承受力的挑战。与可以通过团队合作完成的论文写作不同,专著的创作通常是“独自一人”的过程。从选定主题、搭建框架到具体的内容撰写和修改,每一个环节几乎都需要研究者亲自完成。长期处于…...
FRCRN语音降噪工具实战教程:单麦16k音频一键去噪保姆级指南
FRCRN语音降噪工具实战教程:单麦16k音频一键去噪保姆级指南 1. 快速了解FRCRN语音降噪 你是不是经常遇到这样的困扰:录制的语音通话背景噪音太大,播客内容被环境声干扰,或者重要的会议录音听不清楚人声?FRCRN语音降噪…...
【当 AI 学会“看“水尺:大模型视觉能力的一次真实落地实践】
当 AI 学会"看"水尺:大模型视觉能力的一次真实落地实践导读:大模型到底能用来干什么?除了聊天、写代码、做翻译,它还能"看懂"现实世界中的专业图像吗?今天我们以一个真实的水位识别项目为例&#…...
像素史诗·智识终端前端设计(Frontend-Design)实战:UI组件智能生成
像素史诗智识终端前端设计实战:UI组件智能生成 1. 前端设计的效率革命 想象一下这样的场景:产品经理刚描述完需求,设计稿和前端代码就已经自动生成。这听起来像是科幻情节,但借助像素史诗智识终端的前端设计能力,这种…...
EcomGPT-7B电商大模型网络安全应用:智能识别钓鱼商品与欺诈文案
EcomGPT-7B电商大模型网络安全应用:智能识别钓鱼商品与欺诈文案 最近和几个做电商平台的朋友聊天,他们都在头疼同一个问题:平台上的商品和文案越来越“花”,有些商家为了引流,标题和描述写得天花乱坠,甚至…...
FLAC转ALAC踩坑实录:除了音质无损,你的专辑封面和元数据都保留了吗?
FLAC转ALAC终极指南:如何无损迁移音质、元数据与专辑封面 每次打开Apple Music看到那些没有封面的专辑,或是艺术家信息显示为"未知"的曲目,总让人有种说不出的别扭。作为一位十年资深的数字音乐收藏者,我深知真正的音乐…...
Elasticsearch面试八股整理
1. Elasticsearch 和 Lucene 是什么关系?这是高频第一问。你可以答:“Lucene 是底层全文检索库,负责倒排索引、分词、评分这些核心能力。Elasticsearch 是在Lucene 之上做的分布式封装,提供了集群、分片、副本、REST API、聚合分析…...
一站式数据健康解决方案:docta项目架构与核心组件深度剖析
一站式数据健康解决方案:docta项目架构与核心组件深度剖析 【免费下载链接】docta A Doctor for your data 项目地址: https://gitcode.com/gh_mirrors/do/docta docta作为一款强大的数据健康诊断工具,能够帮助用户轻松检测和修复数据集中的标签错…...
hello-uniapp网络状态监听:提升应用健壮性的终极指南
hello-uniapp网络状态监听:提升应用健壮性的终极指南 【免费下载链接】hello-uniapp uni-app框架演示示例 项目地址: https://gitcode.com/gh_mirrors/he/hello-uniapp 在移动应用开发中,网络状态的稳定性直接影响用户体验和应用可靠性。hello-un…...
如何在5分钟内快速安装Homebridge Config UI X
如何在5分钟内快速安装Homebridge Config UI X 【免费下载链接】homebridge-config-ui-x The Homebridge UI. Monitor, configure and backup Homebridge from a browser. 项目地址: https://gitcode.com/gh_mirrors/ho/homebridge-config-ui-x Homebridge Config UI X …...
