本文主要是介绍解决Sping Mvc中post、get请求中文乱码问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
前言
- 无论是提交表单,还是利用URL穿参时,只要参数中有中文,若果在程序中不做相应的处理的话,我们在java后台接收参数时就会出现中文乱码问题。
解决post请求乱码问题
- 在web.xml中配置Sping的
CharacterEncodingFilter
,这是个过滤器,可以解决post请求乱码问题。
<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>
解决get请求乱码问题
我们知道,一般的表单提交都用post方式,但是若向后台仅仅传递一两个参数时,我们经常讲参数拼接在URL中,例如
http://localhost:8080/springmvc02/stu/queryJson?girl="妹纸"
- 当我们后台接收的时候若用
String girl=request.getParameter("girl")
这个方式来接收girl这个参数,那么这时候就会出现乱码,效果如下。
解决方法
第一种:将girl转成字节,然后转码。
String enCodeGirl=new String(girl.getBytes("ISO-8859-1"),"UTF-8");
第二种
在tomcat的server.xml中指定一下编码格式
<Connector port="8080" protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443" URIEncoding="UTF-8"/>
小结
- 第一种方式小编不推荐,因为这种方式在整个过程中是经过编码两次和解码两次,有点耗费性能,并且所有的参数传递都要进行相应的硬解码操作,而在tomcat中配置一下小编推荐,而且这种方式使一劳永逸啊。
这篇关于解决Sping Mvc中post、get请求中文乱码问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!