本文对基于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处理过滤器是在这些过滤器添加之后最后添加的。- 请求处理时先添加的过滤器先被应用。

620

被折叠的 条评论
为什么被折叠?



