Struts2 Get传值乱码过滤器

news/2024/7/3 12:00:14

问题的原因在于get传值的时候,getParameter方法使用的是ISO8859-1编码,。修改一下此方法

(1)java类1:EncodeRequestWrapper.java

public class EncodeRequestWrapper extends HttpServletRequestWrapper {
 
 private HttpServletRequest request;
 public EncodeRequestWrapper(HttpServletRequest request) {
  super(request);
  this.request = request;
 }
 @Override
 public String getParameter(String name) {
  String value = request.getParameter(name);
  try {
   if(value != null) return new String(value.getBytes("ISO8859-1"),"utf-8");
  } catch (UnsupportedEncodingException e) {
   e.printStackTrace();
  }
  return super.getParameter(name);
 }
}

(2)java类2:EncodeFilter.java

public class EncodeFilter implements Filter {

 @Override
 public void destroy() {
 }

 @Override
 public void doFilter(ServletRequest request, ServletResponse response,
   FilterChain chain) throws IOException, ServletException {
  HttpServletRequest req = (HttpServletRequest) request;
  if("GET".equals(req.getMethod())){
   EncodeRequestWrapper wrapper = new EncodeRequestWrapper(req);
   chain.doFilter(wrapper, response);
  }
  else{
   req.setCharacterEncoding("utf-8");
   chain.doFilter(req, response);
  }
 }

 @Override
 public void init(FilterConfig arg0) throws ServletException {
  // TODO Auto-generated method stub

 }

}

(3)web.xml配置

<filter>
<filter-name>encodeFilter</filter-name>
<filter-class>com.test.Encode.EncodeFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodeFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

转载于:https://www.cnblogs.com/xh6210/archive/2012/08/09/2630225.html


http://www.niftyadmin.cn/n/3296581.html

相关文章

拖拽drag_html5的拖放(drag和drop)

<p>请把 W3School 的图片拖放到矩形中&#xff1a;</p><div id"div1" ondrop"drop(event)" ondragover"allowDrop(event)"></div> <br /> <img id"drag1" src"/i/eg_dragdrop_w3school.gif&quo…

Groovy创始人James Strachan博客称:Java面临终结Scala将来可能替代javac

Groovy创始人James Strachan前日在其博客上发表了一篇文章&#xff0c;题目为《Scala将取代Java /javac&#xff1f;》。以下是正文部分的翻译&#xff1a;不要误解我的意思——我在过去的这十来年里写了无数的Java代码&#xff0c;并且坚信它相对C和Smalltalk来说是一个巨大的…

Android发送信息模拟系统

Android系统中已经有了我们熟悉并常用的发送信息功能&#xff0c;在程序中叫做已经有了此Activity&#xff0c;那么有时候我们需要在编写Android程序时调用此应用程序以实现通过我们的程序发送信息。具体实现方式如下&#xff1a; 1. 建立xml布局文件&#xff0c;最终效果如下&…

Spring MVC上下文父子容器

在Spring MVC的启动依赖Spring框架&#xff0c;有时候我们在启动Spring MVC环境的时候&#xff0c;如果配置不当的话会造成一些不可预知的结果。下面主要介绍一下Spring MVC环境启动的时候context的状态。 通常情况下使用Spring MVC需要进行如下配置&#xff1a; 1、web.xml中增…

七牛云 转码_阿里云,腾讯云,金山云,七牛云的视频云方案有什么区别?

国内的视频云&#xff0c;在之前几年会有着火爆的竞争&#xff0c;以公共云作为代表的腾讯云&#xff0c;还有阿里云&#xff0c;早就已经在市场上投入大量的资金&#xff0c;准备研发视频云&#xff0c;并且还做出市场推广&#xff0c;取得较好的成绩。七牛云&#xff0c;金山…

windows编译Qt5.15 MySql驱动

本文主要简要记录下如何在Windows上编译Qt MySql驱动。细支末节难以言表&#xff0c;需要一定经验。 Qt源码中没有集成mysql的开发库文件&#xff0c;因为mysql所用开源协议与Qt不兼容。 需要从mysql官网下载mysql的安装包或者压缩包&#xff0c;mysql中自带了最新的C开发库。…

HDU 1102 Constructing Roads HDU1863 畅通工程

这两个题都是畅通工程的。杭电上真是各种畅通工程。 1102 题目链接http://acm.hdu.edu.cn/showproblem.php?pid1102 还是用的Prim算法。 View Code 1 #include<stdio.h>2 #include<string.h>3 #define N 10000004 int map[110][110],lowcost[110];5 int visi…

java 需要转义的一些特殊符号。

那么这里在列上一些转义字符 \\ 反斜杠 \t 间隔 (\u0009) \n 换行 (\u000A) \r 回车 (\u000D) \d 数字 等价于 [0-9] \D 非数字 等价于 [^0-9] \s 空白符号 [\t\n\x0B\f\r] \S 非空白符号 [^\t\n\x0B\f\r] \w 单独字符 [a-zA-Z_0-9] \W 非单独字符 [^a-zA-Z_0-9] \f 换页符 \…