springMVC中乱码分为两种情况,分别是get提交方式和post提交方式。
1.post方式提交乱码解决
spring MVC框架提供了org.springframework.web.filter.CharacterEncodingFilter用于解决POST方式造成的中文乱码问题,具体配置如下
在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>
注意:jsp文档中采用 <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>标签后,实际上底层是采用post方式提交(见下图)。
2.get方式提交乱码解决
tomcat7之前:
需要修改 Tomcat根式目录的 conf/server.xml文件中,找<Connector port="8080" />,在里面加<Connector port="8080" uRIEncoding="utf-8" />
tomcat8之后:
tomcat8之后URLEncoding默认编码格式是UTF-8,所以不需要修改配置文件。