`
joy_cz
  • 浏览: 136577 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

struts中对中文乱码的处理方法

阅读更多
近日,使用Struts 1.1,发现讨厌的中文乱码问题,在form的传送过程和入库时候出现。
 
就我在网络上找的方法罗列如下:
 
Tomcat 5.0.28+struts 1.1+Hibernate 2.1+sqlserver2k
 
1.直接转编码public static String isoToGB(String src){    String strRet=null;    try{      strRet = new String(src.getBytes("ISO_8859_1"),"GB2312");    }catch(Exception e)    {          }    return strRet;}通过一个函数转编码,我没有成功,不知为何!
 
2.过滤filter设置法
 
package yourbean;
 
import Javax.Servlet.*;import javax.servlet.http.*;import java.io.*;import java.util.*;
 
public class servfilter extends HttpServlet implements Filter {  private FilterConfig filterConfig;  //Handle the passed-in FilterConfig  public void init(FilterConfig filterConfig) {    this.filterConfig = filterConfig;  }  //Process the request/response pair  public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) {    try {      request.setCharacterEncoding("GB2312");       ((HttpServletResponse)response).setHeader("Cache-control","no-cache");      response.setHeader("Pragma","No-cache"); response.setHeader("Cache-Control","no-cache"); response.setHeader("Expires","0");       ((HttpServletResponse)response).setHeader("Pragram","no-cache");      filterChain.doFilter(request, response);    }    catch(ServletException sx) {      filterConfig.getServletContext().log(sx.getMessage());    }    catch(IOException iox) {      filterConfig.getServletContext().log(iox.getMessage());    }  }  //Clean up resources  public void destroy() {  }}下面是一个Web.XML文件你用JBuilder写上面的bean的时候会生成一个<?xml version="1.0" encoding="ISO-8859-1"?>
 
<!DOCTYPE web-app    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"    "http://java.sun.com/dtd/web-app_2_3.dtd">
 
<web-app>  <display-name>Welcome to Tomcat</display-name>  <description>     Welcome to Tomcat  </description>  <filter>    <filter-name>servfilter</filter-name>    <filter-class>yourbean.servfilter</filter-class>  </filter>  <filter-mapping>    <filter-name>servfilter</filter-name>    <url-pattern>/*</url-pattern>  </filter-mapping></web-app>把上面的servfilter编译放在你的web-inf/classes/yourbean/web.xml放在web-inf/下和classes在一个目录下在每个JSP页面上加上<%@page contentType="text/html;charset=GBK"%>
 
也不是很方便,而且在tomcat也没有成功,继续郁闷!
 
3.我现在使用方法,推荐!!
 
写一个myActionServlet来并覆盖ActionServlet中的process()方法。
 
  protected void process(HttpServletRequest request, HttpServletResponse response) throws java.io.IOException, javax.servlet.ServletException {    /**@todo Override this org.apache.struts.action.ActionServlet method*/    request.setCharacterEncoding("GB2312");//就加着一行一切都解决了    super.process(request, response);  }
 
当然别忘了改一下web.xml里面的配置  <servlet>    <servlet-name>action</servlet-name>    <servlet-class>strutsdemo.myActionServlet</servlet-class>    <init-param>      <param-name>debug</param-name>      <param-value>2</param-value>    </init-param>    <init-param>      <param-name>config</param-name>      <param-value>/WEB-INF/struts-config.xml</param-value>    </init-param>    <load-on-startup>2</load-on-startup>  </servlet>
 
改一下servlet-class标签中的内容就可以!
 
真的可以,一劳用yi

具体编码的理论就不说了,google上已经够多了。

 

另外,如果不用struts的话,hibernate也可能碰到中文乱码问题,只要在hibernate.cfg.xml配置中如下:

 

<property name="hibernate.connection.url">   JDBC:microsoft:sqlserver://Localhost:1433;SelectMethod=cursor;characterEncoding=GBK;DatabaseName=myDatabase.  </property>

 

characterEncoding=GBK!就可以了。

 
分享到:
评论

相关推荐

    struts中文乱码问题解决详细步骤

    通过这些配置,大部分Struts中文乱码问题都能得到解决。但有时,问题可能源自于其他因素,比如静态资源(如CSS、JavaScript文件)的编码设置,或者是第三方库的编码处理不当。因此,排查问题时需全方位考虑,确保每...

    Struts2Action处理中文乱码

    通过以上两种方法,你可以有效地解决Struts2 Action中处理中文乱码的问题。选择哪种方法取决于你的具体需求和项目结构。一般来说,如果你的整个应用都使用同一种编码格式,那么在Struts2配置中设置全局编码可能更...

    Struts2.0解决中文乱码

    本文将深入探讨如何在Struts2.0中解决中文乱码问题,确保应用程序能够正确地处理和显示中文字符。 ### Struts2.0中文乱码问题分析 #### 1. 表单提交中文乱码 在Web应用中,表单是用户与服务器交互的主要方式之一...

    struts处理中文乱码问题总结

    struts处理中文乱码问题总结struts处理中文乱码问题总结struts处理中文乱码问题总结struts处理中文乱码问题总结

    struts1.2 解决中文乱码

    通过上述两种方法,我们可以有效地解决 Struts 1.2 中的中文乱码问题。需要注意的是,在实际应用中还需要根据具体情况进行调整和完善。例如,如果项目中同时使用了多种字符编码,则需要更细致地控制每个环节的编码...

    Struts2下载文件中文乱码处理

    ### Struts2下载文件中文乱码处理 在Web开发中,使用Struts2框架进行文件下载操作时,经常遇到的一个问题是文件名中的中文字符显示为乱码。这主要是因为浏览器和服务器之间的编码不一致所导致的。为了确保用户能够...

    struts2的中文乱码问题解决

    在使用Struts2框架进行Web开发的过程中,中文乱码问题是一个常见的挑战。这不仅影响用户体验,还可能导致数据不一致等问题。为了解决这一问题,我们需要理解其背后的原理,并采取相应的措施。下面将详细介绍如何解决...

    struts解决中文乱码问题

    在开发Web应用程序时,中文乱码问题是一个常见的挑战,特别是在使用Struts框架的时候。这个问题的出现通常是由于客户端和服务器端的字符集不一致导致的。本文将深入探讨如何解决Struts框架下的中文乱码问题。 首先...

    Struts中文乱码解决方案

    1. 在 Action 类中对乱码的字符串进行编码转换。 2. 在 ActionForm 的 `reset` 方法中设置请求的字符编码。 3. 自定义 RequestProcessor 并覆盖 `processPreprocess` 方法,统一设置请求编码。 请注意,选择的编码...

    struts下的汉字乱码问题

    在Struts框架中,汉字乱码问题是一个常见的问题,特别是在处理中文输入时。解决这个问题涉及到多个层面,包括页面编码设置、服务器配置以及Struts的Servlet配置。以下是对这些问题的详细解释: 1. 页面编码设置: ...

    Struts2中文乱码问题最终解决方案

    但在Struts 2.1.6版本中,这个配置对POST请求的中文乱码问题无效,这是一个已知的bug。升级到2.1.8.1或更高版本可以修复这个问题,因为官方已经改进了过滤器处理字符编码的方式。 2. **POST乱码问题**: POST请求...

    struts 2. 5.2解决中文乱码

    在处理中文字符时,可能会遇到乱码问题,这通常与字符编码设置不当有关。解决这个问题需要深入理解HTTP协议、Java I/O流以及Struts 2框架的配置。 首先,我们需要了解乱码产生的原因。在Web应用中,数据在网络传输...

    eclipse struts 中文乱码问题图解

    总结来说,解决Eclipse Struts中文乱码问题主要涉及页面编码设置、请求参数处理以及资源文件的正确编码。通过调整相应的配置和使用合适的工具,可以有效避免和解决这些问题,确保中文字符的正常显示和处理。

    struts 2.1.6 中文乱码处理

    ### Struts 2.1.6 中文乱码处理 #### 概述 在使用Struts 2框架进行Web开发时,中文乱码问题是非常常见...以上就是关于Struts 2.1.6中文乱码处理的详细介绍及具体实现方法。希望对正在面临相同问题的开发者有所帮助。

    Struts中中文乱码的解决方法

    Struts中文乱码问题主要涉及客户端与服务器端字符编码的统一。通过自定义RequestProcessor或实现Filter接口,可以确保请求和响应过程中正确处理中文字符,同时配合JSP页面的正确编码声明以及IDE的配置,可以全面解决...

    奇怪的struts2的中文乱码问题及解决.docx

    总之,处理Struts2在IE上的中文乱码问题,关键在于理解浏览器对字符编码的不同处理方式,并针对性地调整解析策略或编码设置。通过上述方法,开发者可以有效地解决此类问题,确保Web应用在不同浏览器下的正常运行。

    Struts框架下Ajax发送中文乱码问题的解决

    除了配置过滤器,我们还可以在Action类的execute方法中,或者更具体地说是在处理请求参数的方法中,手动设置请求的编码。例如: ```java request.setCharacterEncoding("UTF-8"); ``` 此外,对于Struts2框架,我们...

    struts 中文乱码问题解决

    在IT领域,特别是Web开发中,Struts框架作为Java Web应用的一个重要组成部分,其在处理中文字符时常常遇到乱码问题。这个问题不仅影响了用户体验,也增加了开发者的调试难度。本文将深入探讨Struts框架中中文乱码的...

    struts之中文乱码问题

    Struts是一个非常流行的Java Web应用程序框架,用于构建和管理MVC(模型-视图-控制...如果你的项目中仍然存在乱码问题,建议参考提供的“Struts中文乱码解决方案.doc”文档,它可能包含了更详细的排查步骤和解决方案。

Global site tag (gtag.js) - Google Analytics