項目用的開發環境為tomcat+eclipse+SSM
正如題目,controller接收前台數據—中文亂碼問題,在頁面編碼為UTF-8的前提下,解決方案有二:
一)
controller接收數據時,將類型強制轉換
- String keyword = new String(request.getParameter("keyword").getBytes("ISO-8859-1"), "utf-8");
二)
查看tomcat的配置文件編碼,tomcat的默認編碼是iso8859-1,而程序的默認編碼為UTF-8,這里出現了沖突,所以修改tomcat下的conf/server.xml文件。
找到如下代碼:
- <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
這段代碼規定了Tomcat監聽HTTP請求的端口號等信息。
修改為如下情況
- <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8" />
小編經驗談:
第一種方法,小編也是使用過的,之前的項目使用的應用服務器為Jboss,是公司統一配置的,所以不存在Jboss配置的問題,使用第一種方法可以解決。
第二種方法,是目前這個項目,應用服務器為tomcat,用的是自己的。遇到問題的時候,首先想到的是第一種方法,確實也是這么解決的。在本地是解決了,但是代碼提交之后,在服務器上測試,問題並沒有解決,到網上查了一下,才知道是tomcat的問題。
修改tomcat的配置文件時,先是修改的tomcat安裝路徑下的配置文件,重啟項目之后並沒有效果,再次查看tomcat的配置文件,修改過的代碼又還原回去了。
最后在下圖的位置修改的配置文件,啟動之后,就可以了。
