新手学习Web编程的时候大多数都是使用Tomcat作为服务器,其中面临的一个最主要的问题就是中文乱码问题。JAVA阵营的工具不如.NET阵营那样容易使用,我们必须手动的做一些修改才能让Web页面支持中文。幸运的是,Tomcat发展到今天的5.5版本,对于非英文的支持已经相当不错了,你只需做很少的很简单的修改就可以让网页支持中文,下面我们就来看一看该如何做修改。
首先,对于所有的页面应该指定为GBK编码,也就是包含如下指令:
<%@ page contentType="text/html;charset=GBK" language="java" %>
第二步,修改Tomcat目录下的web.xml文件,在我电脑上的路径为C:/Program Files/Apache Software Foundation/Tomcat 5.5/conf/server.xml。在这个文件里有一个Connector节点,为其增加一个属性URIEncoding属性,并为该属性赋值为GBK,修改结果如下:










注意最后一行,也就是与众不同的绿色的那一行,是需要我们手动添加的。
第三步,添加一个Filter用于转码。
对于Filter该怎么写,完全不用你操心,Tomcat自带一个非常完美的例子,你只需要把该例子的代码原封不动的copy到你自己的类里面就OK了,简单吧!!!
在我的系统中,该例子位于C:/Program Files/Apache Software Foundation/Tomcat 5.5/webapps/servlets-examples/WEB-INF/classes/filters/SetCharacterEncodingFilter.java。
方便起见,我把该类的代码贴出来,并将其英文注释进行简单的汉化,你使用的时候复制我的代码也是一样有效:











































































最后一步,修改你的Web应用程序的配置文件,将这个Filter添加进去。找到你自己的Web项目的Web.xml文件(注意啊,不是Tomcat中的Web.xml文件),为Webapp节点增加2个子节点:














上面第一处绿色字体,需要注意的是,要写对完整的包路径。比如,我将上述代码命名为SetCharacterEncodingFilter类,并且打包为hello,因此我就写成上述样子。这里需要根据你的实际情况进行修改。第二处绿色字体,终于看到了我们期待已久的GBK!!!!!!!
是的,你只需要在此填写一个GBK,它就按照GBK进行转码了,就是这么简单。
至此,已经能够完美解决中文问题,赶快去试试吧。