CharacterEncodingFilter
过滤器,我们只需要在 web.xml
文件中配置即可 post
web.xml
中配置 CharacterEncodingFilter
编码格式要和 JSP
页面的编码格式一致 DispatcherServlet
之前,所以设置好编码后, DispatcherServlet
和 Controller
都可以获取到正确的数据,而拦截器运行在 DispatcherServlet
之后,也即是意味着 DispatcherServlet
获取的数据已经是乱码,那么在拦截器中调整乱码是没有意义的 web.xml
配置 <!-- 配置 CharacterEncodingFilter解决中文乱码问题--> <filter> <filter-name>CharacterEncodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <!-- 配置编码格式为UTF-8 --> <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>
CharacterEncodingFilter
,但是这个只会针对 POST
请求才会起作用,如果我们在使用 GET
请求的时候携带的参数有中文的话,那么服务器接收的时候就会产生中文乱码。 Tomcat
的 server.xml
文件中的内容参数即可,如下:
<connector connectionTimeout="20000"......>
在这个最后加上 URIEncoding="UTF-8"
即可 <?xml version="1.0" encoding="UTF-8"?> <web-appxmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5"> <display-name>Springmvc</display-name> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <!-- 配置前端控制器DispatcherServlet --> <servlet> <servlet-name>DispatcherServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!-- 配置springMVC配置文件的路径,这里如果想要使用默认的可以不用配置 --> <init-param> <param-name>contextConfigLocation</param-name> <!-- classpath表示根路径,这里找的项目根路径下的applicationContext.xml --> <param-value>classpath:spring-*.xml</param-value> </init-param> <!-- 当tomcat启动的时候就加载,设置启动的优先级 --> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>DispatcherServlet</servlet-name> <!-- 配置分发规则,这个是用来控制所有的请求,只要是请求后缀为.do的都会拦截分发 --> <url-pattern>*.do</url-pattern> </servlet-mapping> <!-- 配置 CharacterEncodingFilter解决中文乱码问题--> <filter> <filter-name>CharacterEncodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <!-- 配置编码格式为UTF-8 --> <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> </web-app>