把Apache2.2与Tomcat6进行整合之后,当提交带有中文参数的请求时,经常出现奇怪的现象。在直接访问Tomcat时,可以正常返回结果的请求,一旦经过Apache的代理,就出现问题。

通过Debug发现,Tomcat在经过和不经过Apache代理的两种情况下,得到的中文参数是不同的,而后者是乱码。

从网上查了一下资料,发现Apache在使用AJP13模式代理到Tomcat时,也应该为Tomcat的AJP13设定一些参数。

具体说来,应该在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 "   />