`
xq30397022
  • 浏览: 13791 次
  • 性别: Icon_minigender_1
  • 来自: 天津
文章分类
社区版块
存档分类
最新评论

struts2.1+hibernate+spring 乱码处理

 
阅读更多

做项目时由于数据库的编码格式错误,使我误认为自己的项目配置出现了问题,因此用了很多解决乱码的方法,现在整理出来供大家借鉴:

注意事项一:

设置jsp页面的编码格式:

<%@ page contentType="text/html; charset=UTF-8"%>
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>

注意事项二:

struts.xml配置文件加入编码配置:

<constant name="struts.i18n.encoding" value="UTF-8"></constant>(这个基本上是不起作用的)

注意事项三:

web.xml中配置struts过滤器,用spring来监听

<!-- spring 监听器 -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

<!-- struts2 过滤器-->

<filter>
<filter-name>strutsFilterDispatcher</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>strutsFilterDispatcher</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

注意事项四:

编写自己的编码过滤器,用来对HttpServletRequest设定

先写个EcodingFilter类,代码如下:

public class EcodingFilter implements Filter{

private FilterConfig filterConfig;
public void destroy() {
// TODO Auto-generated method stub

}

public void doFilter(ServletRequest arg0, ServletResponse arg1,
FilterChain arg2) throws IOException, ServletException {
// TODO Auto-generated method stub
HttpServletRequest request = (HttpServletRequest) arg0;
HttpServletResponse response = (HttpServletResponse) arg1;

String encode = this.filterConfig.getInitParameter("encode");
request.setCharacterEncoding(encode);
response.setCharacterEncoding(encode);
arg2.doFilter(request, response);
}

public void init(FilterConfig filterConfig) throws ServletException {
// TODO Auto-generated method stub
this.filterConfig = filterConfig;

}

}

然后在web.xml里注册该过滤器,写法如下:

<!-- ecoding filter -->
<filter>
<filter-name>EcodingFilter</filter-name>
<filter-class>com.oa.util.EcodingFilter</filter-class>
<init-param>
<param-name>encode</param-name>
<param-value>utf-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>EcodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

注意事项五:

在web.x中用spring的字符过滤器,代码如下:

<!-- spring 编码 -->
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

注意事项六:

在tomcat中的service.xml中修改tomcat的编码格式,方法如下找到tomcat中config文件夹里面的service.xml文件,打开修改:

找到这段代码:

<Connector port="8888" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />

把它改为:

<Connector port="8888" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8" />

注意事项七:

就是你的数据库编码要和你的页面和过滤器中的编码要一致,为什么把这条放在最后呢,我想大家一般不会犯这种低级错误的,呵呵~~

经过上面的设置,你应该完全可以摆脱乱码问题了!

(吐血推荐啊!!!)



分享到:
评论

相关推荐

    解决struts2.1.6+spring+hibernate 中文乱码

    ### 解决Struts2.1.6 + Spring + Hibernate 中文乱码问题 在Web开发过程中,特别是使用Java EE框架时,字符编码问题一直是开发者关注的重点之一。对于使用Struts2.1.6、Spring以及Hibernate这三个框架组合的项目而...

    JavaWeb学生在线选课系统Struts+Hibernate+Spring

    JavaWeb学生在线选课系统,使用了三大框架SSH Struts+Hibernate+Spring 编码格式是UTF-8,打开请注意调一下格式,如果出现乱码,请下载一个高级记事本例如Notepad+++直接打开 .java源文件 复制粘贴即可.内含数据库脚本...

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (1)

    12.6 整合Struts、Spring和Hibernate实现用户管理 12.6.1 Struts、Spring和Hibernate的整合方式 12.6.2 编写用户注册画面regedit.jsp 12.6.3 编写用户登录画面login.jsp 12.6.4 编写注册控制器RegeditAction.java ...

    Struts1+hibernate+spring基础框架,脚手架

    Struts1、Hibernate和Spring是Java Web开发中的三个重要框架,它们组合在一起形成的S1SH(Struts1+Spring+Hibernate)基础框架,是企业级应用开发的常见选择。这个框架组合提供了完整的MVC(Model-View-Controller)...

    struts2+hibernate+spring

    根据提供的文件信息,我们可以推断出这是一篇关于整合Struts2、Hibernate和Spring框架的文章。下面将基于这些信息详细阐述这些技术的关键知识点。 ### Struts2+Hibernate+Spring框架整合 #### 一、概述 Struts2、...

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (3)

    12.6 整合Struts、Spring和Hibernate实现用户管理 12.6.1 Struts、Spring和Hibernate的整合方式 12.6.2 编写用户注册画面regedit.jsp 12.6.3 编写用户登录画面login.jsp 12.6.4 编写注册控制器RegeditAction.java ...

    struts1.2+spring2.0+hibernate3.1框架整合实例

    采用在web.xml中加载spring配置文件的方法降低struts和spring的耦合度,使用自定义的MyDelegatingRequestProcessor类来代替spring的DelegatingRequestProcessor类来解决spring中action的bean的重复配置问题。...

    struts1+spring+hibernate整合示例

    ### Struts1+Spring+Hibernate整合示例解析 在Java Web开发领域,Struts1、Spring与Hibernate三者的结合(通常简称为SSH)是构建复杂应用的一种常见模式。本篇文章将详细解读“struts1+spring+hibernate整合示例”...

    用eclipse搭建SSH架构(struts + spring + hibernate)

    Eclipse 搭建 SSH 架构(Struts + Spring + Hibernate) Eclipse 是一个功能强大且功能丰富的集成开发环境(IDE), SSH 架构(Struts + Spring + Hibernate)是 Java Web 开发中常用的架构模式。下面将详细介绍...

    maven3+struts2+spring+ibatis

    maven3+struts2+spring+ibatis,本来是用maven3+struts2+spring+hibernate但考虑到hibernate在多表级联查询的时候执行效率不高,所以改用性能更好不过sql比较麻烦的的ibatis,本项目只有登录和插入数据,仅供参考: ...

    Struts+Hibernate+Spring的整合方法

    Struts、Hibernate和Spring是Java开发中常用的三个框架,它们分别负责表现层、持久层和业务层的管理。将这三个框架整合在一起可以实现一个高效、松耦合的企业级应用程序。 1. **Struts** 是一个MVC(Model-View-...

    struts+hibernate+spring 登录开发实例

    SSH(Struts+Hibernate+Spring)是一个流行的Java Web开发框架组合,用于构建企业级应用程序。这三个框架分别负责不同的职责:Struts作为表现层框架,提供MVC(Model-View-Controller)设计模式的支持;Hibernate...

    struts+spring+hibernate实例

    ### SSH(Struts + Spring + Hibernate)框架整合实例解析 #### 概述 本文将详细介绍一个基于SSH(Struts + Spring + Hibernate)框架的经典实例——简单登录系统的搭建过程。通过本教程,您不仅可以学习到如何...

    javaee SSH整合(Spring4+Struts2+Hibernate4)所需的包

    含有 SSH整合(Spring4+Struts2+Hibernate4)所需的包,包括spring-jdbc-4.0.0.RELEASE.jar,struts2-dojo-plugin-2.3.15.1.jar,hibernate-commons-annotations-4.0.4.Final,spring-jdbc-4.0.0.RELEASE.jar等等,...

    Struts2+Spring+Hibernate+ExtJS开发实例.pdf

    这些框架各司其职,Struts2负责处理Web请求和视图展示,Spring作为依赖注入和事务管理的核心,Hibernate则专注于数据持久化,而ExtJS提供丰富的前端用户界面组件。本文将详细介绍这四大框架如何协同工作,共同构建一...

    Struts+Spring+Hibernate整合

    ### Struts+Spring+Hibernate整合知识点详解 #### 一、简介 在软件开发领域,特别是Java Web应用开发中,Struts、Spring与Hibernate是三种非常重要的框架和技术。它们各自拥有独特的优势,通过整合这些技术可以构建...

    Struts2+Spring2+Hibernate3整合的例子.rar

    总的来说,"Struts2+Spring2+Hibernate3整合的例子"是一个完整的Java Web开发示例,它展示了如何有效地组合这三个框架,实现MVC模式,解决中文乱码问题,并且通过Spring的管理,增强了代码的可维护性和可测试性。...

    myeclipse新建SSH项目的步骤struts2+spring+hibernate

    在IT行业中,SSH(Struts2 + Spring + Hibernate)是一个非常经典的Java Web开发框架组合,用于构建高效、可维护的企业级应用。这个框架集合了Struts2作为MVC(Model-View-Controller)架构的前端控制器,Spring作为...

    Struts+hibernate+Spring的整合

    Struts、Hibernate和Spring是Java开发中常用的三个框架,它们分别负责表现层、持久层和业务层的管理。"SSH整合"就是将这三个框架集成在一起,以实现更高效、更灵活的企业级应用开发。 1. **Spring核心库**:首先,...

    整合struts1+spring+hibernate框架完成简单的登录.pdf

    【整合Struts1+Spring+Hibernate框架完成简单登录】是一个典型的Java Web开发过程,涉及到的主要知识点包括以下几个方面: 1. **开发环境配置**: - 使用Myeclipse 6.01作为集成开发环境。 - 采用的技术栈为:...

Global site tag (gtag.js) - Google Analytics