[求助]tomcat,web.xml,<error-page>,乱码

cleanearth
07-09-05 2 747

应用服务器为tomcat-6.0.13
我在项目的web.xml中写了如下的error-page代码:
<error-page>
<error-code>404</error-code>
<location>/common/error.jsp</location>
</error-page>

我这个项目全部jsp文件采用utf-8编码,以下为error.jsp中的几句编码指示语句:
<%@ page language="java" pageEncoding="UTF-8"%>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

假设我的项目地址为
http://localhost:8080/project

同时假设项目下有a.jsp,b.jsp,而没有c.jsp

当我访问地址:http://localhost:8080/project/c.jsp时,
就会显示error.jsp页面,但此时显示的页面中的中文全部为乱码

而当我直接访问地址:http://localhost:8080/project/common/error.jsp时,
却能正常显示其中的中文

所以,在此请各路高手帮忙解,在此先谢过

maxercn
2007-09-08 15:28

如果你的程序涉及到uri傳值的話,那必須設定tomcat的encoding。

以下是我在網上找的,

打开tomcat的server.xml文件,找到区块,加入如下一行:
URIEncoding=”GBK”
完整的应如下:


在server.xml修改2个地方

<Connector port="8080"

maxThreads="150" minSpareThreads="25" maxSpareThreads="75"

enableLookups="false" redirectPort="8443" acceptCount="100"

debug="0" connectionTimeout="20000"

disableUploadTimeout="true" URIEncoding=’GBK’/>

<Connector className="org.apache.coyote.tomcat5.CoyoteConnector"

port="8009" minProcessors="5" maxProcessors="75"

enableLookups="true" redirectPort="8443"

acceptCount="10" debug="0" connectionTimeout="0"

useURIValidationHack="false" protocol="AJP/1.3"

protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler"

URIEncoding=’GBK’/>

cleanearth
2007-09-10 11:33

这里没有涉及到uri傳值的问题吧

当我访问一个不存在的地址时,tomcat会自动调用error.jsp