Java|Java CharacterEncodingFilter案例详解
一、什么是CharacterEncodingFilter
官方解释如下
文章图片
是spring内置过滤器的一种,用来指定请求或者响应的编码格式。在web开发中经常被从来使用
二、CharacterEncodingFilter的用法
在web.xml中的配置
characterEncodingFilter org.springframework.web.filter.CharacterEncodingFilter encodingUTF-8 forceEncodingtrue characterEncodingFilter /*
其中encoding用来指定编码格式,forceEncoding表示是否强制response的编码格式也是encoding格式
三、CharacterEncodingFilter 原理
服务器启动的时候就会创建Filter,将init-param中的参数加载,注入到CharacterEncodingFilter 类中,浏览器每次发送请求都会经过这个过滤器,然后调用doFilterInternal
CharacterEncodingFilter 类图
![Java|Java CharacterEncodingFilter案例详解](https://img.it610.com/image/info11/8d66535eca8144c798f353a27c9cf03c.jpg)
文章图片
可以看到CharacterEncodingFilter继承OncePerRequestFilter,OncePerRequestFilter是个抽象类,其中的抽象方法doFilterInternal被CharacterEncodingFilter实现,同时OncePerRequestFilter实现了doFilter方法,调用了doFilterInternal方法。
doFilterInternal方法
@Override protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain)throws ServletException, IOException {if (this.encoding != null && (this.forceEncoding || request.getCharacterEncoding() == null)) {request.setCharacterEncoding(this.encoding); if (this.forceEncoding) {response.setCharacterEncoding(this.encoding); }}filterChain.doFilter(request, response); }
【Java|Java CharacterEncodingFilter案例详解】到此这篇关于Java CharacterEncodingFilter案例详解的文章就介绍到这了,更多相关Java CharacterEncodingFilter内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
推荐阅读
- JAVA(抽象类与接口的区别&重载与重写&内存泄漏)
- 考研英语阅读终极解决方案——阅读理解如何巧拿高分
- 事件代理
- Java|Java OpenCV图像处理之SIFT角点检测详解
- 定制一套英文学习方案
- java中如何实现重建二叉树
- 托福听力高分备考方案
- 数组常用方法一
- 【Hadoop踩雷】Mac下安装Hadoop3以及Java版本问题
- 私有化轻量级持续集成部署方案--03-部署web服务(下)