`
arne3166
  • 浏览: 131182 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

彻底解决Tomcat 5[1].0.19中文乱码

阅读更多

一、Include的页面乱码
  现象:include进来的页面出现乱码,其它页面正常。
  原因:Tomcat在缺省情况下使用ISO-8859-1编码,但是在include时有时Tomcat不能正确根据外层.jsp文件的编码解析include进来的文件,造成include进来的文件中的中文乱码。
  解决:这儿可以有很多解决办法,但是对于我们的中文环境,从根本上的解决办法是将Tomcat 5.0.19的核心缺省编码从ISO-8859-1修改为GBK 。可以在下面地址下载修改过的jar文件,
  jasper-compiler.jar,jasper-runtime.jar位于/common/lib下,其它位于/server/lib下,将新的.jar文件替代原.jar即可。  
  二、提交的数据乱码
  现象:通过表单提交的数据出现乱码。
  原因:原因未明。可能是Tomcat在接收到请求后,并没有能够根据request中的信息提前正确的编码方式。
  解决:可以添加一个设置字符集的Filter。
//=================初学者注意,请将此文件放在WEB-INF\classes\filters下,
//注意先以SetCharacterEncodingFilter.java保存,然后编译一下,推荐使用eclipse

 

 

package filters;

import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.UnavailableException;

public class SetCharacterEncodingFilter implements Filter {
 protected String encoding = null;
 protected FilterConfig filterConfig = null;
 protected boolean ignore = true;

 public void destroy() {
  this.encoding = null;
  this.filterConfig = null;
 }

public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain)
throws IOException, ServletException {

 // Conditionally select and set the character encoding to be used
 if (ignore || (request.getCharacterEncoding() == null)) {
  String encoding = selectEncoding(request);
  if (encoding != null)
   request.setCharacterEncoding(encoding);
 }

 // Pass control on to the next filter
 chain.doFilter(request, response);

}

public void init(FilterConfig filterConfig) throws ServletException {

 this.filterConfig = filterConfig;
 this.encoding = filterConfig.getInitParameter("encoding");
 String value = filterConfig.getInitParameter("ignore");
 if (value == null)
  this.ignore = true;
 else if (value.equalsIgnoreCase("true"))
  this.ignore = true;
 else if (value.equalsIgnoreCase("yes"))
  this.ignore = true;
 else
  this.ignore = false;

}

protected String selectEncoding(ServletRequest request) {
 return (this.encoding);
}

} 
 


//==================这段代码是我在网上摘录的,因为不知到出处所以无法标明作者
//然后将下面<filter>开始的代码加入到web.xml中,它位于WEB-INF下。
//配置web.xml

<filter>
 <filter-name>Set Character Encoding</filter-name>
 <filter-class>filters.SetCharacterEncodingFilter</filter-class>
 <init-param>
  <param-name>encoding</param-name>
  <param-value>GBK</param-value>
 </init-param>
</filter>

<filter-mapping>
 <filter-name>Set Character Encoding</filter-name>
 <url-pattern>/*</url-pattern>
</filter-mapping> 
 

 

分享到:
评论

相关推荐

    tomcat 下catalina.out 日志乱码问题处理

    标题中的“tomcat下catalina.out日志乱码问题处理”主要涉及的是在Tomcat服务器运行过程中,输出的日志文件`catalina.out`中,中文字符显示为乱码的状况。这通常是由于字符编码不匹配导致的,因为Tomcat在读取或写入...

    apache-tomcat-9.0.27.tar (1)

    apache-tomcat-9.0.27.tar (1)apache-tomcat-9.0.27.tar (1)apache-tomcat-9.0.27.tar (1)apache-tomcat-9.0.27.tar (1)apache-tomcat-9.0.27.tar (1)apache-tomcat-9.0.27.tar (1)apache-tomcat-9.0.27.tar (1)...

    apache-tomcat-10.0.8.zip

    Apache Tomcat 软件是Jakarta Servlet、 Jakarta Server Pages、 Jakarta Expression Language、 Jakarta WebSocket、 Jakarta Annotations和 Jakarta Authentication 规范的开源实现 。 压缩包内容: apache-...

    apache-tomcat-9.0.45-windows-x64

    apache-tomcat-9.0.45-windows-x64apache-tomcat-9.0.45-windows-x64apache-tomcat-9.0.45-windows-x64apache-tomcat-9.0.45-windows-x64apache-tomcat-9.0.45-windows-x64apache-tomcat-9.0.45-windows-x64apache-...

    apache-tomcat-8.5.78-windows-x64安装包-kaic.rar

    apache-tomcat-8.5.78-windows-x64安装包 apache-tomcat-8.5.78-windows-x64安装包 apache-tomcat-8.5.78-windows-x64安装包 apache-tomcat-8.5.78-windows-x64安装包 apache-tomcat-8.5.78-windows-x64安装包 ...

    tomcat-jdbc数据源所需jar包tomcat-jdbc.jar+tomcat-juli.jar

    1. **tomcat-jdbc.jar**: 这个jar文件包含了Tomcat的JDBC连接池实现。它提供了一个灵活且高性能的解决方案,用于管理数据库连接。Tomcat-jdbc连接池支持自动故障检测、空闲连接检查、连接有效性验证以及自动重连接...

    apache-tomcat-8.5.100.tar.gz

    1. 安装与配置Apache Tomcat 8.5.100: - 下载:首先从Apache官方网站下载"apache-tomcat-8.5.100.tar.gz"压缩文件。 - 解压:使用tar命令解压缩,例如`tar -zxvf apache-tomcat-8.5.100.tar.gz`。 - 配置环境...

    最新版linux apache-tomcat-9.0.37.tar.gz

    5. **启动、停止和管理**:Apache Tomcat提供了一系列的脚本用于管理服务,如`bin/startup.sh`用于启动Tomcat,`bin/shutdown.sh`用于关闭Tomcat。这些脚本需要使用`sudo`权限执行。 6. **配置**:Tomcat的配置文件...

    apache-tomcat-8.5.64.tar.gz

    Apache Tomcat 是一款开源的Java Servlet容器,常用于部署Java Web应用程序。在Linux环境中,它作为Java Enterprise Edition(Java EE)的一部分,为开发者提供了一个轻量级的服务器平台。"apache-tomcat-8.5.64.tar...

    apache-tomcat-8.5.100.zip

    apache-tomcat-8.5.100.zip;apache-tomcat-8.5.100.exe;apache-tomcat-8.5.100-linux.tar.gz;apache-tomcat-8.5.100-windows-x64.zip;apache-tomcat-8.5.100-windows-x86.zip;

    tomcat-9.0.96 windows安装包,apache-tomcat-9.0.96-windows-x64.zip

    tomcat-9.0.96 windows安装包,apache-tomcat-9.0.96-windows-x64.zip

    apache-tomcat-8.5.99安装包(含windows和linux版本).zip

    apache-tomcat-8.5.99安装包(含windows和linux版本).zip包含如下内容: apache-tomcat-8.5.99-windows-x64.zip; apache-tomcat-8.5.99-windows-x86.zip; apache-tomcat-8.5.99.exe; apache-tomcat-8.5.99.tar....

    apache-tomcat-8.5.87安装包(含windows和linux版本).zip

    apache-tomcat-8.5.87安装包(含windows和linux版本).zip包含如下内容: apache-tomcat-8.5.87-windows-x64.zip; apache-tomcat-8.5.87-windows-x86.zip; apache-tomcat-8.5.87.exe; apache-tomcat-8.5.87.tar....

    apache-tomcat-8.5.96安装包(含windows和linux版本).zip

    apache-tomcat-8.5.96安装包(含windows和linux版本).zip包含如下内容: apache-tomcat-8.5.96-windows-x64.zip; apache-tomcat-8.5.96-windows-x86.zip; apache-tomcat-8.5.96.exe; apache-tomcat-8.5.96.tar....

    apache-tomcat-9.0.93安装包(含windows和linux版本).zip

    apache-tomcat-9.0.93安装包(含windows和linux版本).zip包含如下内容: apache-tomcat-9.0.93-windows-x64.zip; apache-tomcat-9.0.93-windows-x86.zip; apache-tomcat-9.0.93.exe; apache-tomcat-9.0.93.tar....

    apache-tomcat-8.5.93安装包(含windows和linux版本).zip

    apache-tomcat-8.5.93安装包(含windows和linux版本).zip包含如下版本: apache-tomcat-8.5.93.zip; apache-tomcat-8.5.93-windows-x64.zip; apache-tomcat-8.5.93-windows-x86.zip; apache-tomcat-8.5.93.exe;...

    apache-tomcat-8.5.89安装包(含windows和linux版本).zip

    tomcat安装及配置教程;apache-tomcat-8.5.89安装包(含windows和linux版本).zip包含如下内容:apache-tomcat-8.5.89-windows-x64.zip; apache-tomcat-8.5.89-windows-x86.zip; apache-tomcat-8.5.89.exe; ...

    apache-tomcat-7.0.109安装包(含windows和linux版本).zip

    apache-tomcat-7.0.109安装包(含windows和linux版本).zip包含如下内容: apache-tomcat-7.0.109-windows-x64.zip; apache-tomcat-7.0.109-windows-x86.zip; apache-tomcat-7.0.109.exe; apache-tomcat-7.0.109....

    apache-tomcat-9.0.45-src

    apache-tomcat-9.0.45-srcapache-tomcat-9.0.45-srcapache-tomcat-9.0.45-srcapache-tomcat-9.0.45-srcapache-tomcat-9.0.45-srcapache-tomcat-9.0.45-srcapache-tomcat-9.0.45-srcapache-tomcat-9.0.45-srcapache-...

    apache-tomcat-8.5.91安装包(含windows和linux版本).zip

    apache-tomcat-8.5.91安装包(含windows和linux版本).zip包含如下版本: apache-tomcat-8.5.91-windows-x64.zip; apache-tomcat-8.5.91-windows-x86.zip; apache-tomcat-8.5.91.exe; apache-tomcat-8.5.91.tar....

Global site tag (gtag.js) - Google Analytics