springboot自定义过滤器与SpringMVC过滤器的区别

springboot 专栏收录该内容
3 篇文章 0 订阅

在新项目中,有些接口,在调用之前,需要进行一系列的验证,需要过滤功能

[SpringMVC方式]

在实现Spring Boot项目中的过滤器之前,先回顾下SpringMVC框架的项目中,自定义过滤器是如何实现的

-自定义过滤器类,实现Filter,代码如下:

public class LoginFilter implements Filter{

    @Override
    public void init(FilterConfig filterConfig) throws ServletException {

    }

    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {

    }

    @Override
    public void destroy() {

    }
}

-在web.xml中配置,什么情况下需要进行过滤

-如果请求匹配到多个过滤器,则执行的顺序按照在xml中的配置的顺序来.所以如果需要考虑filter的执行顺序,按顺序配置

<filter>
  <filter-name>loginFilter</filter-name>
   <filter-class>com.springmvc.LoginFilter</filter-class>
</filter>
<filter-mapping>
   <filter-name>loginFilter</filter-name>
   <url-pattern>/*</url-pattern>
</filter-mapping>

[SpringBoot方式]

在springboot项目中,省去了springmvc的xml配置代码,直接一个类上加上几个注解即可实现自定义的过滤器

@Component
@ServletComponentScan
@WebFilter(urlPatterns = "/login/*",filterName = "loginFilter")
@Order(1)
public class LoginFilter implements Filter{

    @Override
    public void init(FilterConfig filterConfig) throws ServletException {

    }

    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {

    }

    @Override
    public void destroy() {

    }
}

-@Component 这个注解的目的是将LoginFilter交给容器来处理,也就是让loginFilter起作用

-@ServletComponentScan 这个是用来扫描@WebFilter的,让@WebFilter起作用

-@WebFilter 是用来配置针对于什么链接做过滤,filter的名称是什么

-@Order是用来定义过滤器的执行顺序,多个过滤器的情况下,值越小,过滤器越先被执行.

  • 0
    点赞
  • 0
    评论
  • 1
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

©️2022 CSDN 皮肤主题:深蓝海洋 设计师:CSDN官方博客 返回首页

打赏作者

㏑Max

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值