在web.xml文件中设置如下过滤器代码:
<!-- Filter定义 -->
<!-- Character Encoding filter -->
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
该设置可以解决HttpServletRequest和HttpServletResponse的中文编码不匹配的问题。
其中两个参数:
encoding,指定中文编码;
forceEncoding,默认为false,即只设置request的编码request.setCharacterEncoding(this.encoding);
,设置为true,会强制设置response的编码格式response.setCharacterEncoding(this.encoding);