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

Springboot:自定义过滤器

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

目录

一、FilterRegistrationBean

二、FilterRegistrationBean妙用

1. 动态注册过滤器

2. 设置过滤器的顺序

3. 添加初始化参数

4. 指定 URL 模式

5. 控制过滤器是否为异步执行

6. 细粒度控制 

总结


提示:以下是本篇文章正文内容,下面案例可供参考

一、FilterRegistrationBean

FilterRegistrationBean 是 Spring Framework 中用于注册 Filter 的一种机制,尤其在 Spring Boot 应用中非常常见。它允许你在不修改任何配置文件的情况下动态地注册 Filter,并且提供了更多的控制选项,比如设置过滤器的初始化参数、URL 模式、过滤器的顺序等

二、FilterRegistrationBean妙用

1. 动态注册过滤器

在 Spring Boot 中,你可以直接在配置类中定义一个 FilterRegistrationBean 的 Bean,这样就可以在运行时动态注册过滤器,而无需在 XML 配置文件中进行配置

代码示例:

@Configuration
public class FilterConfig {@Beanpublic FilterRegistrationBean xssFilterRegistration() {FilterRegistrationBean registration = new FilterRegistrationBean();registration.setDispatcherTypes(DispatcherType.REQUEST);registration.setFilter(new XssFilter());registration.addUrlPatterns("/*");registration.setName("xssFilter");registration.setOrder(Integer.MAX_VALUE);return registration;}
}

2. 设置过滤器的顺序

你可以通过设置 order 属性来控制过滤器的执行顺序,这对于依赖于其他过滤器的逻辑特别有用

3. 添加初始化参数

可以通过 addInitParameter 方法向过滤器添加初始化参数,这些参数通常用于配置过滤器的行为

4. 指定 URL 模式

使用 addUrlPatterns 方法可以指定过滤器应用到哪些 URL 上,这比在 Web.xml 文件中配置 <url-pattern> 更加灵活 

5. 控制过滤器是否为异步执行

通过 setAsyncSupported 或 setAsyncDispatcher 方法,你可以控制过滤器是否支持异步请求处理

6. 细粒度控制 

FilterRegistrationBean 提供了更多细粒度的控制,如设置是否为 Servlet 请求或错误页面请求执行过滤器等 


总结

每天进步一点点!

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Java整理12
  • 独孤思维:减肥就跟赚钱一样痛苦
  • STM32自定义协议串口接收解析指令程序
  • Python爬虫技术 第08节 Cookies和Session
  • Linux用户和权限
  • 《Techporters架构搭建》-Day03 功能权限设计
  • 【Ubuntu】Ubuntu 配置镜像源(ARM)
  • Mojo编程语言
  • DATEDIFF()- Date Functions-SQL函数
  • Spring Boot 注解 @PostConstruct 介绍
  • 二百四十五、海豚调度器——用DolphinScheduler调度执行复杂的HiveSQL(HQL包含多种海豚无法正确识别的符号)
  • Python药物副作用生物图分析算法和矩阵降维算法
  • 2022.11.17 阿里钉钉数据开发岗位一面
  • PyEcharts知识点详解(每张图都有!)(巨详细!!)
  • BGP路由反射器
  • CNN 在图像分割中的简史:从 R-CNN 到 Mask R-CNN
  • CSS实用技巧
  • JavaScript 一些 DOM 的知识点
  • JavaScript函数式编程(一)
  • Java教程_软件开发基础
  • Linux后台研发超实用命令总结
  • vue和cordova项目整合打包,并实现vue调用android的相机的demo
  • 仿天猫超市收藏抛物线动画工具库
  • 构造函数(constructor)与原型链(prototype)关系
  • 和 || 运算
  • 缓存与缓冲
  • 基于Javascript, Springboot的管理系统报表查询页面代码设计
  • 基于OpenResty的Lua Web框架lor0.0.2预览版发布
  • 漂亮刷新控件-iOS
  • 数据仓库的几种建模方法
  • 消息队列系列二(IOT中消息队列的应用)
  • 正则表达式
  • 【云吞铺子】性能抖动剖析(二)
  • PostgreSQL之连接数修改
  • 哈罗单车融资几十亿元,蚂蚁金服与春华资本加持 ...
  • ​zookeeper集群配置与启动
  • ###51单片机学习(2)-----如何通过C语言运用延时函数设计LED流水灯
  • #我与Java虚拟机的故事#连载05:Java虚拟机的修炼之道
  • #我与Java虚拟机的故事#连载06:收获颇多的经典之作
  • (11)MSP430F5529 定时器B
  • (C语言)深入理解指针2之野指针与传值与传址与assert断言
  • (delphi11最新学习资料) Object Pascal 学习笔记---第13章第6节 (嵌套的Finally代码块)
  • (poj1.3.2)1791(构造法模拟)
  • (ZT)一个美国文科博士的YardLife
  • (二) 初入MySQL 【数据库管理】
  • (附源码)springboot家庭装修管理系统 毕业设计 613205
  • (附源码)ssm基于jsp高校选课系统 毕业设计 291627
  • (附源码)基于ssm的模具配件账单管理系统 毕业设计 081848
  • (转)linux 命令大全
  • .NET 4.0网络开发入门之旅-- 我在“网” 中央(下)
  • .net core 控制台应用程序读取配置文件app.config
  • .net on S60 ---- Net60 1.1发布 支持VS2008以及新的特性
  • .Net小白的大学四年,内含面经
  • .stream().map与.stream().flatMap的使用
  • /deep/和 >>>以及 ::v-deep 三者的区别