一、引言
上一篇文章学习了java三大器的拦截器,拦截器主要是针对于action请求进行拦截处理的,那么对于requst的一些信息如果在调用前,想先进行过滤和处理,那么就要使用到第二个神器,也就是本文的主角过滤器~那首先先简单了解一下过滤器的基本原理。
概念:拦截request进行处理后再交给下一个过滤器或servlet处理的中间组件,也可以对返回的response进行拦截处理。
作用域:在服务器启动时就会创建的,只会创建一个实例,常驻内存。
应用场景:统一设置编码格式、访问权限控制、敏感字符过滤、自动登录等。
下面通过代码来看下过滤器的几个应用场景~
二、代码实现
实现过滤器功能,我们得先进行一些前期的配置:
按照上图配置好了以后,重启SpringBoot项目时,我们自定义的过滤器就能生效了
字符编码过滤器
源码贴上了,来简单解析一下:
我们常用的过滤器配置有一下几种:
urlPatterns:配置要拦截的资源
- 1、以指定资源匹配。例如"/login.html"
- 2、以目录匹配。例如"/user/login/*"
- 3、以后缀名匹配,例如"*.html"
- 4、通配符,拦截所有web资源。"/*"
initParams:配置初始化参数
- 使用@WebInitParam注解来配置,如:@WebInitParam(name = "charset", value = "utf-8")
参考文章:
- Java Web之过滤器(Filter)
- SpringBoot下,利用@WebFilter配置使用与注意Filter