Tomcat5的中文參數編碼問題解決方案

我們在使用Tomcat應用服務器時,爲了更好的支持URL地址中的中文參數問題,我們需要做如下的配置來確保應用程序接受到參數不亂碼。比如我的系統採用了UTF-8的編碼方式,那麼如果直接傳遞中文參數,需要在tomcat進行如下設置:

1.如果單使用tomcat,不整合apache
我們需要修改server.xml文件的如下行:
    <Connector port="8080" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="UTF-8"/>

注意URIEncoding="UTF-8"的部分,即將URI的編碼設置爲“UTF-8“,這樣就不會有問題了;


2.整合tomcat和apache後的設置
剛開始我沒有整合的時候傳遞的中文參數可以很好的解決,後來整合apache後,卻出現亂碼了,繞過apache後是正常的,所以問題出現在apache或apache和tomcat的通信上,經過baidu,好不容易找到答案。修改server.xml文件中的如下行:
    <Connector port="8009"
enableLookups="false" redirectPort="8443" protocol="AJP/1.3" URIEncoding="UTF-8" />

這出現apache和tomcat的通信上,由於我這裏的整合是採用JK,tomcat使用的是ajp13協議,所以,需要在他們的通信階段來處理編碼,即代碼中的URIEncoding="UTF-8"部分。


以上是我在處理tomcat的中文參數時遇到的問題,記下來以備速查:-)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章