天天看點

Spring-web源碼解析之Filter-CharacterEncodingFilter

基于4.1.7.RELEASE

在web.xml我們經常看見這麼一段

這裡注冊了一個字元串編碼的Filter,下面我們就來看看CharacterEncodingFilter的源碼,首先看看類圖

Spring-web源碼解析之Filter-CharacterEncodingFilter

CharacterEncodingFilter并不是直接實作Filter接口,而是繼承了OncePerRequestFilter,其作用稍後再講。

CharacterEncodingFilter含有兩個屬性,一個是在web.xml中經常出現的encoding,它指明了用于設定request的encoding的值

另一個是foreceEncoding,預設為false,如果設定為true它就會使encoding屬性強制替換掉request中的encoding值,而不管request擷取的encoding是否為空。

下面看其主要的方法

上面說過encoding是設定request的編碼,而這個方法就是具體實作過程。如果設定了forceEncoding,還會同時将response的預設編碼設定為encoding。

繼續閱讀