1. 程式人生 > >Spring boot Servlet Web 應用常用的過濾器

Spring boot Servlet Web 應用常用的過濾器

本文對基於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提供
  1. 上表中 sfspringframework的縮寫。
  2. 上表中Spring提供的過濾器都帶有優先順序屬性,並且在新增到ServletContext時,會先增加優先順序高的過濾器。而Tomcat自己提供的Web Socket處理過濾器是在這些過濾器新增之後最後新增的。
  3. 請求處理時先新增的過濾器先被應用。