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

tomcat中文问题解决

阅读更多

一、表单POST的数据的中文乱码解决

       这类型的数据中文可以通过filters来实时过滤。filters代码如下:

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);
}


}
 

 

  filters配置(配置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> 

 

二、将中文数据存入数据库乱码问题

  以mysql为例,改写连接字符串即可:

jdbc:mysql://localhost:3306/workshopdb? useUnicode=true&characterEncoding=GBK

三、 通过url传递参数和识别中文文件名问题

  问题表现:1、通过url传递参数,例如:  

 
通过request.getParameter("levleName")得到的值为乱玛。

      2、识别中文文件名,例如:

<img src="./pic/四川地图.jpg">  图片不能显示。

解决之道:

  1、如果只想解决第一个问题那很简单,两句代码即可:

String role=request.getParameter("chara");
role
=new String(role.getBytes("ISO-8859-1"),"GB2312");
out.println(role);

  因为tomcat服务器默认用 ISO-8859-1 字符集的。但是这样只能解决第一个问题不能解决中文文件名问题

  2、两个问题一起解决,修改server.xml,找到下列语句添加URIEncoding="GB18030",这样两个问题就一起解决了(不需要role=new String(role.getBytes("ISO-8859-1"),"GB2312");转化,得到的参数即为正常的中文) 

    <Connector acceptCount="100" connectionTimeout="20000" debug="0" disableUploadTimeout="true" enableLookups="false" maxSpareThreads="75" maxThreads="150" minSpareThreads="25" port="81"  redirectPort="8443"/>
 

分享到:
评论

相关推荐

    解决tomcat中文乱码问题

    解决tomcat中文乱码问题,有详细的解释说明,希望对需要的人有所帮助

    Tomcat 中文问题及解决方法总结

    ### Tomcat 中文问题及解决方法总结 ...通过以上方法,可以有效解决Tomcat中文环境中出现的乱码问题,提高开发效率并保证系统的稳定性。对于不同的应用场景和版本,可以选择合适的解决方案来应对中文乱码的问题。

    Tomcat中文问题之完美解决

    ### Tomcat中文问题之完美解决 #### 背景与问题描述 在使用Tomcat部署Web应用程序时,中文字符的编码处理常常会遇到乱码的问题。这种现象在使用GET或POST方式传递包含中文字符的数据时尤为明显。文章指出,在...

    tomcat5中文问题完美解决

    【Tomcat5中文问题解决详解】 在使用Tomcat5运行含有中文内容的应用程序时,可能会遇到中文乱码的问题。这通常涉及到HTTP请求的处理方式,尤其是对于POST和GET请求的不同处理策略。以下是对该问题的深入解析及解决...

    解决Tomcat中文乱码

    ### 解决Tomcat中文乱码问题 在使用Tomcat服务器部署Web应用时,经常会遇到中文乱码的问题。本文将详细探讨这一现象的原因,并提供一种有效的解决方案。 #### 问题背景 在Tomcat环境下运行Web应用程序时,如果...

    Ubuntu下使用Tomcat搭建网站出现中文乱码的问题.docx

    要解决 Ubuntu 下使用 Tomcat 搭建网站出现中文乱码的问题,需要统一服务器的字符编码,包括 Linux 服务器、Tomcat 配置文件和 MySQL 数据库。通过统一字符编码,可以确保服务器的字符编码是一致的,避免乱码的出现...

    tomcat中文显示解决

    ### Tomcat中文显示解决方案 在部署基于Java的应用程序时,我们经常会遇到中文乱码的问题,尤其是在使用Apache Tomcat作为Web服务器的情况下。本文将详细介绍如何在Tomcat中正确配置以实现中文字符的正常显示。 ##...

    解决tomcat下中文乱码问题

    解决 Tomcat 下中文乱码问题 在本文中,我们将讨论如何解决 Tomcat 下中文乱码问题。该问题是由于 Tomcat 默认的字符编码设置不正确引起的。我们将通过设置 Connector 元素的 URIEncoding 属性和在过滤器中设置字符...

    Tomcat参考手册中文版chm

    这份《Tomcat参考手册中文版chm》为开发者提供了全面的指引,无论是初学者还是有经验的管理员,都能从中获取所需的信息,解决在使用Tomcat过程中遇到的问题。通过深入学习和实践,我们可以更好地驾驭这个强大的Java...

    解决tomcat中文乱码问题.doc

    ### 解决Tomcat中文乱码问题 在使用Tomcat服务器部署Web应用时,经常会遇到中文乱码的问题。本文将详细探讨几种常见的乱码场景及其解决方案。 #### 一、JSP页面上的中文显示为乱码 **问题描述**:在JSP页面中直接...

    Docker容器部署tomcat出现中文乱码.docx

    解决 Docker 容器中 Tomcat 部署出现中文乱码的问题需要设置容器的 locale 为 en_US.UTF-8。在 Dockerfile 中添加环境变量 ENV LC_ALL en_US.UTF-8,然后重新构建 Docker 镜像和启动容器即可解决问题。同时,我们也...

    如何解决Tomcat下中文乱码问题?

    总结来说,解决Tomcat下的中文乱码问题,关键在于确保JSP页面的编码与服务器设置一致,并在处理表单提交时正确设置请求的字符编码。在实际开发中,推荐使用UTF-8作为统一的编码标准,因为UTF-8能够兼容各种语言,...

    Tomcat和weblogic中文乱码问题解决方案

    Tomcat和WebLogic中文乱码问题解决方案 在 Java Web 开发中,中文乱码问题一直是困扰开发者的主要问题之一。 Tomcat 和 WebLogic 是两个常用的 web 服务器,都是支持 Servlet 和 JSP 的。然而,在使用这些服务器时...

    Tomcat中文手册.doc

    《Tomcat中文手册》提供了关于Apache Tomcat的基础信息和详细指南,主要涵盖了以下几个核心知识点: 1. **Tomcat的安装**:Tomcat的二进制版本安装过程简单,包括下载ZIP或TAR.GZ文件,解压到指定目录,设置环境...

    tomcat中文帮助手册

    《Tomcat中文帮助手册》是Java Web开发领域中不可或缺的参考资料,它详尽地阐述了Apache Tomcat服务器的配置、管理、部署以及故障排查等方面的知识。Tomcat作为一款开源的Servlet容器,是许多Web应用程序的基础,...

    tomcat部署项目常见问题

    ### Tomcat部署项目常见问题及ExtJS包说明 #### 一、Tomcat部署项目的注意事项 在使用Tomcat部署项目时,有一些重要的事项需要注意: 1. **确保项目与Tomcat版本兼容**:首先需要确保项目的JDK版本与Tomcat版本相...

    tomcat5中文问题解决之道

    tomcat5中文问题解决之道

Global site tag (gtag.js) - Google Analytics