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

解决structs2+jsp+tomca6+mysql中文乱码

    博客分类:
  • JAVA
 
阅读更多

最近用structs2.3 + mysql5.5+tomcat6开发个小项目的时候,碰到了中文乱码的问题,现象,jsp页面的编码默认设为GB18030,mysql安装的时候设为gbk,tomcat没有动,后来发现,从jsp页面传到action中,中文全都变成"???",很是头疼,google了一下,用了网上说的,页面和配置文件编码都调成一致,也不行,在structs.xml中配置,写道

<constant name="struts.i18n.encoding" value="GBK"/>

 也不行。

后来,一步的研究,在web.xml中加上写道

 

 

<filter> 
<filter-name>struts-cleanup</filter-name> 
<filter-class> 
org.apache.struts2.dispatcher.ActionContextCleanUp 
</filter-class> 
</filter> 
<filter-mapping> 
<filter-name>struts-cleanup</filter-name> 
<url-pattern>/*</url-pattern> 
</filter-mapping>
 

 也不行,加上了spring的几个包,用spring的过滤器 <filter>

<filter>
		<filter-name>encodingFilter</filter-name>
		<filter-class>
			org.springframework.web.filter.CharacterEncodingFilter
		</filter-class>
		<init-param>
			<param-name>encoding</param-name>
			<param-value>GBK</param-value>
		</init-param>
		<init-param>
			<param-name>forceEncoding</param-name>
			<param-value>true</param-value>
		</init-param>
	</filter>
 

 还是不行。

包括改tomcat的配置文件

 

 

<Connector port="8080" protocol="HTTP/1.1" 
               connectionTimeout="20000" 
               redirectPort="8443" URIEncoding="GBK" />
 

 

 还是不行,快绝望了。

 

辛辛苦苦的项目不能死在这啊,后来,自己参考网上的方法,思路,写了个过滤器,在web.xml中把其他字符过滤器全删了

 

package com.shasha.base;

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;

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

 配置到web.xml中 <filter>

    <filter-name>Encoding</filter-name>  
    <filter-class>  
            com.shasha.base.SetCharacterEncodingFilter  
     </filter-class>  
    <init-param>  
   <param-name>encoding</param-name>  
   <param-value>GBK</param-value>  
   <!--gbk或者gb2312,GB18030或者utf-8-->  
  </init-param>  
  <init-param>  
   <param-name>ignore</param-name>  
   <param-value>true</param-value>  
  </init-param>  
 </filter> 

 并且,把Tomcat,conf目录下面的server.xml中 <Connector port="8080" protocol="HTTP/1.1"

               connectionTimeout="20000" 
               redirectPort="8443" URIEncoding="GBK" />

 增加 URIEncoding="GBK",发现,传入的action中中文,不是乱码了,很是欣喜,通过jdbc插入到数据库后,发现,在mysql中

还还是乱码,估计现在问题出现在了数据库,但是我的数据库安装的时候是GBK编码的,直接在数据库中插入中文,发现没问题。那么问题就应出现在jdbc上了,又在连接串上加了"&useUnicode=true&characterEncoding=UTF-8",后,重启,试了试,ok了,插入、查询中文都正常了。暂且这样解决吧。有时间再仔细研究下。

分享到:
评论

相关推荐

    Structs2+Spring+hibernate+jdom+junit+读取excel+serve2005+oracle+mysql 架包

    标题中的"Structs2+Spring+hibernate+jdom+junit+读取excel+serve2005+oracle+mysql 架包"涉及到一系列在Java开发中常用的框架和技术,这是一套集成的开发环境,可以帮助开发者快速搭建企业级应用。下面将对这些技术...

    structs jsp structs+jsp

    jsp+struct资源 jsp+struct资源 jsp+struct资源jsp+struct资源jsp+struct资源jsp+struct资源jsp+struct资源jsp+struct资源 jsp+struct资源 jsp+struct资源 jsp+struct资源 jsp+struct资源

    SSM(structs2+spring+mybatis)+Mysql实现的客户关系管理系统源码

    SSM(structs2+spring+mybatis)+Mysql实现的客户关系管理系统源码 SSM(structs2+spring+mybatis)+Mysql实现的客户关系管理系统源码 SSM(structs2+spring+mybatis)+Mysql实现的客户关系管理...

    Spring2.5+Structs2+Hibernate3.3框架例子

    这个"Spring2.5+Structs2+Hibernate3.3框架例子"是一个经典的组合,旨在帮助初学者理解这些框架如何协同工作,构建高效的企业级应用程序。 **Spring框架**:Spring 是一个全面的后端开发框架,它提供了依赖注入(DI...

    Structs开发的图书馆管理系统 Windows xp sp2 + myEclipse5.5 + Tomcat6.0 + MySQL5.0

    系统开发环境: Windows xp sp2 + myEclipse5.5 + Tomcat6.0 + MySQL5.0 数据库文件:直接将数据库目录下的db_librarySys文件夹复制到mysql数据库的data目录下即可 mysql数据库登陆信息: 帐号root,密码123(自己可以...

    structs+jsp+javabean

    教你手把手的做BBS论坛,让你轻松做出漂亮的论坛主要运用structs+jsp+sql

    bbs论坛系统(structs2+hibernate+jsp)

    该系统是基于Struts2+Hibernate开发的一个论坛系统,其中,Hibernate主要负责数据底层封装处理,Struts2在Action中调用DAO相应的方法实现业务处理。系统采用B/S模式,用java语言结合mysql数据库技术进行开发。系统...

    JSP+Structs+Hibernate+Mysql开发的在线电子商城

    【标题】"JSP+Structs+Hibernate+Mysql开发的在线电子商城"涉及的核心技术栈是Java Web开发中的重要组成部分,包括了前端展示层、业务逻辑层和数据持久化层。下面将对这些关键技术和它们在电子商城项目中的应用进行...

    structs2 + maven demo项目

    Structs2是一个强大的Java Web开发框架,它基于MVC(Model-View-Controller)模式,致力于简化Web应用程序的开发过程。Maven则是一个项目管理工具,可以帮助开发者管理和构建Java项目,通过依赖管理和项目信息管理,...

    structs2+spring+hibernate整合

    在IT行业中,"Structs2+Spring+Hibernate"(SSH)是经典的Java Web开发框架组合,这三大框架的整合能够构建高效、灵活且易于维护的企业级应用。下面将详细讲解这三个框架以及它们如何协同工作。 Struts2是MVC(模型...

    structs2 + spring2 + hibernate3 +freemaker + Ajax

    structs2 + spring2 + hibernate3 +freemaker + Ajax 其中包括Jquery+Ajax等最新技术 实现的完整项目实例,从中可以学得很多技术知识,只此一家别 无二家. 想学好java_Web开发的就赶紧下载吧 (己包含了数据库的文件,...

    structs2 + spring + hibernate 小例子

    这个"structs2 + spring + hibernate 小例子"是用于演示如何整合这三个组件来构建一个完整的后端系统。下面我们将深入探讨这三个框架的核心功能和它们之间的协作。 1. **Struts2**:Struts2是一个基于MVC(Model-...

    structs2+hibernate学生信息管理

    在本项目"structs2+hibernate学生信息管理"中,我们主要关注的是使用Struts2框架与Hibernate ORM工具来构建一个简单的学生信息管理系统。这个项目对于初学者来说是一个很好的实践,它涵盖了Web开发中的关键技术和...

    一个小餐饮管理系统。structs+sql2000+tomcat5

    标题中的“一个小餐饮管理系统”指的是一个专门为...同时,这也反映出随着技术的发展,后来的系统可能会采用更现代的技术栈,如Spring Boot、MySQL或PostgreSQL以及更新版本的Tomcat,以提高性能、安全性和可维护性。

    structs++hibernate+Spring++++ssh

    《Structs2权威指南李刚》这本书可能会涵盖Struts 2的核心概念、配置、控制器、模型、视图以及如何在实际项目中应用Struts 2。 2. **Hibernate**: Hibernate 是一个对象关系映射(ORM)框架,用于简化Java应用...

    MYECLIPSE + STRUTS2 + SPRING4 + HIBERNATE4 + STRUCTS2S+OGNL + MYSQL_5.7.12

    根据提供的标题、描述以及部分内容,本文将详细解析与MYECLIPSE + STRUTS2 + SPRING4 + HIBERNATE4 + STRUCTS2S+OGNL + MYSQL_5.7.12相关的技术栈及其应用。这些技术在企业级开发中非常常见,能够帮助开发者构建高效...

    基于MVC+structs+jsp的动漫论坛系统源码.zip

    对于初学者或开发者来说,阅读和理解这个源码可以提升对MVC、Structs和JSP的理解,有助于掌握实际开发中的问题解决技巧。重点关注模型类的设计、控制器的逻辑处理、以及JSP页面的渲染方式。 总结,这个基于MVC+...

    Structs 2+Spring+hibernate3 jar包大全

    总结一下,"Structs 2+Spring+hibernate3 jar包大全"压缩包包含了这三个框架的关键组件,为Java开发者提供了便利,使得他们能够快速搭建起一个完整的MVC架构,并且具备强大的业务逻辑处理和数据持久化能力。...

    structs2+spring+ibatis

    在IT行业中,`structs2`、`Spring` 和 `iBatis` 是三个非常重要的框架,它们在Java开发中有着广泛的应用。这篇博客“structs2+spring+ibatis”可能探讨了如何将这三个框架集成到一个项目中,以实现高效、灵活的Web...

    毕业设计-网上书店前后台系统Structs+Hibernate+Spring tomacat+mysql

    基于Structs+Hibernate+Spring+mahout+bootstrap+junit+tomacat+mysql 实现的网上书店前后台系统, 毕业设计。 基于Struts、Hibernate、Spring、Mahout、Bootstrap、JUnit、Tomcat和MySQL实现的网上书店前后台系统是...

Global site tag (gtag.js) - Google Analytics