Web.xmlの文字コードフィルタ


文字符号化フィルタ、ブロッキングは上から下へ実行され、最初に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);
}

encodeingが空でない場合、設定要求urlはutf-8である.パラメータの値はweb.xmlでUTF-8を設定します。