一次请求会经过过滤器两次,一次是访问资源前,一次是访问资源后,
但是在做一个springboot项目时发现发送一个请求在访问Controller前,过滤了四次,返回来时又是四次,加起来就是八次
首先检查是否请求了两次:
发现除了自己定义的请求外还会请求这个小图标(发出网页请求时,浏览器默认会自动请求favicon.ico
文件,浏览器默认请求http://域名+favicon.ico,详情连接:{https://www.cnblogs.com/jusha/p/11979734.html})
由于配置的过滤器规则为@WebFilter("/*")
所以springboot在找小图标时的请求也会过滤一遍
这下发现访问Controller前过滤次数减少了一半
继续检查是否过滤器运行了两次
发现由于我需要在过滤器中注入一个对象,所以把它交给了spring容器扫描了一次
然后在springboot启动类又加了扫描servlet的注解
所以这个过滤器运行了两次,去掉servlet扫描注解,ok