springmvc字符编码过滤器CharacterEncodingFilter的使用

springmvc字符编码过滤器CharacterEncodingFilter的使用

这篇文章主要介绍了springmvc字符编码过滤器字符编码过滤器的使用,具有很好的参考价值,希望对大家有所帮助。

字符编码过滤器CharacterEncodingFilter

一、在web.xml中的配置

!-字符编码过滤器字符编码过滤器-

过滤器

过滤器名称字符编码过滤器/过滤器名称

过滤级组织。spring框架。网络。过滤器。字符编码过滤器/过滤器类

初始化参数

!-要使用的字符集,一般我们使用UTF八号(保险起见UTF-8最好) -

参数名称编码/param-name

参数值utf-8/参数值

/init-param

初始化参数

!-是否强制设置请求的编码为编码,默认假的,不建议更改-

param-name for request encoding/param-name

参数值价值参数值

/init-param

初始化参数

!-是否强制设置反应的编码为编码,建议设置为没错,下面有关于这个参数的解释-

param-name for responseeencoding/param-name

参数值真实/参数值

/init-param

/过滤器

过滤映射

过滤器名称字符编码过滤器/过滤器名称

!-这里不能留空或者直接写/ ,否者不起作用-

全球资源定位器(Uniform Resource Locator)模式/*/url模式

/过滤器-映射

二、CharacterEncodingFilter过滤器类浅析

打开该类源码,可以看到该类有三个类属性

私有字符串编码;//要使用的字符集,一般我们使用UTF八号(保险起见UTF-8最好)

private boolean forceRequestEncoding=false;//是否强制设置请求的编码为编码

私有布尔强制响应编码=false//是否强制设置反应的编码为编码

主要方法只有一个,也就是下面这个,代码逻辑很简单,如注释所解释

@覆盖

受保护的void doFilterInternal(http servlet请求请求,HttpServletResponse响应滤波器链滤波器链)引发ServletException,IOException {

字符串编码=get编码();

如果(编码!=null) { //如果设置了编码的值,则根据情况设置请求和反应的编码

//若设置请求强制编码或请求本身就没有设置编码

//则设置编码为编码表示的值

if(isForceRequestEncoding()| |请求。getcharacterencoding()==null){

request.setCharacterEncoding(编码);

}

//若设置反应强制编码,则设置编码为编码表示的值

if(isForceResponseEncoding()){//请注意这行代码,下面有额外提醒

response.setCharacterEncoding(编码);

}

}

filterChain.doFilter(请求,响应);

}

# 额外提醒

if (isForceResponseEncoding()) {

response.setCharacterEncoding(编码);

}

是在

filterChain.doFilter(请求,响应);

之前执行的,这也就是说这段代码的作用是设置反应的默认编码方式,在之后的代码里是可以根据需求设置为其他编码的,即这里设置的编码可能不是最终的编码,网上很多文档说这里设置的是最终的编码方式,这是错的。

SpringMVC配置字符编码过滤器CharacterEncodingFilter来解决表单乱码问题

1、GET请求

针对得到请求,可以配置服务器雄猫的

confserver.xml

文件,在其第一个

Connector

标签中,添加

URIEncoding="UTF-8"

即可,如下所示:

连接器uri编码= UTF-8 端口= 8080 协议= HTTP/1.1 连接超时= 20000 重定向端口= 8443 /

2、POST请求

但是,针对邮政请求,仅配置雄猫的server.xml文件中的连接器标签不足以解决乱码问题,因此,需要利用春天的

字符编码过滤器

:

org。spring框架。网络。过滤器。字符编码过滤器

步骤:配置所开发项目的web.xml文件,添加以下内容至文件开头处即可:

!-================开始配置春天的字符编码过滤器================-

过滤器

!-解决邮政乱码问题需要配置春天编码过滤器-

过滤器名称字符编码/过滤器名称

过滤级组织。spring框架。网络。过滤器。字符编码过滤器/过滤器类

初始化参数

参数名称编码/param-name

参数值utf-8/参数值

/init-param

/过滤器

过滤映射

过滤器名称字符编码/过滤器名称

全球资源定位器(Uniform Resource Locator)模式/*/url模式

/过滤器-映射

!-=================结束配置春天的字符编码过滤器================-

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

springmvc字符编码过滤器CharacterEncodingFilter的使用