网站大量收购独家精品文档,联系QQ:2885784924

struts2乱码处理struts2乱码处理.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
struts2乱码处理struts2乱码处理

Struts2有关乱码的处理 (参考struts2.2.1) 情况1:方案(1)前台Jsp传参附加在URL后面(jquery) 前台引入jquery库 对含中文的参数进行如下处理: encodeURIComponent(encodeURIComponent(“XXX”)),其中“XXX”是含中文的参数值。 后台:URLDecoder.decode(“XXX”, UTF-8);其中,“xxx”是前台传的含中文的参数值,UTF-8这个编码,自己做相应调整。 方案(2) 前台Jsp传参附加在URL后面(jquery) 前台引入jquery库 对含中文的参数进行如下处理: encodeURIComponent(“XXX”),其中“XXX”是含中文的参数值。 后台:new String(“XXX”.getBytes(ISO-8859-1), UTF-8)其中,“xxx”是前台传的含中文的参数值,UTF-8这个编码,自己做相应调整。 注意这种方式的区别 Struts2其他地方不用修改关于编码,就可解决中文乱码。 解决方案(3): 第一步: jsp页面编码统一问题,这个最容易解决。 %@ page language=java import=java.util.* pageEncoding= contentType=text/html; charset= UTF-8% 以为例子,jsp页面加上上面一句就能解决页面编码问题。 其中pageEncoding=是解决页面java代码模块编码,contentType=text/html; charset=是解决页面静态部分的编码。 好了,第一步轻松解决。准备开始第二步,但是在第二步之前,先说明一下。 jsp的操作流程,是jsp接受各种请求,然后转给servlet处理。在这个过程中会有中文乱码产生。知道了这个乱码产生的原因,就容易办了,接下来就是第二步了。 第二步: 我这里用到了Struts2.2.,目前较新版本吧。我们到知道,struts2封装了servlet,由action来处理jsp的页面请求。 既然用到了struts2,我们的web.xml肯定配置了struts2的拦截器。配置代码如下: filter filter-namestruts2/filter-name filter-classorg.apache.struts2.dispatcher.FilterDispatcher/filter-class /filter filter-mapping filter-namestruts2/filter-name url-pattern/*/url-pattern /filter-mapping 这段是拦截所有请求交给struts2去处理。 手写个字符编码过滤器的类。代码如下: 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 org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter; public class EncodeFilter extends StrutsPrepareAndExecuteFilter implements Filter? { ?? ?private FilterConfig config = null; ??? private String encoding = null; ?? ? ??? @Override ??? public void init(FilterConfig config) throws ServletException { ?????? this.config = config; ??? } ?? ? ??? @Override ??? public void doFilter(ServletRequest request, ServletResponse response, ???????

文档评论(0)

cduutang + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档