专栏首页北漂的我SpringBoot 的过滤器 Filter 配置

SpringBoot 的过滤器 Filter 配置

SpringBoot 过滤器配置有三种方式

1. @ServletComponentScan + @WebFilter, 可配置过滤路径, 但没有顺序(顺序是由过滤器命名决定)

在启动类上使用 @ServletComponentScan, 在过滤器类上使用 @WebFilter(urlPatterns = {"/test/path"})

@SpringBootApplication
@ServletComponentScan
public class ServicemapServicecenterBackendApplication {

	public static void main(String[] args) {
		SpringApplication.run(ServicemapServicecenterBackendApplication.class, args);
	}
}
@WebFilter(urlPatterns = {"/test"})
public class FilterTwo extends OncePerRequestFilter {

	@Override
	protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException {
		System.out.println("************************** FilterTwo **************************");
		filterChain.doFilter(request, response);
	}

}

2. @Component + @Order(100), 不可配置过滤路径, 可以通过@Order配置顺序

在过滤器类上使用 @Component , @Order(100) 数值越小优先级越高

@Component
@Order(100)
public class FilterOne extends OncePerRequestFilter {

	@Override
	protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException {
		System.out.println("************************** FilterOne **************************");
		filterChain.doFilter(request, response);
	}
}

3. @SpringBootConfiguration + @Order, 可配置过滤路径, 可以通过@Order配置顺序, 也可以在代码中setOrder(100)配置 (推荐方式)

@Order(100)
public class FilterOne extends OncePerRequestFilter {

	@Override
	protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException {
		System.out.println("************************** FilterOne **************************");
		filterChain.doFilter(request, response);
	}
}
@SpringBootConfiguration
public class FilterConfig {

	@Bean
	public FilterRegistrationBean<FilterOne> filterOneRegister() {
		FilterRegistrationBean<FilterOne> filterRegistrationBean = new FilterRegistrationBean<>();
		filterRegistrationBean.setFilter(new FilterOne());
		filterRegistrationBean.addUrlPatterns("/*");
//		filterRegistrationBean.setOrder(100);
		return filterRegistrationBean;
	}
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • springboot|springboot配置Filter过滤器

    在阅读本文前,强烈建议大家先阅读前一篇 springboot|springboot配置拦截器

    微笑的小小刀
  • SpringBoot过滤器Filter

    FilterRegistrationBean 能够在 Servlet 3.0 + 容器注册过滤器,作为一个Spring bean注册的. 它的一些方法如下:

    lyb-geek
  • java过滤器——filter的使用和配置

    版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/huyuyang6688/article/...

    DannyHoo
  • SpringBoot设置Filter过滤请求参数

    在使用springBoot进行项目开发时,遇到的需求是需要对用户上传的数据进行过滤,比如去除“< ' ^ %”等敏感字符。自己在做的时候想到了两个办法去实现。

    算法与编程之美
  • Filter过滤器

    Filter接口和Servlet的接口是非常类似的,它里面只有三个方法。 1.Filter接口 init Filter创建的时候,启动服务器的时候创建Filt...

    lwen
  • Filter过滤器

    web.xml中元素执行的顺序listener->filter->struts拦截器->servlet。 1.过滤器的概念 Java中的Filter 并不是一个...

    汤高
  • Filter 过滤器

    一、过滤器Filter 1.filter的简介 filter是对客户端访问资源的过滤,符合条件放行,不符合条件不放行,并且可以对目 标资源访问前后进行逻辑处理 ...

    用户5927264
  • 过滤器Filter

    1什么是过滤器

    木瓜煲鸡脚
  • Java ---Filter过滤器

         Filter可以视作是servlet的加强版,主要用作对用户的请求进行预处理,或者对返回给客户端的结果进行再次加工,是一个典型的链式处理模式。本篇简单...

    Single

扫码关注云+社区

领取腾讯云代金券