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的配置文件,修改過的代碼又還原回去了。

   最后在下圖的位置修改的配置文件,啟動之后,就可以了。



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM