当前位置:首页 » 数据仓库 » 过滤器注解怎么配置
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

过滤器注解怎么配置

发布时间: 2023-01-26 04:42:23

‘壹’ Spring Boot-Filter过滤器使用

1、基础准备

2、编写Filter

此处我们重点关注 doFilter方法 ,编写实现类重写该方法。

Ⅰ 在自定义Filter实现类上使用@WebFilter注解;

Ⅱ 自定义filterName(随意,不要与其他Filter重复即可);

Ⅲ 定义urlPatterns此处设置为"/*",表示拦截所有请求;

Ⅰ 将传入的 request 与 response 对象转换为 Http类型 ;

Ⅱ 自定义不需要处理的URI数组

Ⅲ 获取请求URI

Ⅳ 判断本次请求

封装checkURI方法,如下:

a、注入PATH_MATCHER,用于路径比较,如下:

b、方法体,如下:

Ⅴ 不需要拦截,则直接放行

Ⅵ 其余路径,判断登录状态

a、已登录,则放行

BaseContext是自定义存储线程userId的类

b、未登录,拦截

自定义常量

拦截,此处使用response向前端返回响应数据R.error(NOT_LOGIN)

3、扫描Filter

在启动类上添加 @ServletComponentScan注解 ,用于扫描 @WebFilter 注解 ,如下:

4、测试

编写Controller类,启动测试。

以上即为Filter基础使用的内容,感谢阅读。

‘贰’ Filter简述和@Filter注解使用

Filter主要用于对用户请求进行预处理,也可以对请求的响应结果进行后续处理。它与Servlet的区别在于,不能直接向用户生成响应结果。

用户发送请求,Filter首先拦截用户请求进行预处理,接着将请求交给Servlet进行处理并生成响应,最后Filter再对服务器响应结果进行后续处理。

(1)根据需要可以检查并修改HttpServletRequest请求头和请求数据。

(2)根据需要可以检查并修改HttpServletResponse响应头和响应数据。

(1)权限过滤:Filter负责对请求进行权限检查,过滤非法请求。

(2)日志记录:对某些特殊操作进行日志记录。

(3)设置字符集。

servlet3.0前,Filter的注入通常采用xml方式注入,但是在servlet3.0后,开始支持通过注解的方式进行注入。

(1)基于注解@Filter注入

采用@Filter注入时,需要通过注解 @ServletComponentScan 配置扫描路径,如果是SpringBoot项目,通常添加到启动类上。

(2)通过配置类进行注入

过滤器Filter的功能看起来和拦截器Interceptor类似,那么他们是否可以互相替换呢?具体有哪些差别呢?后面会继续分析

‘叁’ 过滤器的注解配置问题

1、通过创建FilterRegistrationBean的方式(建议使用此种方式,统一管理,且通过注解的方式若不是本地调试,如果在filter中需要增加cookie可能会存在写不进前端情况)

2、通过注解@WebFilter的方式

 

通过创建FilterRegistrationBean的方式创建多个filter以及设置执行顺序: