Servlet之过滤器

article/2025/10/15 9:05:27
  • 问题引入

以往的Servlet中,有冗余代码,多个servlet都要进行编写

  • 概念

过滤器(Filter)是处于客户端于服务器资源之间的一道技术。

图示:

  • 过滤器的作用
  • 执行地位在Servlet之前,客户端发送请求时,会先经过Filter,在到达目标Servlet。响应时,会根据执行流程再次反向执行Filter
  • 可以解决多个Servlet共性代码的冗余问题
  • 编写过滤器

Servlet API中提供了一个Filter接口,只要实现这个接口即可,实现这个接口的类就时过滤器

  • 实现过程
  • 编写java类实现Filter接口
  • 在doFilter方法中编写拦截逻辑
  • 设置拦截路径
@WebFilter(value = "/xxx")//拦截路径
public class MyFilter implements Filter {@Overridepublic void init(FilterConfig filterConfig) throws ServletException {}@Overridepublic void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {System.out.println("拦截逻辑   Throwanexception");//让请求继续filterChain.doFilter( servletRequest,servletResponse );//让请求往下传递}@Overridepublic void destroy() {}
}

过滤器配置的两种方式

  • 注解配置

在自定义的Filter类上使用注解@WebFilter(value="/过滤目标资源")   

  • xml配置

在web.xml中配置

    <filter>
<!--        名称--><filter-name>ThrowanexceptionS</filter-name>
<!--        过滤类全称--><filter-class>S.M.fileter.MyFilter</filter-class></filter>
<!--    映射路径配置--><filter-mapping>
<!--        名称--><filter-name>ThrowanexceptionS</filter-name>
<!--        过滤器的url匹配规则和Servlet类--><url-pattern>/*</url-pattern></filter-mapping>
  • 过滤器链

客户端向服务器请求后,服务器调用Servlet之前回执行一组过滤器,这组过滤器就叫做过滤器链

每一个过滤器实现某个特定的功能,当第一个Filter的doFilter方法被调用时,web服务器会创建一个代表Filter链的FilterChain对象传递给此方法,在doFilter方法中,如果调用FilterChain对象中的doFilter方法,web服务器会检查FilterChain对象中是否还有filter。有调用第二个Filter,没有调用目标资源

  • 过滤器优先级 

Web应用中,可以有多个Filter,这些Filter组合起来就是Filter链

优先级:

  • 如果是注解的话,按照类全名称的字符串顺序决定作用顺序
  • 是web.xml,按照filter.mapping注册顺序,从上往下
  • web.xml配置高于注解配置
  • 注解和web.xml同时配置,会创建多个过滤器对象,造成过滤多次的现象
  • 配置拦截路径的三种方式
  • 精确拦截:如:/index.jsp        /myservlet
  • 后缀拦截:*.jsp、*.html、*.jpg
  • 通配符拦截/*:表示拦截所有

http://chatgpt.dhexx.cn/article/lf2QOZDa.shtml

相关文章

servlet过滤器的介绍

servlet过滤器是服务器与客户端请求与响应的中间层组件&#xff0c;它主要是用于对浏览器的请求进行过滤处理&#xff0c;并将过滤后的请求再转给下一个资源。 servlet过滤器的基本概念 Servlet过滤器从字面上的字意理解为经过一层次的过滤处理才达到使用的要求&#xff0c;而…

Servlet——过滤器(fiter)

什么是过滤器&#xff1f; 过滤器是Servlet的一个组件&#xff0c;是设计模式中过滤器模式&#xff08;又叫责任链模式&#xff09;的一种经典实现 是Servlet技术中最激动人心的技术&#xff0c;WEB开发人员通过Filter技术&#xff0c;对web服务器管理的所有web资源&#xff…

java基础篇---Servlet过滤器

Servlet过滤器从字面上的字意理解为景观一层次的过滤处理才达到使用的要求&#xff0c;而其实Servlet过滤器就是服务器与客户端请求与响应的中间层组件&#xff0c;在实际项目开发中Servlet过滤器主要用于对浏览器的请求进行过滤处理&#xff0c;将过滤后的请求再转给下一个资源…

mac下idea卡顿问题解决

一、背景 mac下idea卡顿 二、原因 赋予idea的内存太小了&#xff0c;需要给他更大的内存 三、解决方法 1、修改idea.vmoptions 配置文件。 help --Edit Custom VM Options 2、修改文件 这是我修改之前的&#xff1a; -Xms128m -Xmx750m -XX:ReservedCodeCacheSize512m…

macOS看视频卡顿如何修复

很多时候我们都会遇到这样一个问题&#xff1a;明明电脑很新&#xff0c;处理器内存什么的也都不差&#xff0c;但看在线视频就是卡&#xff0c;画面和音频对不上&#xff0c;令人很难受。其实这是Flash播放器开了P2P的原因。今天我就教教大家macOS看视频卡顿如何修复。 先打开…

MAC 外接键盘卡顿处理

系统偏好设置-> 键盘。 1&#xff1a;将『按键重复』调到快&#xff0c;将『重复前延迟』调到段&#xff0c;点击『更改键盘类型』,并且按照提示一步步让电脑识别键盘。 2 &#xff1a;切换『文本』&#xff0c;去勾『触控栏键入建议』&#xff0c;可以起到调优作用。

MAC如何解决idea卡顿问题

故事是这样的 我的mac配置也不是很高&#xff0c;内存大概是这样的 但是刚下载完idea后&#xff0c;简直比我之前2000块的windows本都卡。偶买噶&#xff0c;差点想直接退货。 好在控制住脾气&#xff0c;然后冷静思考后觉得&#xff0c;不该呀&#xff0c;好歹那么贵&#x…

matlab java mac_Matlab for mac卡顿、抛Java异常

在苹果上使用Matlab后&#xff0c;试用了几个版本后都十分卡顿&#xff0c;后来抛出了Java.lang.OutOfMemoryError. 后查阅资料认为可能是Matlab JVM内存不够的问题。官方给出的解决方案如下&#xff0c;将JVM内存设置到最大后&#xff0c;情况有所缓解。有时候仍然有些卡 但是…

解决 Macbook 连接蓝牙鼠标卡顿问题

作者&#xff1a;吴业亮 博客&#xff1a;wuyeliang.blog.csdn.net 2.4Ghz的蓝牙与2.4Ghz的Wi-Fi起冲突&#xff0c;环境干扰大。会造成蓝牙鼠标卡顿具体解决办法如下&#xff1a; 打开“系统偏好设置”——“网络”&#xff0c;然后选择更多这里&#xff08;如图&#xff09…

优化不必要的动画,以减少Mac卡顿

本文通过两种方式来减少Mac的动画&#xff0c;友情提示&#xff1b;常重启有助于保持Mac系统正常运转。 条件允许的情况下&#xff0c;安装旧版本Mac系统、减少运行不必要的软件能优化Mac运行速度。 一、系统设置 打开系统偏好设置——>辅助功能 勾选 “减弱动态效果” …

终极方案——解决MacBook/Mac mini连接无线鼠标卡顿、漂移

终极方案——解决MacBook/Mac mini连接无线鼠标卡顿、漂移 Intel处理器机器/旧版Mac系统Apple M系列新机器 Intel处理器机器/旧版Mac系统 找到如图设置&#xff0c;修改网络首选项顺序 Apple M系列新机器 1、在系统设置里新建一个管理员用户 2、在访达-前往-电脑-磁盘-找到新建…

m1 MacBook Pro pycharm打字卡顿问题解决

一般m1芯片的MacBook Pro在pycharm中打字卡顿无非两种情况导致的&#xff0c;一种是分配给pycharm编辑器的内存太小&#xff1b;另一种是下载的版本与m1芯片版本不一致&#xff0c;不兼容导致的卡顿&#xff0c;下面文章详细记录了解决这两种情况的方法。 一、内存不足导致的卡…

Macbook Pro 鼠标卡顿问题

Macbook Pro 鼠标卡顿问题 目前无解&#xff0c;只能改善。该问题最早能追溯到 2015年。 https://jingyan.baidu.com/article/ff42efa93632c5c19e220208.html 原因 据说是无线频段冲突。 罗技低于400 的鼠标就别看了&#xff0c;白花钱。 鼠标在 macbook pro 的卡顿现象主要表现…

解决 Macbook 连接蓝牙鼠标卡顿、飘的现象

原因&#xff1a; 1. 鼠标蓝牙缺陷&#xff0c;蓝牙版本低&#xff0c;电池电量低&#xff1b; 2. 电脑性能卡顿和功能优先度&#xff1b; 3. 2.4Ghz的蓝牙与2.4Ghz的Wi-Fi起冲突&#xff0c;环境干扰大。 这里以解决2和3的问题。 打开“系统偏好设置”——“网络”&#…

Mac卡顿问题处理

导读 1.文件清理 2.网络卡顿问题 文件清理 网络卡顿问题

苹果电脑mac系统运行卡顿 反应慢怎么办?

Mac电脑以生产力著称&#xff0c;卡顿几乎很少发生。但是随着日常的使用&#xff0c;系统空间越来越多&#xff0c;随之而来的问题就是存储空间不足&#xff0c;无法保存文件。如果mac同时运行的软件过多&#xff0c;也会造成卡顿&#xff0c;所以mac电脑并不是不会卡顿&#x…

mac电脑运行很卡不流畅,如何给mac提速?

是不是发现你的 Mac 越用越慢&#xff1f;没错&#xff0c;任何电子设备&#xff0c;随着使用时间的增加&#xff0c;都会出现不如刚买时那么流畅的问题。论其究竟&#xff0c;除了硬件随着时间的损耗&#xff0c;其实还有一部分原因是日常留下的“使用痕迹”和自启动的应用程序…

MacBook苹果笔记本电脑卡顿怎么解决?

MacBook使用时间久了之后很容易出现卡顿的问题。那么出现卡顿的原因有哪些呢&#xff1f;MacBook卡顿怎么处理呢&#xff1f;下面为大家介绍几种可能的解决方案。虽然mac系统相对来说比较稳定&#xff0c;但遇到软件崩溃的情况也会突然卡顿而无法使用。那么&#xff0c;遇上mac…

苹果mac卡顿怎么解决呢?轻松几招让你Mac流畅如新

Mac电脑使用一段时间后就会偶尔发生卡顿的现象&#xff0c;苹果mac卡顿怎么解决呢&#xff1f;这里macw小编为大家带来轻松几招让你Mac流畅如新的方法&#xff0c;一起来看看吧&#xff01;Mac电脑为什么会出现卡顿现象&#xff1f; 因为程序在运行中&#xff0c;所占用资源过高…

为什么mac会卡顿,mac电脑卡顿怎么解决

在正常的运行下&#xff0c;mac系统相对来说是比较流畅的&#xff0c;不容易出现卡顿的现象。如果出现mac卡顿的话&#xff0c;可能是外部环境或应用程序问题引起的。接下来&#xff0c;一起来详细了解下为什么mac会卡顿&#xff0c;mac电脑卡顿怎么解决的相关问题吧。 一、为…