web容器的Filterr 过滤器

JavaWeb三大组件之一Filter(过滤器) 拦截所有访问web资源的请求或者响应(servlet、Jsp页面、HTML页面),从而实现我们自己的业务逻辑,这些逻辑可以是实现访问权限的控制、过滤敏感词、压缩响应等功能。过滤器是"链接"在容器的处理过程中的,它会在servlet处理器之前访问进入的请求,并且在响应信息返回客服端之前访问这些响应信息。这样就可以动态的修改请求和响应中的内容。创建web项目: 或者像这样建立web项目: 添加Tomcat服务器: 如果没有SmartTomcat,只有Tomcat像下面图片中这样: 则选择Tomcat里面的 阅读详情
*************web容器的Filterr 过滤器 *************


1--web.xml文件中的配置(注意请求名)
filter是在servlet之前被调用的,多个filter配置按照filter-mapping的配置的先后顺序来执行的,如:有两个同请求名的filter以及同请求名的servlet
当客户端发出该请求名的请求时,先调用先配置的filter,再调用后一个filter,最后再调用servlet,如果还有一个和请求名一样的jsp,那么这个就是jsp是在最后被调用
据此,我们可以设计一个简单的IP地址过滤器,根据用户的IP地址进行对网站的访问控制。


2--filter与filter之间的request、response是可以顺延使用的,即第一个filter的request中设置了属性,那么第二个filter中可以获取到的,最后的servlet中也是可以获取到的;
(当然是需要使用过滤器链传递的哦)
3--filter过滤器的三个方法:
有初始化 init()         web容器启动,初始化filter时调用此方法  可以再这里初始化过滤器所使用到的参数或者其他需要的参数,例如:初始化 FilterConfig
过滤处理 doFilter() 对请求进行响应处理 处理之后 可以 调用 过滤器链FilterChain的doFilter(request,response)方法继续调用后面的filter、servlet或者jsp页面
销毁  destroy() 用户释放过滤器占用的资源


4--FilterConfig接口有定义了四个方法,分别可以拿到
getFilterName() 返回web.xml部署文件中定义的该过滤器的名称
getServletContext() 返回调用者所处的servlet上下文 ServletContext 
getInitParameter(java.lang.Stringname) 返回过滤器初始化参数值的字符串形式,当参数不存在时,返回null.name初始化参数名
getInitParameterNames() 以Enumeration形式返回过滤器所有初始化参数名称,如果没有初始化参数,返回为空。


5--创建过滤器步骤:
步骤一:建立一个实现Filter接口的类并实现其三个方法:init、doFilter和destroy

步骤二:doFilter方法中编写过滤行为。其中三个参数分别为ServletRequest、ServletResponse和FilterChain,
前两个可以强转为HttpServletRequest和HttpServletResponse使用,
第三个参数用来激活下一个相关的过滤器。
如果没有另一个过滤器与servlet或JSP页面关联,则servlet或JSP页面被激活。

步骤三:配置web.xml

步骤四:请求测试
Mac用户看过来!M1/M2芯片安装CiteSpace完整指南(从Homebrew到成功运行) 本文为Mac M1/M2芯片用户提供CiteSpace安装的完整指南,从Homebrew安装适配的Java环境到最终成功运行CiteSpace。详细步骤包括环境检查、Java配置、CiteSpace下载与优化,解决常见问题如内存分配、图形渲染和中文显示乱码,确保科研人员能顺利使用这一文献可视化工具。 阅读详情

相关推荐

Cadence PCB SI仿真实战:如何手动添加VIA过孔模型提升板级链路精度

本文详细介绍了在Cadence PCB SI仿真中如何手动添加VIA过孔模型以提升DDR4/5设计的精度。通过参数化建模和三维全波建模技术,工程师可以有效解决高速设计中的信号完整性问题,显著降低仿真误差。文章还提供了实战案例和常见问题解决方案,帮助优化板级链路性能。

weixin_28683391的博客 404

JAVA8——使用 stream().filter()过滤List对象

最近在做毕业设计系统的时候,对于管理员与用户获得数据是不一样的;管理员需要获得全部的角色信息、而用户需要获得非管理员的角色信息。 //查询所有的角色信息 List<SysRole> roles = roleService.selectRoleAll(); //过滤数据 ajax.put("roles", SysUser.isAdmin(userId) ? roles : roles.stream().filter(r ->.

专注Java后端技术干货、项目源码总结分享,期待您的关注。 1711

通义千问语言模型Qwen2.5架构详解

此外,将基于API的模型 Qwen-Plus 与领先的专有和开源模型进行了对比,包括 GPT4-o、Claude-3.5-Sonnet、Llama-3.1-405B和DeepSeek-V2.5。Qwen2.5-Math-72B-Instruct的整体性能超越了Qwen2-Math-72B-Instruct和GPT4-o,甚至是非常小的专业模型如 Qwen2.5-Math-1.5B-Instruct也能在与大型语言模型的竞争中取得高度竞争力的表现。近来也出现了明显的转向小型语言模型(SLMs)的趋势。

搏博的专栏 1万+

java之Servlet

HTTP是一个无状态的协议,当一个客户端向服务端发送请求,在服务器返回响应后,连接就关闭了,在服务端不会保留连接信息。

m0_60027772的博客 5766

VS2022+Qt6保姆级环境配置指南:从插件安装到项目互通全流程

本文提供VS2022与Qt6深度整合的全流程指南,涵盖环境配置、插件安装、项目互通等关键步骤。详细解析编译器版本匹配、跨IDE协作方案及效能优化技巧,帮助开发者高效搭建C++界面设计开发环境,实现软件项目无缝互通。

zero1的博客 732

MODNet模型轻量化实战:从PyTorch到NCNN移动端部署,模型缩小75%性能不减

本文详细介绍了MODNet模型轻量化实战,从PyTorch到NCNN移动端部署的全过程。通过量化压缩和推理优化,模型体积缩小75%的同时保持性能不减,在千元级安卓设备上实现25FPS的实时人像抠图。文章深入解析MODNet架构、PyTorch到ONNX转换的陷阱与解决方案,以及NCNN量化部署的极致优化实践,为移动端实时人像抠图提供了技术突破与工程实现。

weixin_29098117的博客 295

Servlet - Filtering (过滤器))

Servlet - Filtering (过滤器))

qq_34377273的博客 849

热力学仿真软件:SimScale_(1).SimScale入门与基础操作

导航栏:位于页面顶部,包含项目管理、仿真设置、结果分析等主要功能。项目列表:展示用户创建的所有项目。工作区:用于进行具体的操作,如几何建模、网格划分、边界条件设置等。控制台:显示操作日志和仿真进度。网格划分是将几何模型离散化为一系列小单元的过程,这些单元用于求解热力学方程。SimScale提供了多种网格划分方法,包括结构化网格和非结构化网格。SimScale提供了丰富的API接口,用户可以通过编程语言进行二次开发,实现自动化仿真和结果分析。项目管理:创建、删除和管理项目。几何建模:创建、导入和修复几何模型。

kkchenjj的博客 1864

JavaWeb Servlet过滤器概述

Servlet过滤器 1、什么是过滤器 Servlet过滤器具有拦截浏览器端请求的功能,Servlet过滤器可以改变请求中的内容来满足实际开发中的需求。 实质上Servlet过滤器就是在web应用服务器中的一个web应用组件,用于拦截浏览器与目标资源的请求,并对这些请求进行一定的过滤处理在发送给目标资源。 说明:web服务器部署了过滤器以后,不仅浏览器端发送请求会经过过滤器的处理,当发送到目标资源以后,响应时也同样会经过过滤器。 过滤器链: 当一个过滤器不满足实际业务的需求时,可以配置部署多个过滤器进行处

gezongbo的博客 1253

贝叶斯时空模型-INLA-4

该文章中,会简化数学计算的过程,主要是针对,在有数据的基础上,如何应用贝叶斯时空模型,找出影响因素,绘制时间变化的空间分布预测图。上述中关键一步与前几期介绍的不一样的地方是,我们加入了n.group参数,用来指定年份,先看一下Year有多少年的,然后封装在s.index里面。在前述的内容中,我们介绍了,如何处理空间的数据,利用海拔高度预测降雨量的例子。建立好数据及mesh以后,我们现在写INLA公式,如果不考虑残差项,那就是固定效应,现在我们增加残差项,及空间与时间效应。这里的Mesh设定值为10,20。

学习中 2948

MATLAB - ROS 2 工具箱入门教程

ROS 工具箱提供了一个连接 MATLAB® 和 Simulink® 与机器人操作系统(ROS 和 ROS 2)的接口。利用该工具箱,您可以设计 ROS 节点网络,并将 MATLAB 或 Simulink 生成的 ROS 节点与现有的 ROS 网络相结合。工具箱包括 MATLAB 函数和 Simulink 块,可通过记录、导入和回放 rosbag 文件来可视化和分析 ROS 数据。您还可以连接到实时 ROS 网络,访问 ROS 消息。

机器人控制与仿真应用 3068

Servlet过滤器

Servlet过滤器    Servlet过滤器可以转换请求或修改响应。过滤器通常包括记录过滤器、图像过滤器、加密过滤器和多用途Internet邮件扩展(MIME)类型过滤器。    过滤器是一个简单的类,它实现了javax.servlet.Filter接口。1 javax.servlet.Filter接口的实现方法(1)init()方法:在使用doFilter()方法前调用,负责设置Filt

含泪播种的人 882

Python爬虫:招聘网站岗位要求、薪资与求职者数据爬取与分析

通过本文的教程,我们学习了如何通过 Python 编写招聘数据爬虫,爬取招聘网站上的岗位要求、薪资和求职者数据,并通过数据存储、清洗、分析和可视化,获取有价值的信息。网站如智联招聘、猎云网、前程无忧等,都提供了大量的招聘信息,包括岗位要求、薪资范围、工作经验、学位要求、招聘公司等。本文将介绍如何通过 Python 编写爬虫,爬取招聘网站上的岗位要求、薪资、求职者数据,并通过数据存储、分析和可视化等手段,为求职者或招聘者提供实用的信息和决策支持。通过循环抓取多个页面的数据,可以获取不同岗位的信息。

2201_76125261的博客 720

java filter init param_javaweb中的过滤器学习(3)---Filter的部署详细总结

Filter的注册在开发好Filter后(也就是在重写完init()、doFilter()、destroy()方法之后),我们必须要对Filter进行注册,web服务器才可以调用到它。web.xml中注册Filter:FilterDemo02过滤器FilterDemo02me.gacl.web.filter.FilterDemo02配置FilterDemo02过滤器的初始化参数namegacl配置...

weixin_34857730的博客 429

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

在spring boot中使用@WebFilter配置filter(包括排除URL)

@WebFilter(urlPatterns = "/*") @Order(value = 1) public class TestFilter implements Filter { private static final Set ALLOWED_PATHS = Collections.unmodifiableSet(new HashSet<>( Arrays

Aierbude的博客 4万+

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

JavaWeb Filter应用

主页有一个注销功能,因为一个session一般直到关闭浏览器才会结束,所以要注销登录信息,回到未登录的状态。若登录成功,则在session设置属性表明用户已登录,且跳转至主页(sys/success.jsp)最后再加上Filter:若用户处于未登录状态,那么原本访问sys/*的请求就会直接重定向到错误页面。之前的博客提到了Filter可以在访问页面前对请求和响应进行拦截和处理。所以今天实现一个权限控制的应用:只有成功登录的用户可以访问主页。1.Filter应用。

jmqxnxg的博客 187

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

SpringBoot过滤器 (用户登录用例)

@ServletComponentScan 扫描web配置文类 @Slf4j @WebFilter(filterName = "LoginCheckFilter",urlPatterns = "/*") public class LoginCheckFilter implements Filter { // 路径匹配器,支持通配符 public static final AntPathMatcher PATH_MATCHER = new AntPathMatcher(); ..

yg741520yg的博客 1070

servlet过滤器的介绍

简述servlet过滤器

m0_67542258的博客 976

Java Web之过滤器(Filter)

过滤器(Filter) 过滤器实际上就是对web资源进行拦截,做一些处理后再交给下一个过滤器或servlet处理 通常都是用来拦截request进行处理的,也可以对返回的response进行拦截处理 大概流程图如下 应用场景 自动登录 统一设置编码格式 访问权限控制 敏感字符过滤等 创建Filter 在Servl...

Garry 1953

Servlet 过滤器

Servlet 过滤器是 Java Web 应用程序中非常重要的组件,它可以对请求和响应进行拦截和处理。本文将详细介绍 Servlet 过滤器的概念、工作原理、使用场景及实现方式。

m0_73941339的博客 680

Spring 5 Reactive WebClient 添加请求及响应的interceptor

Spring 5 Reactive WebClient 添加请求及响应的interceptor 百度鹰眼返回的数据使用WebClient发送时不知道为什么是text/javascript类型的,所以想在webclient上添加一个拦截器,把response header的content-type修改成application/json。本来以为只是一个 函数调用的事,在stackoverflow上面...

4689

Servlet——过滤器(fiter)

什么是过滤器? 过滤器是Servlet的一个组件,是设计模式中过滤器模式(又叫责任链模式)的一种经典实现 是Servlet技术中最激动人心的技术,WEB开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, 静态图片文件或静态 html 文件等进行拦截,从而实现一些特殊的功能。例如实现URL级别的权限访问控制、过滤敏感词汇、压缩响应信息等一些高级功能————来自某一技术大牛 作用原理如下: 由此可见,过滤器对于每一个WEB开发人员来说都是一项不容错过

qq_52530620的博客 7230

web基础:过滤器

一、概述 过滤器可以拦截请求,并控制响应,对此,servlet一无所知。与servlet非常类似,过滤器就是java组件,请求发送到servlet之前,可以用过滤器截获并处理请求,另外,servlet结束工作之后,在响应发回给客户端之前,可以用过滤器拦截并处理响应。 过滤器可以链接在一起,一个接一个的运行,过滤器并不关心他前面运行了哪些过滤器,也不关系他后边还会运行哪个过滤器。过滤器的运行顺序由web.xml部署文件控制。 二、过滤器的生命周期 过滤器必须实现Filter接口...

sssxlxwbwz的博客 1964

filter(web容器过滤器)

1、过滤器代码,添加了不过滤的链接(FilterTszf.java) package filters; import java.io.IOException; import java.util.Iterator; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet...

幽灵 315
上一篇: 验证码 verifycode 留存可用
下一篇: js文件中的中文提示信息发到jsp中出现乱码解决步骤
南京煜之隆
博客等级 码龄13年 34粉丝 111原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值