servlet-filter(过滤器)

news2024/10/7 6:49:30

1.filter简述

 1.1过滤器概念

Filter也称之为过滤器,它是Servlet技术中最实用的技术,

作用1是对访问web服务器请求进行拦截,过滤了,例如Jsp, Servlet, 静态图片文件或静态 html 文件等进行拦截,从而实现一些特殊的功能。例如实现URL级别的权限访问控制、过滤敏感词汇、压缩响应信息等一些高级功能 处理编码。

作用2对HttpServletResponse进行拦截,处理。

使用Filter的完整流程:Filter对用户请求进行预处理,接着将请求交给 Servlet进行处理并生成响应,最后Filter再对服务器响应进行后处理。

1.2过滤器如何实现功能

Filter接口中有一个doFilter方法,当开发人员编写好Filter,并配置对哪个web资源进行拦截后,Web服务器每次在调用web资源的service方法之前,都会先调用一下filter的doFilter方法,doFilter方法中有一个filterChain对象,用于继续传递给下一个filter,在传递之前我们可以定义过滤请求的功能,在传递之后,我们可以定义过滤响应的功能 

2.过滤器的定义和配置

2.1 maven依赖

<dependency>
    <groupId>org.apache.tomcat.embed</groupId>
    <artifactId>tomcat-embed-core</artifactId>
    <version>10.1.7</version>
</dependency>
<dependency>
    <groupId>org.apache.tomcat.embed</groupId>
    <artifactId>tomcat-embed-core</artifactId>
    <version>9.0.34</version>
</dependency>
<dependency>
    <groupId>jakarta.servlet</groupId>
    <artifactId>jakarta.servlet-api</artifactId>
    <version>5.0.0</version>
</dependency>
<dependency>
    <groupId>org.apache.tomcat.embed</groupId>
    <artifactId>tomcat-embed-core</artifactId>
    <version>9.0.63</version>
</dependency>
 

2.2filter 配置

2.3 定义filter

2.4案例

3.过滤器的生命周期

4.过滤器的使用

5.过滤器的初始化参数

6.过滤器注解应用

7.post乱码处理

8.案例开发之登录验证

9.监听器概念in引入

10.request 域监听器

11.session域监听器

12.Application域监听器

13.案例开发-记录请求日志

14.案例开发-统计实时在线人数

15.案例开发-项目重启免密登录

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

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

相关文章

kaggle金融量化竞赛top方案汇总

看了一下今年的研究生项目&#xff0c;金融量化果然还是烫门&#xff0c;录取分数线越来越高&#xff0c;申请人数依然居高不下&#xff0c;这么多人拼命卷... 目前来看&#xff0c;只卷学历&#xff0c;理论知识肯定是不够的&#xff0c;还得要实战背景&#xff0c;对于学生来…

Netty解决粘包半包问题自定义协议

目录 一、粘包 & 半包 1、现象分析 粘包 半包 二、解决方案 1、短连接 2、定长解码器 3、分隔符 4、长度字段解码器 三、协议设计与解析 1、HTTP 2、自定义协议 自定义协议要素 Sharable 一、粘包 & 半包 1、现象分析 因为tcp是用二进制流进行传输的&a…

性能测试-性能调优(提高系统吞吐量QPS/TPS)一篇打通...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 1、系统吞度量要素…

CyclicBarrier 源码

CyclicBarrier 源码 1.构造方法 参数 n 为等待的线程数 CyclicBarrier cyclicBarrier new CyclicBarrier(n);public CyclicBarrier(int parties) {this(parties, null);}参数 barrierAction 为当等待的线程达到 参数 parties 时执行的线程任务 blic CyclicBarrier(int par…

RCE漏洞利用挖掘方法

RCE漏洞利用挖掘方法 一、从命令执行漏洞到getshell二、命令执行漏洞详解2.1、靶场实操—DVWA&#xff08;Low级别&#xff09;2.2、靶场实操—DVWA&#xff08;Medium级别&#xff09;2.3、靶场实操—DVWA&#xff08;High级别&#xff09;2.4、靶场实操—DVWA&#xff08;Imp…

form表单使用Select 选择器

案例: ps&#xff1a;年度的值类型要与select 选择器中 value 类型一致&#xff01;&#xff01; 如果input框中显示的是数字&#xff0c;说明年度的值没有与选择器中的的value一致&#xff01;&#xff01;&#xff01; YearNum 要与 value 类型一致&#xff01;&#xff01…

【第三章 flutter学习之Dart基础(上)】

文章目录 一、入口方法的定义方式二、Dart变量和常量三、Dart常用数据类型四、Dart运算符与类型转换及循环语句五、自定义方法六、Dart静态成员、操作符、类的继承七、接口八、接口分离写法九、一个类实现多个接口 一、入口方法的定义方式 main(){print(hello world) } //下边…

Docker学习笔记24

Docker Swarm 搭建&#xff1a; 主机名系统版本IP地址功能swarm-1centos7.9192.168.17.10管理节点swarm-2centos7.9192.168.17.20工作节点swarm-3centos7.9192.168.17.30工作节点 CPU、Memory、Disk不做要求。 准备IP地址和主机名&#xff1a; hostnamectl set-hostname swa…

测试不容易,入坑请注意!

“零基础入门&#xff0c;保证就业&#xff0c;钱多&#xff0c;事少&#xff01;” 绝大部分培训机构的招生话术不外乎如此&#xff0c;骗了一波又一波钱多人傻的人入坑测试。而在报名前&#xff0c;会进行考试评估学员是否适合从业软件测试的机构很难见到。如果有&#xff0…

几何光学软件

光线追踪器 从手册中&#xff1a; https://arachnoid.com/OpticalRayTracer/ OpticalRayTracer 是一款免费 (GPL) 跨平台应用程序&#xff0c;用于分析透镜和反射镜系统。 它使用光学原理和虚拟光具座来预测多种普通和奇异镜头类型以及平面镜和曲面镜的行为。 OpticalRayTracer…

搭建ssl双向验证python

生成证书 客户端和服务端搭建 https simple-https-server.py # run as follows: python simple-https-server.py # then in your browser, visit: # https://localhost import ssl import http.serverserverAddress (0.0.0.0, 443) httpd http.server.HTTPServer(serverA…

【力扣】设计内存分配器(高效实现)

题目 给你一个整数 n &#xff0c;表示下标从 0 开始的内存数组的大小。所有内存单元开始都是空闲的。 请你设计一个具备以下功能的内存分配器&#xff1a; 分配 一块大小为 size 的连续空闲内存单元并赋 id mID 。 释放 给定 id mID 对应的所有内存单元。 注意&#xff1a;…

面试官当面夸奖完我后,反手把我挂了...只能说这套路太..

最近几个朋友找我聊天&#xff0c;给我讲述了面试过程中遇到的一些不太理解的事情。作为一个技术面试官&#xff0c;今天来分享 9 个面试相关的套路。 1.自我介绍 自我介绍是一个重要的开始&#xff0c;好的开始是成功的一半。不需要太多花里胡哨的东西&#xff0c;简单、清楚…

超详细:阿里云服务器地域和可用区选择方法

阿里云服务器地域和可用区怎么选择&#xff1f;地域是指云服务器所在物理数据中心的位置&#xff0c;地域选择就近选择&#xff0c;访客距离地域所在城市越近网络延迟越低&#xff0c;速度就越快&#xff1b;可用区是指同一个地域下&#xff0c;网络和电力相互独立的区域&#…

文件行读写

#include<stdio.h> #include<stdlib.h> #include<string.h> int main01() {FILE* fpfopen("D:/a.txt","r");//打开文件 if(fpNULL) printf("打开文件失败\n");char* p(char*)malloc(sizeof(char)*100);memset(p,0,100);fge…

架构课学习笔记:职业成长

架构师没有明确的定义&#xff0c;郭老师提出具备的能力&#xff1a;就是为一个复杂系统设计软件的能力&#xff0c;以及引导研发团队实施的能力。从5个 阶段来看对应的能力维度&#xff1a;结构化设计、解决横向问题、解决跨领域冲突、正确的技术决策和创造生存优势。 一结构…

树结构 根据关键字过滤

案例&#xff1a; 默认 过滤之后 直接看代码&#xff1a; <divclass"grid-content bg-purple"style"background-color: #fff"><p>单位列表</p><!-- defaultProps :这个里面的字段要与后端返回过来的字段一致 --><el-inputplac…

C++笔记之sizeof()判断对象所占内存空间的大小以及字符数组的长度

C笔记之sizeof()判断对象所占内存空间的大小以及字符数组的长度 code review! 文章目录 C笔记之sizeof()判断对象所占内存空间的大小以及字符数组的长度1.C笔记之sizeof()判断对象所占内存空间的大小2.C笔记之sizeof()判断数组的长度3.C笔记之strlen在字符数组中的使用 1.C笔…

《动手学深度学习》——多层感知机

参考资料&#xff1a; 《动手学深度学习》 4.1 多层感知机 4.1.1 隐藏层 隐藏层 激活函数能够模拟任何连续函数。 4.1.2 激活函数 4.1.2.1 ReLu函数 ReLU ⁡ ( x ) max ⁡ ( x , 0 ) \operatorname{ReLU}(x) \max(x, 0) ReLU(x)max(x,0) 当输入为负时&#xff0c;ReLU …

Python爬虫-求是网

前言 本文是该专栏的第2篇,后面会持续分享python爬虫案例干货,记得关注。 地址:aHR0cDovL3NlYXJjaC5xc3RoZW9yeS5jbi9xaXVzaGkvP2tleXdvcmQ9 需求:根据搜索关键词,爬取对应关键词下的全部文章信息 废话不多说,跟着笔者直接往下看详细内容。(附带完整代码) 正文 1. 请…