当前位置: 首页 > news >正文

web实操10——Filter和Listener

Filter介绍

web三大组件:servlet,filter, lisenter。
在这里插入图片描述
在这里插入图片描述

Filter快速入门

步骤

在这里插入图片描述
拦截路径:你访问什么样的资源,过滤器会生效,包括静态资源,动态资源。
配置:两种配置方式

代码实现

代码:
实现Filter接口并实现方法:
在这里插入图片描述
在这里插入图片描述

注解方式配置:

/*:访问所有资源之前都会被过滤器拦下来;
/demo.jsp:只有访问demo.jsp才会被拦截器拦截;
在这里插入图片描述
访问index.jsp时:会被过滤器拦截
在这里插入图片描述
访问页面并没有显示index.jsp…内容,但是过滤器被执行了:
在这里插入图片描述
在这里插入图片描述

执行过滤器后,要考虑是否放行:

这段代码称为放行:
在这里插入图片描述
重启服务器,再访问:
页面有显示:
在这里插入图片描述
过滤器也被执行了:
在这里插入图片描述

web.xml配置方式

在这里插入图片描述
在这里插入图片描述

@WebFilter()注解源码

在这里插入图片描述

urlPatterns默认值空,value也代表了urlPatterns的配置,我们写value=就可以了,如果只有一个值,value可以省略掉。

执行流程

演示代码

在这里插入图片描述
在这里插入图片描述
访问结果:
在这里插入图片描述
在这里插入图片描述

执行流程:

过滤器放行之后,请求资源,资源访问之后,再走过滤器放行下面的代码

过滤器有request对象,req里面放的都是一些请求参数,那么请求参数我们就可以对req进行增强,也可以把请求消息数据拿出来做一些操作后,再进行放行的操作;
放行后执行对应的资源servlet,jsp这些,我们可能会在servlet里面设置resopnse对象,然后回到过滤器里面,就可以继续对resopnse对象进行增强。

生命周期

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

过滤器拦截路径配置

在这里插入图片描述
在这里插入图片描述

过滤器拦截方式配置

资源以哪种方式被访问到:
可以通过浏览器直接发送请求;
服务器内部跳转,转发的方式。

过滤器可以配置拦截的方式是哪种,比如配置拦截只请求资源,只有浏览器直接发送请求资源过滤器才会被执行;如果是转发,过滤器就不会被执行。
在这里插入图片描述
在这里插入图片描述
点进去:
是一个枚举:
在这里插入图片描述

代码演示:
在这里插入图片描述

过滤器链

可以一个项目里配置多个过滤器,而且这些过滤器可以同时生效。
在这里插入图片描述

执行(拦截)顺序

一条路上两个土匪,就一条路,去经过,回来经过顺序。
在这里插入图片描述

代码演示

demo6
在这里插入图片描述
demo7
在这里插入图片描述
访问:
在这里插入图片描述
访问结果:符合预期
在这里插入图片描述

过滤器的先后顺序

每个字符分别比较,a<b,a先执行。
在这里插入图片描述
demo6和demo17,因为前面都一样,到6和1,1值小,所以17先执行

案例一——登陆验证

在这里插入图片描述

代理模式

动态代理

案例二——过滤敏感词汇

在这里插入图片描述
在这里插入图片描述

Listener

在这里插入图片描述
java web中有很多监听器对象,这里只学习ServletContextListener.

ServletContextListener

是一个接口,没有对应的实现类,所以需要我们自己写对应的实现类。

api:

在这里插入图片描述

步骤

以后写监听器的机会很少…
在这里插入图片描述

代码演示

相关文章:

web实操10——Filter和Listener

Filter介绍 web三大组件&#xff1a;servlet&#xff0c;filter, lisenter。 Filter快速入门 步骤 拦截路径&#xff1a;你访问什么样的资源&#xff0c;过滤器会生效&#xff0c;包括静态资源&#xff0c;动态资源。 配置&#xff1a;两种配置方式 代码实现 代码&#…...

Spring中,出现依赖不完全注入后才执行逻辑

1. Bean生命周期机制 Spring管理的Bean是通过生命周期回调进行初始化和依赖注入的。以下是典型的生命周期阶段&#xff1a; 实例化&#xff08;Instantiation&#xff09;&#xff1a; 创建Bean对象。依赖注入&#xff08;Dependency Injection&#xff09;&#xff1a; 向Be…...

如何选择 Dockerfile 的放置方式

是否将 Dockerfile 放在项目根目录下还是为每个应用服务单独创建 Dockerfile&#xff0c;取决于项目架构和使用场景。以下是针对不同项目类型的最佳实践和推荐方式&#xff1a; 一、单体应用项目 项目特点 项目是一个单体应用&#xff0c;只有一个运行环境&#xff0c;例如&a…...

用 HTML5 Canvas 和 JavaScript 实现炫酷跨年烟花特效

一、引言 跨年夜,五彩斑斓、绚丽绽放的烟花是最令人期待的视觉盛宴之一。在网页端,我们能否通过技术手段复现这一梦幻场景呢?答案是肯定的。本文将深入剖析一段使用 HTML5 Canvas 和 JavaScript 实现的跨年烟花特效源码,带你领略前端技术创造的惊艳画面。 用 HTML5 Canvas…...

cat命令详解

&#x1f3dd;️专栏&#xff1a;https://blog.csdn.net/2301_81831423/category_12872319.html &#x1f305;主页&#xff1a;猫咪-9527-CSDN博客 “欲穷千里目&#xff0c;更上一层楼。会当凌绝顶&#xff0c;一览众山小。” cat 是 Linux/Unix 中的一个非常常用的命令&…...

el-table 自定义表头颜色

第一种方法&#xff1a;计算属性 <template><div><el-table:data"formData.detail"border stripehighlight-current-row:cell-style"{ text-align: center }":header-cell-style"headerCellStyle"><el-table-column fixed…...

window.print()预览时表格显示不全

问题描述&#xff1a;使用element的table组件&#xff0c;表格列宽为自适应&#xff0c;但使用window.print()方法预览的页面会直接按预览宽度截取表格内容进行展示&#xff0c;造成表格可能的显示不全问题 解决方法&#xff1a;添加如下样式 media print {::v-deep {// 表头…...

React Router底层核心原理详解

React Router 是一个功能强大的路由库&#xff0c;它允许开发者在 React 单页面应用&#xff08;SPA&#xff09;中实现客户端路由管理。React Router 通过匹配 URL 和组件的关系来实现页面的导航&#xff0c;它不仅提供了简单的 API&#xff0c;还在底层实现了复杂的 URL 匹配…...

linux MySQL 实时性能监控工具

在 Linux 上&#xff0c;有多个工具可以用于 实时监控 MySQL 的性能。根据你的需求&#xff0c;以下是常用的 MySQL 实时性能监控工具&#xff0c;包括轻量级的命令行工具和可视化监控工具。 &#x1f527; 1. MySQLTuner – 一键性能优化建议 ✅ 特点 快速分析 MySQL 的性能…...

ModuleNotFoundError: No module named ‘setuptools_rust‘ 解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…...

基于Spring Boot的海滨体育馆管理系统的设计与实现

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的海滨体育馆管理系统的设计与实现。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 项目简介&#xff1a; 宠物医院…...

【机器视觉】OpenCV 图像轮廓(查找/绘制轮廓、轮廓面积/周长、多边形逼近与凸包、外接矩形)

文章目录 7. 图像轮廓7.1 什么是图像轮廓7.2 查找轮廓7.3 绘制轮廓7.4 轮廓的面积和周长7.5 多边形逼近与凸包7.6 外接矩形 OpenCV官网 7. 图像轮廓 7.1 什么是图像轮廓 图像轮廓是具有相同颜色或灰度的连续点的曲线. 轮廓在形状分析和物体的检测和识别中很有用。 轮廓的作用…...

深入浅出:React 前端框架解析与应用

引言 随着前端开发技术的不断发展&#xff0c;现代化的前端框架成为了提升开发效率、优化用户体验和构建复杂应用的关键工具。在众多的前端框架中&#xff0c;React凭借其简洁、高效、可扩展的特点&#xff0c;已成为目前最流行的前端框架之一。它由Facebook于2013年发布&…...

【网络安全设备系列】7、流量监控设备

0x00 定义: 网络流量控制是一种利用软件或硬件方式来实现对电脑网络流量的控制。它的最主要方法&#xff0c;是引入QoS的概念&#xff0c;从通过为不同类型的 网络数据包标记&#xff0c;从而决定数据包通行的优先次序。 0x01 类型: 流控技术分为两种&#xff1a; 一种是…...

qemu解析qcow文件

旧的 QEMU 图像格式&#xff0c;支持备份文件、紧凑图像文件、加密和压缩。 backing_file 基础镜像的文件名&#xff08;参见create子命令&#xff09; encryption 此选项已弃用&#xff0c;相当于encrypt.formataes encrypt.format 如果设置为aes&#xff0c;则图像将使用 128…...

免费网站源码下载指南:如何安全获取并降低开发成本

许多开发者或是需要建立网站的人&#xff0c;可以方便地获取免费网站源码。这样的下载能帮助他们降低开发费用&#xff0c;迅速构建起基本框架。但在此过程中&#xff0c;仍有许多需要注意的事项。 许多开发者或是需要建立网站的人&#xff0c;可以方便地获取免费网站源码。这…...

【Ubuntu】如何设置 Ubuntu 自动每日更新:轻松保持系统安全

如何设置 Ubuntu 自动每日更新&#xff1a;轻松保持系统安全 大家好&#xff01;今天我们来聊一个非常实用的话题——如何让 Ubuntu 系统自动每日更新。如果你是一个 Ubuntu 用户&#xff0c;尤其是服务器管理员&#xff0c;你可能会经常遇到这样的问题&#xff1a;系统需要频…...

江科大STM32入门——UART通信笔记总结

wx&#xff1a;嵌入式工程师成长日记 1、简介 简单双向串口通信有两根通信线(发送端TX和接收端RX)TX与RX要交叉连接当只需单向的数据传输时&#xff0c;可以只接一根通信线当电平标准不一致时&#xff0c;需要加电平转换芯片 传输模式&#xff1a;全双工&#xff1b;时钟&…...

github gitbook写书

github创建新的仓库 在仓库中添加目录 ‘SUMMARY.md # Summary * [简介](README.md)gitbook 新建一个site https://www.gitbook.com/ 注册账号 取名字 一路 next&#xff0c;注意选免费版 最后 gitbook同步到github 你在主页可以看到 刚刚的test网站 点击右上角圈出来…...

探秘MetaGPT:革新软件开发的多智能体框架(22/30)

一、MetaGPT 引发的 AI 变革浪潮 近年来&#xff0c;人工智能大模型领域取得了令人瞩目的进展&#xff0c;GPT-3、GPT-4、PaLM 等模型展现出了惊人的自然语言处理能力&#xff0c;仿佛为 AI 世界打开了一扇通往无限可能的大门。它们能够生成流畅的文本、回答复杂的问题、进行创…...

终极指南:3分钟掌握QQ音乐QMC加密文件无损解密技巧

终极指南&#xff1a;3分钟掌握QQ音乐QMC加密文件无损解密技巧 【免费下载链接】qmc-decoder Fastest & best convert qmc 2 mp3 | flac tools 项目地址: https://gitcode.com/gh_mirrors/qm/qmc-decoder 在数字音乐的世界里&#xff0c;你是否曾遇到过这样的困扰&a…...

基于浏览器端异步检测的B站用户成分分析方案:社区互动效率提升92%的技术实现

基于浏览器端异步检测的B站用户成分分析方案&#xff1a;社区互动效率提升92%的技术实现 【免费下载链接】bilibili-comment-checker B站评论区自动标注成分油猴脚本&#xff0c;主要为原神玩家识别 项目地址: https://gitcode.com/gh_mirrors/bi/bilibili-comment-checker …...

科学发表的组学多面板图组装

摘要 高效的图件能清晰传达研究数据与结果&#xff0c;而组装用于科学发表的组学多面板图是项耗时且易出错的工作&#xff0c;往往需要专业的软件和操作技能&#xff0c;目前尚无&#xff11;款可快速高效组装复杂组学多面板图的专用工具。本研究开发了&#xff11;款操作友好…...

开源免费压缩软件PeaZip:跨平台文件压缩与管理的全能解决方案

开源免费压缩软件PeaZip&#xff1a;跨平台文件压缩与管理的全能解决方案 【免费下载链接】PeaZip Free Zip / Unzip software and Rar file extractor. Cross-platform file and archive manager. Features volume spanning, compression, authenticated encryption. Supports…...

LeetCode刷题笔记:用动态规划一口气搞定6道回文串问题(附Java代码)

动态规划解回文问题&#xff1a;从子串到子序列的通用解法 回文串问题在算法面试中出现的频率居高不下&#xff0c;无论是统计回文子串数量、寻找最长回文子串&#xff0c;还是处理回文子序列&#xff0c;动态规划(DP)都是解决这类问题的利器。本文将带你系统掌握六种经典回文问…...

用Python和Keras从零搭建疲劳驾驶检测器:MTCNN人脸对齐与CNN分类实战

用Python和Keras从零搭建疲劳驾驶检测器&#xff1a;MTCNN人脸对齐与CNN分类实战 在智能交通领域&#xff0c;驾驶员状态监测正成为保障道路安全的关键技术。本文将带您从零构建一个基于视觉分析的疲劳检测系统&#xff0c;通过MTCNN实现毫秒级人脸对齐&#xff0c;结合自定义C…...

小米笔记本Hackintosh无线网卡终极解决方案:Intel Wi-Fi驱动 vs 更换模块

小米笔记本Hackintosh无线网卡终极解决方案&#xff1a;Intel Wi-Fi驱动 vs 更换模块 【免费下载链接】XiaoMi-Pro-Hackintosh XiaoMi NoteBook Pro Hackintosh 项目地址: https://gitcode.com/gh_mirrors/xia/XiaoMi-Pro-Hackintosh 想要在小米笔记本上完美运行macOS系…...

Qt for Android串口通信实战:usb-serial-for-android库的完整集成指南

Qt for Android串口通信实战&#xff1a;usb-serial-for-android库的完整集成指南 在工业控制、物联网设备调试等场景中&#xff0c;串口通信仍然是设备间可靠数据传输的首选方案。当我们需要在Android设备上通过Qt框架实现串口通信时&#xff0c;却发现Qt官方并未提供原生的A…...

用梦话编程:睡眠开发者的效率革命

在传统认知中&#xff0c;软件开发是高度依赖清醒、理性思维的活动。程序员在屏幕前敲击键盘&#xff0c;与逻辑、算法和Bug进行着日复一日的“搏斗”。然而&#xff0c;一场静默的效率革命正在发生&#xff0c;它挑战着我们对“工作状态”的定义——这场革命的核心&#xff0c…...

5步搞定Live Avatar数字人模型:阿里开源项目快速体验指南

5步搞定Live Avatar数字人模型&#xff1a;阿里开源项目快速体验指南 1. 数字人技术新体验 想象一下&#xff0c;你只需要一张照片和一段语音&#xff0c;就能让照片里的人"活"过来&#xff0c;对着镜头自然地说话、微笑、做表情。这不是科幻电影里的场景&#xff…...