日期:2014-05-16  浏览次数:20897 次

Apache2.2和Tomcat5.0的整合(二)中文路径问题的另一个解决办法

在"Apache2.2和Tomcat5.0的整合(二)—解决REDIRECT_URL的中文路径问题"(http://www.iteye.com/topic/105363)中提到

---------------------------

通过mod_jk整合Apache和Tomcat,在Servlet中可以通过request.getAttribute("REDIRECT_URL")获得Apache自定义错误处理的原始URL。不幸的是,如果这个REDIRECT_URL包含中文路径,我们获得的将是乱码。例如:请求不存在的页面http://localhost/rp/数字故宫/hh.html, 返回结果为:/rp/æ?°å­?æ??宫/hh.html

---------------------------------

为此需要修改mod_jk源代码来解决,比较麻烦。

?

今天调试服务器刚好也碰到传递URL中文参数导致的中文乱码问题,尝试修改Jboss(Tomcat)的配置解决了这个问题,我想对于中文路径应该也有效。 具体操作是修改{jboss目录}/server/default/deploy/jboss-web.deployer/server.xml中的

 <Connector port="8009" address="${jboss.bind.address}" protocol="AJP/1.3" emptySessionPath="true" enableLookups="false" redirectPort="8443" />

?

修改为

 <Connector port="8009" address="${jboss.bind.address}" protocol="AJP/1.3" emptySessionPath="true" enableLookups="false" redirectPort="443" URIEncoding="UTF-8" />

?

增加了URIEncoding="UTF-8" 如果低版本应该是{jboss目录}/server/default/deploy/xmljbossweb-tomcat55.sar/server.xml

?

1 楼 gembler 2008-12-12  
在Connector里的URIEncoding="UTF-8",这连火星人都知道了,怎么不说说你是怎样修改mod_jk源代码呢?

还有,你的帖子标题是:“Apache2.2和Tomcat5.0的整合(二)....”,怎么不见“(一)”呢?
2 楼 wewi 2008-12-14  
看清原文,Apache2.2和Tomcat5.0的整合(二)是其他人写得,上面有链接。
我只不过对其中的内容讨论,并给出其他解决办法。