SpringBoot中的Filter的作用以及使用@WebFilter注解过滤

过滤器的作用

通过这个图我们可以知道,浏览器对服务器的请求会先经过过滤器再到达服务器,服务器对浏览器的响应也会先经过过滤器,最后再响应给浏览器,基于过滤器的机制我们可以在过滤器中对请求和响应做一些处理,可以在过滤器中决定是否放行,例如:校验请求中有没有敏感字符串,校验请求中有没有Session。 Filter是依赖于Servlet容器,属于Servlet规范的一部分,Filter的执行由Servlet回调完成,Filter的生命周期由Servlet容器管理,Servlet中提供的技术可以过滤浏览器发出的请求,并且决定放行请求还是中断请求。

使用@WebFilter注解过滤

1.新建一个Model 2.目录结构 3.编写过滤器配置类(继承Filter) init方法 @WebFilter注解将"/one,/two"放入到了nofilter字符串数组里,然后init方法中nofilterString将其再拿出来,判断这个字符串不为并且长度大于0,这个时候就将字符串以","分割放入到nofilter。

isNofilter方法

附上源码

4.编写controller类

5.接下来我来演示一个一个请求 /index是需要过滤的,所以执行了if else中的else,跳转到/forword Servlet。 /forword也是过滤的,会跳转到/forword

/one是不过滤的,直接访问这个页面 /two也是不过滤的,所以也是直接访问

经验分享 程序员 微信小程序 职场和发展