版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/andy_zhang2007/article/details/85554030
本文对基于Springboot Web
应用常用的Filter
做了一个总结。
具体使用的
Spring boot
版本为2.1.1
,Servlet
容器缺省为Tomcat 9.0.13
嵌入式版本,Spring Web 5.1.3
。
缺省优先级 | 名称 | 类 | 简介 |
---|---|---|---|
最高优先级 | characterEncodingFilter |
org.sf.boot.web.servlet.filter.OrderedCharacterEncodingFilter |
根据配置参数决定请求/响应是否要使用指定的字符集 |
-10000 | hiddenHttpMethodFilter |
org.sf.boot.web.servlet.filter.OrderedHiddenHttpMethodFilter |
将POST 表单中隐藏参数_method 的值设置为请求的HTTP method |
-9900 | formContentFilter |
org.sf.boot.web.servlet.filter.OrderedFormContentFilter |
获取表单参数将其作为Servlet 请求参数 |
-105 | requestContextFilter |
org.sf.boot.web.servlet.filter.OrderedRequestContextFilter |
将请求对象和请求的locale 绑定到当前请求处理线程 |
-100 | springSecurityFilterChain |
org.sf.boot.web.servlet.DelegatingFilterProxyRegistrationBean$1 |
Spring Security 安全过滤器链的代理,也被封装为一个Filter |
过滤器链最后一个 | Tomcat WebSocket (JSR356) Filter |
org.apache.tomcat.websocket.server.WsFilter |
Tomcat Servlet 容器针对Web Socket 处理的过滤器,仅在使用Tomcat Servlet 容器时才被使用该过滤器其实由 Tomcat 提供,而不是由Spring 提供 |
- 上表中
sf
是springframework
的缩写。- 上表中
Spring
提供的过滤器都带有优先级属性,并且在添加到ServletContext
时,会先增加优先级高的过滤器。而Tomcat
自己提供的Web Socket
处理过滤器是在这些过滤器添加之后最后添加的。- 请求处理时先添加的过滤器先被应用。