Python 官方文档:入门教程 => 点击学习
前言: 要想使用 filter,需要写一个方法继承 Filter 类,我们写如下两个自己的 Filter 类,首先是 FirstFilter 类,其中
前言:
要想使用 filter,需要写一个方法继承 Filter 类,我们写如下两个自己的 Filter 类,首先是 FirstFilter
类,其中 @Order
里边的数字越小代表越先被该 Filter 过滤,@WEBFilter
代表这是个 Filter 类并把这个类注入到容器中:
@Order(1)
@WebFilter(filterName="firstFilter", urlPatterns="
@Order(2)
@WebFilter(filterName="secondFilter", urlPatterns="
@RestController
public class TestController {
@GetMapping("/test1")
public String test1() {
System.out.println("method in controller");
return "test1";
}
}
最后是 Spring Boot 的主方法入口,注意,由于我们使用注解注入的 Filter,所以要在下边这个 Application 类中加入@ServletComponentScan
注解:
@SpringBootApplication
@ServletComponentScan
public class ExecutorTestApplication {
public static void main(String[] args) {
ConfigurableApplicationContext applicationContext = springApplication.run(ExecutorTestApplication.class, args);
}
}
首先我们先来看一下执行结果,启动后访问 127.0.0.1:8080/test1
,在后台中打印如下信息:
我们可以看出代码执行的流程:
所以如果在自己实现的 Filter 类的 doFilter 方法里不加 chain.doFilter(req, rep) 是不行的,那样会导致请求到了这个 filter 里就不再往下走了,永远进不了 controller 中。
我们也可以在 print("before:" + response) 和 print("after:" + response) 这两个地方打上断点,然后调试一下,会发现在 before 那里的 response 里是什么都么有的,而在 after 那里的 response 里则是已经有了 test1 字符串,也就是说 controller 类 test1 方法的返回值已经添加进了 response,所以如果想要对请求的 response 做一下过滤处理,那么要在 chain.doFilter(res, rep) 之后写你的逻辑。
到此这篇关于Spring Boot Filter 过滤器的使用方式的文章就介绍到这了,更多相关Spring Boot Filter 过滤器 内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!
--结束END--
本文标题: SpringBootFilter过滤器的使用方式
本文链接: https://lsjlt.com/news/167935.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0