Filter 和 Listener

news2024/11/29 9:42:49

Filter

表示过滤器。是JavaWeb三大组件(Servlet、Filter、Listener)之一。

过滤器可以把对资源的请求 拦截 下来。浏览器可以访问服务器上所有的资源,而在访问到这些资源之前可以使用过滤器拦截下来,也就是说在访问资源之前会先经过Filter。如下图:

开发步骤:

1.定义类,实现Filter接口,并重写其所有方法

public class FilterDemo implements Filter{
    public void inint(FilterConfig filterConfig)
    public void doFilter(ServletRequest request,ServletResponse response)
    public void destroy(){}
}

2.配置Filter拦截资源的路径:在类上定义@WebFilter注解。注解的value属性值/*表示拦截所有的资源。

@WebFilter("/*")
public class FilterDemo implements Filter{

3.在diFilter方法中输出一句话并放行

public void doFilter(ServletRequest req,ServletResponse resp,FilterChain chain){
    System.out.println("filter 被执行了");
    //放行
    chain.doFilter(req,resp);
}

过滤器的生命周期:

1.初始化init方法 

2.过滤请求doFilter方法 

3.销毁destroy方法

Filter四种拦截路径配置:

拦截路径有如下四种配置方式:
拦截具体的资源: /index.html :只有访问 index.html 时才会被拦截
目录拦截: /user/* :访问 /user 下的所有资源,都会被拦截
后缀名拦截: *.html :访问后缀名为 html 的资源,都会被拦截
拦截所有: /* :访问所有资源,都会被拦截

Listener

 表示监听器。

用于监听 ServletContext HttpSession ServletRequest 等对象的创建、销毁等事件。它可以帮助我们跟踪Web 应用的状态和行为。
监听器在 Java Web 应用中被用于追踪在线用户数量、加载初始化数据、清理资源、进行日志记录以及进行应用统计。其主要类型包括ServletContextListener ,用于监听应用上下文的创建和销毁;
HttpSessionListener ,负责监听会话的创建和销毁;以及 ServletRequestListener ,监听请求的创建和销毁。此外,还有如HttpSessionAttributeListener ServletContextAttributeListener 等其他监听器,专门用于监控属性的变化。
JavaWeb提供了8个监听器:

其中ServletContextListener接触较多,它是用来监听ServletContext对象的创建和销毁。

此接口有两个方法:

void contextInitialized (ServletContextEvent sce) :ServletContext对象被创建了会自动执行的方法

void contextDestroyed(ServletContextEvent sce):ServletContext对象被销毁时会自动执行的方法

 使用:

定义一个类,实现ServletContextListener接口

重写所有抽象方法

使用@WebListener进行配置

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1176706.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

微信小程序里怎么添加砍价活动

随着网络购物的普及,越来越多的消费者开始享受这种方便快捷的购物方式。而在这个大环境下,各种电商活动层出不穷,吸引了众多消费者的关注。而在这些活动中,砍价活动无疑是最受欢迎的一种。今天,我们就来聊一聊如何在小…

centos7 一键安装部署wvp-gb28181-pro

准备工作 下载finalshell工具 好用的shell工具,FinalShell_好用的shell软件-CSDN博客 设置服务器网络 ky10、centos7等linux系统修改网卡ip地址,并设置网卡开机自启_kylin配置ip-CSDN博客 wvp安装部署 上传文件到服务器 选择服务器上存储的路径&#…

Win10电脑更新显示缺少重要的安全和质量修复怎么解决?

在Win10电脑中用户点击更新系统,却收到了“你的设备中缺少重要的安全和质量修复”的提示,导致无法正常完成Win10系统的更新。下面小编给大家带来简单且有效的解决方法,解决后大家就能顺利完成Win10系统的升级,从而满足自己的个性化…

QML查看事件回调函数的参数

背景 QML里面,为事件写回调函数时,参数(形参)总是不确定是哪些。下面方式可以用来获取形参。 方法 方法一 打印控件类型 使用console.log,查看控件类型 MouseArea {id: mouseAreawidth: 100height: 100onPressed: {}…

taro 接入小程序原生语法代码包的配置

标题taro 接入小程序原生语法代码包的配置 1、微信小程序原生语法代码包拷贝到src目录下 2、config/index.js中配置拷贝原生代码包到编译后的目录中,并且增加编译排除原生代码包的配置 3、app.config.js中配置原生代码包路径、插件(建议分包引入&…

人民邮电出版社70周年庆暨异步社区8周年庆成功举办,和鲸Heywhale荣获异步社区“2023年度最佳合作伙伴”奖

10月28日,人民邮电出版社 70 周年庆暨异步社区 8 周年庆活动在北京召开,和鲸科技荣获异步社区“2023年度最佳合作伙伴”奖,和鲸科技社区运营负责人王煜倩作为代表出席。 本次活动回顾了人民邮电出版社与异步社区的发展历程,展示了…

Ionic 模块组件的理解

1 Ionic4.x 文件分析 1.1 app.module.ts 分析 Ionic 是一个基于 Angular 的移动应用开发框架,能帮助开发者使用 Web 技术(HTML5、CSS3、JavaScript)创建跨平台的应用程序。在 Ionic 应用程序中,app.module.ts 文件是整个应用程序的…

亚马逊与TEMU平台欧代英代如何注册?注册欧代/英代流程及注意事项

亚马逊与TEMU平台欧代英代如何注册?注册欧代/英代流程及注意事项 亚马逊平台的商家的产品,由于受到欧盟商品安全新法规市场监管法规欧盟要求所有标有CE标志的商品,都要拥有欧盟境内的欧代作为商品合规的联系方式(也称为负责人)。由于英国脱离…

RFID技术在固定资产的应用

作为RFID系统中不可或缺的关键组件,读写器在固定资产管理中扮演着重要的角色。它利用RFID技术,能够迅速而有效地捕获、记录和跟踪资产信息,以实现更为高效和准确的资产管理。在本文中,我们将深入探讨RFID技术在固定资产管理领域的…

SQL注入之Sqli-labs第二关

本次注入sql-labs的第二关 1.进入第二关后,我们可以看到英语 please input the id as parameter with numeric value,请输入ID作为参数和数值。首先我们可以判断出这是一个GET请求作为注入点的题目,那么我们就需要去URL上拼接ID的值&#xff…

红队专题-新型webshell的研究

新型webshell的研究 招募六边形战士队员webshell与MemoryShell内存马新型一句话木马之Java篇 AES加密Class二进制解析友军防护为什么会被拦截SO waf防护规则END 一劳永逸绕过waf实现篇服务端实现 前言:你马没了利用JavaAgent技术发现并清除系统中的内存马介绍安全行…

如何快速学会自动化测试?

前言 自动化测试是现代软件开发领域中越来越流行的一种测试方法。它使用软件工具和脚本来执行测试,以提高测试的效率和准确性,减少测试的成本和时间。下面是一些常见的自动化测试技术,以及它们的优缺点。 同时,在这我准备了一份…

JavaScript_document对象_属性

1、document.doctype 2、document.documentElement 3、document.body, document.head 4、document.forms 5、document.images 6、document.scripts 7、document.domain

【owt】p2p client mfc 工程梳理

1年前构建的,已经搞不清楚了。所以梳理下,争取能用较新的webrtc版本做测试。最早肯定用这个测试跑通过 【owt】p2p Signaling Server 运行、与OWT-P2P-MFC 交互过程及信令分析官方的mfc客户端 估计是构造了多个不同的webrc版本的客户端

【FastCAE源码阅读5】使用VTK实现鼠标拾取对象并高亮

一、拾取对象 拾取对象是在PropPickerInteractionStyle类实现的,该类是vtkInteractorStyleRubberBandPick的子类,重写原来的鼠标处理函数。当鼠标左键按下,会触发以下代码: void PropPickerInteractionStyle::clickSelectGeomet…

51单片机中断函数讲解及外部中断举例

文章目录 前言一、中断是什么?1.只有一个中断2. 什么东西可以中断?3. 有两个中断?中断嵌套4. 是否支持更多中断嵌套?5. 中断响应过程?6. 中断服务函数7.寄存器 二、外部中断实现1.中断配置2.参考程序3. 实验14.实验2 总…

性能工作站,双十一大促,超值推荐:蝰蛇峡谷 NUC12SNKi7迷你主机,优惠抢购!

近年来,ITX主机和小型化系统变得越来越受欢迎。英特尔的NUC受到许多玩家们的关注。作为mini主机的代表NUC小巧设计和灵活性使它成为很多玩家和科技爱好者的选择。它的高性能和可玩性使得它在迷你型准系统市场上备受推崇。双11来临之际,我们分析下哪款高性…

黑盒测试用例设计方法之等价类划分法

等价类划分法是一种典型的黑盒测试用例设计方法。采用等价类划分法时,完全不用考虑程序内部结构,设计测试用例的唯一依据是软件需求规格说明书。 等价类 所谓等价类,是输入条件的一个子集合,该输入集合中的数据对于揭示程序中的…

C++编程案例讲解-基于结构体的控制台通讯录管理系统

基于结构体的控制台通讯录管理系统 通讯录是一个可以记录亲人、好友信息的工具,系统中需要实现的功能如下: 添加联系人:向通讯录中添加新人,信息包括(姓名、性别、年龄、联系电话、家庭住址)最多记录1000人…

BuhoCleaner for Mac:彻底改变您的Mac清理体验

BuhoCleaner for Mac是一款专为Mac用户打造的清理工具,它可以帮助您清理无用的文件、缓存、日志和其他垃圾,从而释放磁盘空间并提高系统性能。这款工具具有简单易用的界面和强大的清理功能,是Mac用户必备的清理工具之一。 特点 简单易用的界…