Web.xmlの文字コードフィルタ
3196 ワード
文字符号化フィルタ、ブロッキングは上から下へ実行され、最初にutf-8として符号化されることを指定します。
コードは次のとおりです.
<filter>
<filter-name>encodingFilterfilter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilterfilter-class>
<init-param>
<param-name>encodingparam-name>
<param-value>UTF-8param-value>
init-param>
<init-param>
<param-name>forceEncodingparam-name>
<param-value>trueparam-value>
init-param>
filter>
これは指定符号化方式です。
CharacterEncodingFilterこのフィルタにはencodingとforceRequestEncodingの2つの変数があり、forceRequestEncodingのデフォルトはfalseであり、彼のブロック方法を見てみましょう。
protected void doFilterInternal(
HttpServletRequest request, HttpServletResponse response, FilterChain filterChain)
throws ServletException, IOException {
String encoding = getEncoding();
if (encoding != null) {
if (isForceRequestEncoding() || request.getCharacterEncoding() == null) {
request.setCharacterEncoding(encoding);
}
if (isForceResponseEncoding()) {
response.setCharacterEncoding(encoding);
}
}
filterChain.doFilter(request, response);
}