配置字符编码过滤器
解决SpringMVC框架中POST请求提交中文会乱码的问题
SpringMVC框架默认使用的编码都是ISO-8859-1
,这种编码是不支持中文的!
如果要使得每个请求提交的数据都使用utf-8
编码,是不可以使用拦截器来实现的,因为拦截器在DispatcherServlet
之后才会被执行,而DispatcherServlet
在接收请求参数时已经按照默认编码进行处理了,后续再声明接收请求参数的编码,是没有任何意义的!所以,解决这个问题,只能通过过滤器来解决!
在SpringMVC框架中,本身就提供了CharacterEncodingFilter
的过滤器类!所以,只需要在web.xml中配置应用这个过滤器,并配置它使用的字符编码即可:
<!-- 配置字符编码过滤器 -->
<filter>
<filter-name>CharacterEncodingFilter</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>
</filter>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>