controller接收前台数据—中文乱码问题

         项目用的开发环境为tomcat+eclipse+SSM

        正如题目,controller接收前台数据—中文乱码问题,在页面编码为UTF-8的前提下,解决方案有二:

一)

        controller接收数据时,将类型强制转换

  1. String keyword = new String(request.getParameter("keyword").getBytes("ISO-8859-1"), "utf-8");  

二)

        查看tomcat的配置文件编码,tomcat的默认编码是iso8859-1,而程序的默认编码为UTF-8,这里出现了冲突,所以修改tomcat下的conf/server.xml文件。

找到如下代码: 

  1. <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />  

这段代码规定了Tomcat监听HTTP请求的端口号等信息。

修改为如下情况

  1. <Connector port="8080"  protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8" />  
重启tomcat就可以啦!

小编经验谈:

        第一种方法,小编也是使用过的,之前的项目使用的应用服务器为Jboss,是公司统一配置的,所以不存在Jboss配置的问题,使用第一种方法可以解决。

        第二种方法,是目前这个项目,应用服务器为tomcat,用的是自己的。遇到问题的时候,首先想到的是第一种方法,确实也是这么解决的。在本地是解决了,但是代码提交之后,在服务器上测试,问题并没有解决,到网上查了一下,才知道是tomcat的问题。

        修改tomcat的配置文件时,先是修改的tomcat安装路径下的配置文件,重启项目之后并没有效果,再次查看tomcat的配置文件,修改过的代码又还原回去了。

   最后在下图的位置修改的配置文件,启动之后,就可以了。


原文地址:https://www.cnblogs.com/jpfss/p/8630758.html