- 1、本文档共5页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
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=UTF-8 contentType=text/html; charset= UTF-8%
以UTF-8为例子,jsp页面加上上面一句就能解决页面编码问题。
其中pageEncoding= UTF-8是解决页面java代码模块编码,contentType=text/html; charset= UTF-8是解决页面静态部分的编码。
好了,第一步轻松解决。准备开始第二步,但是在第二步之前,先说明一下。
jsp的操作流程,是jsp接受各种请求,然后转给servlet处理。在这个过程中会有中文乱码产生。知道了这个乱码产生的原因,就容易办了,接下来就是第二步了。
第二步:
我这里用到了Struts2.2.1,目前较新版本吧。我们到知道,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, ServletRes
文档评论(0)