把Apache2.2與Tomcat6進行整合之后,當提交帶有中文參數(shù)的請求時,經(jīng)常出現(xiàn)奇怪的現(xiàn)象。在直接訪問Tomcat時,可以正常返回結果的請求,一旦經(jīng)過Apache的代理,就出現(xiàn)問題。

通過Debug發(fā)現(xiàn),Tomcat在經(jīng)過和不經(jīng)過Apache代理的兩種情況下,得到的中文參數(shù)是不同的,而后者是亂碼。

從網(wǎng)上查了一下資料,發(fā)現(xiàn)Apache在使用AJP13模式代理到Tomcat時,也應該為Tomcat的AJP13設定一些參數(shù)。

具體說來,應該在Tomcat的server.xml中設置為:


<Connector port="8085" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443"
               
<!-- 防止中文亂碼 -->
               useBodyEncodingForURI
="true" URIEncoding="UTF8" />
               
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443"
                            
<!-- 防止中文亂碼 -->
                            useBodyEncodingForURI
="true" URIEncoding="UTF8" />