我们一般在做登陆的时候会用到表单的提交,这时如果我们传的参数又中文,有时候会发现到后台接收的时候会出现乱码,那么这是为什么?
原因:我们前端传的参数的编码与后台tomcat服务器解析的方式(理解成解码)不一样
比如我们前端编码用的是UTF-8去传到后台
这时候后台接收就会又问题,为何呢?因为后台服务器默认的解码是ISO8859-1,那么怎么解决呢,很简单,如果我们是post请求的情况下,我们在项目web.xml中配置编码过滤器,而这个就是spring为我们提供的一个过滤器org.springframework.web.filter.CharacterEncodingFilter,我们只要把编码的方式改成UTF-8即可解决
<!-- 编码过滤器 -->
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<async-supported>true</async-supported>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
不过spring这个提供是在post请求的时候,我们要是在get的请求时候也带中文的参数还是会出现乱码,这个时候我们就去根源解决,改变tomcat配置中解码的方式
Ok了,这样页面用utf-8请求的乱码问题就解决了