struts处理中文乱码问题总结

时间:2019-05-12 04:06:58下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《struts处理中文乱码问题总结》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《struts处理中文乱码问题总结》。

第一篇:struts处理中文乱码问题总结

http://58andy.sinaapp.com 学了很久的java,接触SSH也有一段时间了,写成博文总是有点懒,最近在整理一些思绪,把SSH一点一滴放进博客里,以备以后改进,再学习。

以我自己的了解,在进行struts开发的过程中,总也是出现很多的乱码问题,但归根到底,也只是以下三种情况:

㈠页面显示中文乱码

㈡传递参数中文乱码

㈢国际化资源文件乱码

下面就这三中情况介绍怎么在具体项目中处理这些乱码问题。而对于整体的处理思想,是要统一编码为: UTF-8.(以myeclipse6支持的struts1.3为准)

㈠页面显示中文乱码

对于在页面中显示出现乱码,这个问题比较简单,便是检查你的JSP文件里是不是出现了中文要处理,因为JSP默认的编码格式为“ISO-8859-1”,当JSP中出现要处理的中文时,其显示就出现乱码了,这种情况一般出现在手写JSP,或修改时。因为在myeclipse6.0中,如果出现了编码错误时,程序不会让你保存,而是会提示你注意编码,这点很好。具体的修改办法是把 Html代码

1.<%.@ page language=“java” import=“java.util.” pageEncoding=“ISO-8859-1”>

改成:

Html代码

1.<%.@ page language=“java” import=“java.util.” pageEncoding=“UTF-8”>

㈡传递参数中文乱码

传递参数出现的乱码,参数的内容为中文。比如在struts应用中,简单的一个登录界面中,需要传递的登录名为中文时,你没经处理之前,是会出现乱码传递的,为了让我们能看到显示的乱码,我们在对应的Action类的子类里,修改一下,用System.out把接受到的参数输出,代码如下: Java代码

http://58andy.sinaapp.com 1.public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, 2.HttpServletResponse response)...{ 3.DynaActionForm loginForm =(DynaActionForm)form;4.5.String username =(String)loginForm.get(“username”);6.String password =(String)loginForm.get(“password”);7.System.out.println(“username:”+username);8.System.out.println(“password:”+password);9.if(username.equals(“ivorytower”)&& password.equals(“123456”))...{ 10.return mapping.findForward(“success”);11.} 12.return mapping.findForward(“fail”);13.}

那么当你提交了中文输入后就会出现乱码了。

具体的解决方法:

①修改Tomcat---->conf----->server.xml文件,在修改端口的标签后面加一行代码,如下: Xml代码

1.

3.redirectPort=“8443” URIEncoding=“UTF-8”/>

②编写过滤器Filter Java代码

1.2.import java.io.IOException;3.4.import javax.servlet.Filter;5.import javax.servlet.FilterChain;6.import javax.servlet.FilterConfig;7.import javax.servlet.ServletException;8.import javax.servlet.ServletRequest;9.import javax.servlet.ServletResponse;10.11.public class CharacterEncodingFilter implements Filter...{

http://58andy.sinaapp.com 12.13.@Override

14.public void destroy()...{ 15.} 16.17.@Override

18.public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)throws IOException,ServletException { 19.request.setCharacterEncoding(“utf-8”);20.chain.doFilter(request, response);21.} 22.23.@Override

24.public void init(FilterConfig arg0)throws ServletException...{ 25.} 26.27.}

利用过滤器,把requst传递的中文参数都设成“UTF-8”编码。

③修改web.xml文件

打开项目里的web.xml文件,在前面加上如下代码: Xml代码

1.2.

3.characterEncoding

4.com.v512.example.CharacterEncodingFilter 5.

6.

7.characterEncoding 8./* 9.

注意其过滤的URL为“/*”,表示当前的request请求。为了使设置生效,重起tomcat。

㈢国际化资源文件乱码

http://58andy.sinaapp.com

①利用JDK的native2ascii工具进行编码转换

国际化问题,主要是为了处理文件在浏览器上的显示问题,还是以登录界面来说,比如在中文浏览器上,我们要看到中文显示,对应在英文浏览器上要显示英文。那么我们在登录那个界面处理上,就不能直接写上我们的“用户名”“密码”等标识了。就要用标记转换输出了,修改为: Html代码

1.2.

再者,打开项目下的资源配置文件ApplicationResources.properties,依据上面所写key值,设定成我们要的默认值(显示英文),比如 引用

#Resource for Parameter 'com.v512.example.struts.ApplicationResources #Project webexample2 example.login.username=username example.login.password=password

现在我们动手新建一个资源文件,让其能显示中文,直接Ctrl+C,Ctrl+V。改名为ApplicationResources_zh.properties,代码如下: 引用

#Resource for Parameter 'com.v512.example.struts.ApplicationResources #Project webexample2 example.login.username=用户名 example.login.password=密码

但保存,myeclipse会报错,这时我们需要修改资源文件的编码格式。Windons---->Preferences---->Content Type------>Text----->JavaPropertiesFile,把其Default encoding改为“utf-8”,按“update”更新。这样就能进行保存了。但是当我们进行验证会不是成功时,仍然给我们的是乱码。

不急,我们还得做一项任务,打开DOS窗口,CMD到资源文件所在目录,运用JDK的native2ascii工具把我们新建的资源文件改成另一个名字的资源文件,例如bank.properties。命令如下: 引用

>native2ascii-encoding gbk ApplicationResources_zh.properties bank.properties

http://58andy.sinaapp.com

打开bank.properties资源文件,自动生成的代码如下: 引用

#Generated by ResourceBundle Editor(http://eclipse-rbe.sourceforge.net)

example.login.username = u7528u6237u540D example.login.password = u5BC6u7801

然后在myeclipse窗口中,把原来新建ApplicationResources_zh.properties 删除,并把bank.properties改为ApplicationResources_zh.properties(为了方便记忆,管理)。然后重起tomcat或进行reload文件,我们发现乱码问题没有了。

②利用Eclipse ResourceBundle Editor插件工具

以上我们是利用了JDK的native2ascii工具来处理国际化问题,但在EC中,还有一种更方便的工具专门用来处理编辑java的资源文件国际化乱码问题,即Eclipse ResourceBundle Editor插件工具。安装了这个插件后,我们能进行方便的可视化资源文件编辑。推荐。

第二篇:中文参数乱码问题解决方案

问题1:

在使用tomcat服务器时,如在跳转路径中传递中文参数会出现乱码现向!如:以

两种方式提交的变量flag在LoginServlet中用request.getParameter(“flag”);时就会出现乱码问题。

解决:在tomcat/conf/servlet.Xml中 加入一段代码:

debug=“0” connectionTimeout=“20000”

disableUploadTimeout=“true” URIEncoding=“true”/>

问题2:

如果uri中转递的是参数要发送到jsp页面,则必须在接受代码的jsp页面里面还要加入代码: <% request.setCharacterEncoding(“gb2312”);%>

问题3:

在jsp页面里的代码修正:

<%@ page language=“java” import=“java.util.*” pageEncoding=“gb2312”%> <%@ page contentType=“gb2312”%>

无标题文档

//如不注明是post方式则默认是get方式

问题4:

在servlet中的代码修正

在doPost方法里面最上面的位置加上如下代码:

response.setCharacterEncoding(“gb2312”);

request.setCharacterEncoding(“gb2312”);

第三篇:phpmyadmin乱码问题

phpmyadmin乱码问题____2012年12月6日 09:39:16

首先,如果你出现乱码,你一定baidu了文章,对于各种答案,肯定是头都大了,说的都差不多,却都不一样烦啊。问题叙述:

1,从网页提交数据库数据,在phpmyadmin上显示乱码,在网页输出是好的2,直接从数据库插入数据,但是输出到网页后是乱码

3,从网页提交数据库数据,在phpmyadmin上显示正确,但是网页输出是乱码。

对于乱码问题就这三种了吧!

今天我亲自试验了一下,下面公布我的结果(我用的是UTF-8,其他同理,UTF-8特别注意)

总述,乱码,原因,编码不一致,为什么?答曰:提交数据库的数据需要编码,数据库存储需要编码,从数据库提取的数据还需要编码。这三种编码需要一致!

首先,你要保证所有输出输入网页都有编码声明

或者

header(“Content-Type: text/html;charset=utf-8”);

header(“Content-Type: text/html;charset=utf-8”);

注意!这里是utf-8,不是utf8

其次,相应数据的编码整理应该为utf8_general_ci。

1、从网页提交数据库数据,在phpmyadmin上显示乱码,在网页输出是好的,说明提交的数据和数据库的编码不一样,提取数据的编码和提交数据的编码一样 A->B->A型

这你就懂了吧,A是提交和提取数据的编码,B是数据库存储用的编码。

修改方法: 如果你不是新手的话,数据库连接文件应该是单独的吧比如execut_dql()(供查询用)或者execut_dml()(供修改用),所有的语句应该都是通过这两个函数进行的所以在这两个函数里的第一行,先写上mysql_query(“SET NAMES 'utf8'”);注意!是utf8,不是utf-8

例如下面的(在mysql_query()你的SQL语句之前,全部 SET NAME 'utf8'一下)

mysql_query(“SET NAMES 'utf8'”);

$res=mysql_query($sql,$this->conn)ordie(mysql_error());

mysql_query(“SET NAMES 'utf8'”);$res=mysql_query($sql,$this->conn)or die(mysql_error());

其实,你把所以关于数据库查询、插入的语句前全部mysql_query(“SET NAMES 'utf8'”);后,乱码问题就已经解决了,不过你以前插入的数据要重新插入了。

2、直接从数据库插入数据,但是输出到网页后是乱码。B->A型

这个不用再说了吧,你把查询语句前先

mysql_query(“SET NAMES 'utf8'”);

//你的查询

之后刷新下就不是乱码了。

3、从网页提交数据库数据,在phpmyadmin上显示正确,但是网页输出是乱码。A->A->B型

同上,你把查询语句前先

mysql_query(“SET NAMES 'utf8'”);

之后刷新下就不是乱码了。

所以总结出,只要保证操作过程中,输入,存储,输出的字符编码一致,你想让他乱码都难

第四篇:struts2 action接收到的参数中文乱码的问题

struts2 action接收到的参数中文乱码的问题

(2011-06-16 10:55:44)转载 标签: 分类: 技术收藏

utf-8 乱码 gb2312 字符集 编码方法 杂谈

中文乱码,首先要区分是页面乱码、action乱码,还是数据库乱码。大致的原理是java使用unicode编码-->window使用gbk(gb2312的扩展集)--mysql默认使用utf-8(unicode的一种

编码方法),这样转来转去就乱码了^_^。解决方法如下:

1.在struts2里面,最好将所有字符都设成utf-8。<%@ page contentType=“text/html;charset=UTF-8”%> <%@ page pageEncoding=“UTF-8” %> 1.1 在jsp页面设定字符编码。这边有必有说明的是如果是jsp+java bean+servlet的方案,中文乱码很好解决,统一设成gb2312就可以了。1.2 使用struts框架字符集不能设成gb2312,要改成utf-8。

2.在struts.properties 添加: struts.devMode=false struts.enable.DynamicMethodInvocation=true struts.i18n.reload=true struts.ui.theme=simple struts.locale=zh_CN struts.i18n.encoding=UTF-8 struts.serve.static.browserCache=false struts.url.includeParams=none

其中locale、encoding就是字符集的设定了。3.在web.xml加个filter struts-cleanup org.apache.struts2.dispatcher.ActionContextCleanUp struts-cleanup /*

第五篇:struts异常总结

Java的Struts框架的异常处理

Struts提供了一个更简单的方式来处理未捕获的异常,并将用户重定向到一个专门的错误页面。

Struts的异常处理所使用的“exception”拦截容易。“exception”拦截器作为默认的栈的一部分,所以不必做任何额外的配置。它可为准备使用的盒。

根据元素出现位置的不同,异常映射又可分为两种:

局部异常映射:将元素作为元素的子元素配置;

全局异常映射:将元素作为元素的子元素配置;

全局异常映射对所有的Action都有效,但局部异常映射仅对该异常映射所在的Action有效。

如果局部异常映射和全局异常映射配置了同一个异常类型,在元素内的局部异常映射将覆盖全局异常映射。

有异常往外抛即可。你也可以在方法里面抛,比如throw SQLException。

我们可以使用Struts2的标签输出异常信息:

输出异常的message属性信息: 输出异常堆栈信息:

有了处理系统异常的基础,我们来看一看自定义异常:

packagecom.exception;public class MyException extends Exception {

private String message;

publicMyException(String message){ super(message);this.message = message;} public String getMessage(){ return message;} public void setMessage(String message){ this.message = message;} }

public String execute()throws Exception { if(!“hello”.equals(usename)||!“world”.equals(password)){ throw new MyException(“用户名或密码错误,您发现了吧!”);} return “success”;}

在action配置中的异常处理

/error.jsp /result.jsp

在全局配置中的异常处理

/error.jsp

/result.jsp

错误页面error.jsp

<%@ page language=“java” import=“java.util.*” pageEncoding=“UTF-8”%> <%@ taglib prefix=“s” uri=“/struts-tags”%>

下载struts处理中文乱码问题总结word格式文档
下载struts处理中文乱码问题总结.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    Struts2国际化与乱码不同的方法处理

    Struts2国际化 开发工具:MyEclipse 首先当然是建项目啦~ 我来说明一下文件的用处:Messages_en.properties 是存放的是英文属性的 Messages_zh.properties 是存放的是中文属性......

    质量事故及问题处理总结范文合集

    一、第一跨箱梁下倒角露筋,缺料。 二、第一跨浇注过程中底板翻浆严重,底板堆积加厚。 三、第二跨张拉纵向束FR41管道进浆堵管。 四、第二跨顶板束TL21张拉过程中混凝土崩裂。......

    售前问题总结及处理方案

    淘云社售前问题总结 ⒈ 尺码问题 例⑴ :我身高170体重130斤该穿几码 分析:直说身高体重无法明确判断尺码,所以我们需要补充情报 公司建议:继续询问顾客腰围是否有啤酒肚,如果根据......

    电脑问题及处理方法总结

    双击word文件假死处理方法最近电脑有个怪毛病,双击word文件打开时,电脑会假死,要等好久才会有反应,如果先打开word空白文档,在从里面打开文件则很正常。在网上找了一圈,发现了一个......

    WORD2007页码出现乱码及兼容模式的处理方法[合集5篇]

    WORD2007页码出现乱码及兼容模式的处理方法 一、出现兼容模式的处理方法: 出现兼容模式,一般情况是你打开的是比office2007版本更低的文档(比如后缀名为.doc),因为是不同版本它就......

    中文演讲比赛总结

    河北科技师范学院城市建设学院2012年“颂祖国、思故乡”主题中文演讲比赛(总结)一、活动背景2012年9月第三周,是第15个全国推广普通话宣传周(以下简称推普周)。自1998年以来,推普......

    STPi中文总结

    TSPi总结 *****************************第一章 TSPi简介************************ 1、什么是TSPi? 答:TSPi(introduction to the team software process)提供了一整套结构化的......

    问题学籍如何处理

    问题学籍如何处理? 1.在学籍管理系统中,问题学籍分为 (1)身份证号错误(此类情况必须解决,确保身份证号正确! ) 身份证号与性别、出生日期不符; 手工输入错误身份证号,不符合校验规则;......