SpringBoot实现过滤器Filter

Filter介绍

Filter的定义是在请求一个资源或者从一个资源返回信息的时候执行过滤操作的插件。Servlet API中提供了一个Filter接口,开发web应用时,如果编写的Java类实现了这个接口,则把这个java类称之为过滤器Filter。通过Filter技术,开发人员可以实现用户在访问某个目标资源之前,对访问的请求和响应进行拦截,一般常用于实现URL级别的权限访问控制、过滤敏感词汇、压缩响应信息等一些高级功能。

方法定义

//该方法在客户端请求及服务器端回复时都将被自动调用
public void doFilter (ServletRequest, ServletResponse, FilterChain)

//初始化配置参数,在doFilter()方法之前被调用
public void init(FilterConfig filterConfig)

//结束过滤器,doFilter()方法完成后被调用
public void destroy()

实现方式

方法一:@WebFilter注解方式

实现javax.servlet.Filter接口,例如Afilter类和Bfilter类并添加上@WebFilter(“/wsm”),同时启动类DemoApplication需加上@ServletComponentScan,执行顺序是按类的开头字母执行,设置@Order()是无用的。
SpringBoot实现过滤器Filter_第1张图片

SpringBoot实现过滤器Filter_第2张图片
SpringBoot实现过滤器Filter_第3张图片

方法二:Java Config 配置类

通过FilterRegistrationBean类注入Filter实现类。
SpringBoot实现过滤器Filter_第4张图片
注:
网上还有说通过@Component+@WebFilter方式实现过滤,配置urlPatterns发现不能根据路径过滤,发现都会被过滤。

你可能感兴趣的:(Spring,Boot,spring,boot,servlet,java)