SSH项目中,解决中文请求参数乱码,Filter过滤器不起作用的问题

1.web.xml配置如下(必须放在Struts2配置之前)

<!-- 字符编码过滤器配置-->

<filter>
<filter-name>CharEncodingFilter</filter-name>
<filter-class>com.crm.tools.CharEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CharEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

<!-- Struts2过滤器配置-->
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

<!-- 其它配置-->

2.Filter类

package com.crm.tools;

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 javax.servlet.annotation.WebFilter;

/**
 * 字符过滤器
 */
@WebFilter("/CharEncodingFilter")
public class CharEncodingFilter implements Filter {
    //设置为UTF-8
	public void doFilter(ServletRequest request, ServletResponse response,
			FilterChain chain) throws IOException, ServletException {
		request.setCharacterEncoding("UTF-8");
		response.setCharacterEncoding("UTF-8");
		chain.doFilter(request, response);
	}
    //初始化
	public void init(FilterConfig filterConfig) throws ServletException {

	}
    //销毁
	public void destroy() {
	}

}

 3.表单请求(注意:必须制定method为post)

<form action="此处是请求的地址" method="post">

</form>

Notes:

字符编码过滤器必须放在其它过滤器之前,还有请求的表单必须为post,反正我试过,不指定method属性进行提交的话,会出现乱码

时间: 2024-10-25 22:01:18

SSH项目中,解决中文请求参数乱码,Filter过滤器不起作用的问题的相关文章

jsp中Get方式请求参数乱码的两种解决方式

第一种方式: <% //获取请求包含的下旬字符串 String rawQueryStr=request.getQueryString(); //使用URLDecoder解码祖父穿 String queryStr=URLDecoder.decode(rawQueryStr, "UTF-8"); //以&符号分解查询字符串 String paramPairs[]=queryStr.split("&"); for(String paramPair:p

SSH开发中解决mysql数据库的乱码问题

(1)第一点要保证 就是创建数据库的时候 使用的编码方式 和连接数据库的 编码格式是一样的! (2)在web.xml文件中配置过滤器(由spring提供的过滤器) <filter> <filter-name>encoding</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param

利用jQuery 解决URL请求参数有中文时出现乱码的问题

利用jQuery 解决URL请求参数有中文时出现乱码的问题 在开发的时候经常会碰到URL中请求参数含有中文的情况,这时如果在前台不作处理,直接在后台利用request.getParameter()拿对应的参数值就会出现中文乱码. 这时可以先利用jQuery对对应中文进行encodeURI(),例子如下: 前台对应代码 <!--省畋无关代码--> <input type="button" id="submitA" value="重发短信&q

SpringMVC 完美解决PUT请求参数绑定问题(普通表单和文件表单)

一 解决方案 修改web.xml配置文件 将下面配置拷贝进去(在原有的web-app节点里面配置 其它配置不变) <!-- 处理PUT提交参数(只对基础表单生效) --> <filter> <filter-name>httpPutFormContentFilter</filter-name> <filter-class>org.springframework.web.filter.HttpPutFormContentFilter</filt

请求参数的绑定 请求参数乱码问题

绑定的机制 表单中请求参数都是基于 key=value 的 SpringMVC 绑定请求参数的过程是通过   把表单提交请求参数,作为控制器中方法参数   进行绑定的 例如: <a href="account/findAccount?accountId=10">查询账户</a> 中请求参数是:   accountId=10 /** * 查询账户 * @return */ @RequestMapping("/findAccount") publ

Visual Studio Code 1.44 解决中文代码显示乱码问题(小白图文教程)

现今主流的计算机中文字符编码方案是:GBK和UTF-8. 不同编码方案使用不同的字符集,GBK字符集在中文字符长度和字符数量上存在绝对优势,但对国外字符并不支持.所以,完全面向国内的程序/网页使用的是GBK字符集的GBK编码,而面向国外或面向国内兼国外的程序/网页使用的是Unicode字符集的UTF-8编码. 如果在使用Visual Studio Code 1.44打开源码文件时,出现乱码,那很有可能是因为该文件字符编码是GBK.(没错,Visual Studio Code 1.44默认的字符编

转 mvc项目中,解决引用jquery文件后智能提示失效的办法

mvc项目中,解决用Url.Content方法引用jquery文件后智能提示失效的办法 这个标题不知道要怎么写才好, 但是希望文章的内容对大家有帮助. 场景如下: 我们在用开发开发程序的时候,经常会引用jquery, 但是由于路由的关系,最终访问页面的地址相对js文件来说,是不固定的. 为了在view中能够引用到jquery文件,我们通常都是用如下的代码 <script src="@Url.Content("~/Scripts/jquery-1.4.4.min.js")

项目中get/post请求中文乱码的解决方案

一.解决get请求中文乱码的方案: 方案(推荐)1: 一般情况下tomcat(8之前)服务器的编码默认是ISO8859-1,所以要对get请求提交的参数进行重新编码: String userName = new String(request.getParamter("userName").getBytes("ISO8859-1"),"utf-8"); 方案(不推荐)2: 既然知道了tomcat服务器的编码默认是ISO8859-1,那么可以修改to

web项目中解决post乱码和get乱码的方法

前提复习编码问题产生的原因: 1.  什么是URL编码. URL编码是一种浏览器用来打包表单输入的格式,浏览器从表单中获取所有的name和其对应的value,将他们以name/value编码方式作为URL的一部分或者分离的发送到服务器上. 2.  URL编码规则. 每对name/value由&分开,每对来自表单的name/value用=分开.如果用户没有输入值的那个name依旧会出现不过就是没有值. URL编码是在字符ASCII码的十六进制数的前面加上%.例如\(她的十六进制数表示为5c)的UR