这篇文章主要介绍了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请求
针对得到请求,可以配置服务器雄猫的conf\server.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模式
/过滤器-映射
!-=================结束配置春天的字符编码过滤器================-
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。