Tomcat5.5中文乱码完美解决方案.doc_第1页
Tomcat5.5中文乱码完美解决方案.doc_第2页
Tomcat5.5中文乱码完美解决方案.doc_第3页
Tomcat5.5中文乱码完美解决方案.doc_第4页
Tomcat5.5中文乱码完美解决方案.doc_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

新手学习Web编程的时候大多数都是使用Tomcat作为服务器,其中面临的一个最主要的问题就是中文乱码问题。JAVA阵营的工具不如.NET阵营那样容易使用,我们必须手动的做一些修改才能让Web页面支持中文。幸运的是,Tomcat发展到今天的5.5版本,对于非英文的支持已经相当不错了,你只需做很少的很简单的修改就可以让网页支持中文,下面我们就来看一看该如何做修改。 首先,对于所有的页面应该指定为GBK编码,也就是包含如下指令: 第二步,修改Tomcat目录下的web.xml文件,在我电脑上的路径为C:Program FilesApache Software FoundationTomcat 5.5confserver.xml。在这个文件里有一个Connector节点,为其增加一个属性URIEncoding属性,并为该属性赋值为GBK,修改结果如下: 注意最后一行,也就是与众不同的绿色的那一行,是需要我们手动添加的。 第三步,添加一个Filter用于转码。 对于Filter该怎么写,完全不用你操心,Tomcat自带一个非常完美的例子,你只需要把该例子的代码原封不动的copy到你自己的类里面就OK了,简单吧!在我的系统中,该例子位于C:Program FilesApache Software FoundationTomcat 5.5webappsservlets-examplesWEB-INFclassesfiltersSetCharacterEncodingFilter.java。方便起见,我把该类的代码贴出来,并将其英文注释进行简单的汉化,你使用的时候复制我的代码也是一样有效: importjava.io.IOException;importjavax.servlet.Filter;importjavax.servlet.FilterChain;importjavax.servlet.FilterConfig;importjavax.servlet.ServletException;importjavax.servlet.ServletRequest;importjavax.servlet.ServletResponse;importjavax.servlet.UnavailableException;publicclassSetCharacterEncodingFilterimplementsFilter./你需要转换的编码,对于我们,当然希望他的值为”GBK”了/不过不用你操心,后面会对其进行设置protectedStringencoding=null;/配置文件,根据web.xml中的配置内容自动初始化,不用你操心protectedFilterConfigfilterConfig=null;/是否忽略客户端指定的编码规则。True表示忽略。/当然要忽略,因为我们要自己指定编码规则嘛。GBK、GBK、GBKprotectedbooleanignore=true;/当这个过滤器被销毁的时候由系统来调用,不用管他publicvoiddestroy().this.encoding=null;this.filterConfig=null;/真正的转码操作由这个函数完成/内容很简单,就是将encoding的值赋给request/至于encoding等于啥?由下面的selectEncoding函数决定publicvoiddoFilter(ServletRequestrequest,ServletResponseresponse,FilterChainchain)throwsIOException,ServletException./Conditionallyselectandsetthecharacterencodingtobeusedif(ignore|(request.getCharacterEncoding()=null).Stringencoding=selectEncoding(request);if(encoding!=null)request.setCharacterEncoding(encoding);chain.doFilter(request,response);/对于filterConfig进行初始化/很重要的一个方法,它对encoding属性进行了赋值,而这个值来自于配置文件/换句话说,如果我们要指定一个编码规则,根本不用在程序里指定/只需要在配置文件里指定一下就OK了。/所以,在这个代码中你是看不到”GBK”字样的/但是我们在配置文件中稍加修改,它就能够按照GBK进行转码。好灵活啊!publicvoidinit(FilterConfigfilterConfig)throwsServletException.this.filterConfig=filterConfig;this.encoding=filterConfig.getInitParameter(encoding);Stringvalue=filterConfig.getInitParameter(ignore);if(value=null)this.ignore=true;elseif(value.equalsIgnoreCase(true)this.ignore=true;elseif(value.equalsIgnoreCase(yes)this.ignore=true;elsethis.ignore=false;/返回encoding的值,该值已经被init函数初始化了。protectedStringselectEncoding(ServletRequestrequest).return(this.encoding); 最后一步,修改你的Web应用程序的配置文件,将这个Filter添加进去。找到你自己的Web项目的Web.xml文件(注意啊,不是Tomcat中的Web.xml文件),为Webapp节点增加2个子节点:SetCharacterEncodinghello.SetCharacterEncodingFilterencodingGBKSetCharacterEncodi

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论