您当前的位置: 首页 >  spring

梁云亮

暂无认证

  • 2浏览

    0关注

    1211博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

SpringBoot 自定义过滤器

梁云亮 发布时间:2020-06-04 11:07:52 ,浏览量:2

利用WebFilter注解实现 第一步:创建SpringBoot项目,添加依赖

    org.springframework.boot
    spring-boot-starter-web

第二步:自定义Filter
  • MyFilter1
@WebFilter(filterName = "bb" , urlPatterns = {"/*"})
//@Order(10)//指定过滤器的执行顺序,值越大越靠后执行
public class MyFilter1 implements Filter {
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
        System.out.println("MyFilter11 初始化");
    }
    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws IOException, ServletException {
        System.out.println("MyFilter11 请求处理之前");
        //将请求传递给下一个过滤器
        filterChain.doFilter(request, response);
        System.out.println("MyFilter11 请求处理之后");
    }
    @Override
    public void destroy() {
        System.out.println("MyFilter11 销毁");
    }
}
  • MyFilter2
@WebFilter(filterName = "aa",urlPatterns = {"/*"})
//@Order(2)
public class MyFilter2 implements Filter {
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
        System.out.println("MyFilter12 初始化");
    }
    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws IOException, ServletException {
        System.out.println("MyFilter12 请求处理之前");
        //将请求传递给下一个过滤器
        filterChain.doFilter(request, response);
        System.out.println("MyFilter12 请求处理之后");
    }
    @Override
    public void destroy() {
        System.out.println("MyFilter12 销毁");
    }
}
第三步:后台Controller
@RestController
@ServletComponentScan
public class DemoController {
    @RequestMapping("/fun")
    public void fun(){
        System.out.println("fun");
    }
}

部署项目,请求Controller,结果: 在这里插入图片描述

使用代码注册的方式 第一步:创建SpringBoot项目,添加依赖

    org.springframework.boot
    spring-boot-starter-web

第二步:自定义Filter

 MyFilter1

public class MyFilter1 implements Filter {
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
        System.out.println("MyFilter21 初始化");
    }
    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws IOException, ServletException {
        System.out.println("MyFilter21 请求处理之前");
        //将请求传递给下一个过滤器
        filterChain.doFilter(request, response);
        System.out.println("MyFilter21 请求处理之后");
    }
    @Override
    public void destroy() {
        System.out.println("MyFilter21 销毁");
    }
}
  • MyFilter2
public class MyFilter2 implements Filter {
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
        System.out.println("MyFilter22 初始化");
    }
    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws IOException, ServletException {
        System.out.println("MyFilter22 请求处理之前");
        //将请求传递给下一个过滤器
        filterChain.doFilter(request, response);
        System.out.println("MyFilter22 请求处理之后");
    }
    @Override
    public void destroy() {
        System.out.println("MyFilter22 销毁");
    }
}
  • 配置Filter
@Configuration
public class FilterRegistration {
    @Bean
    public FilterRegistrationBean filterRegistrationBean1(){
        FilterRegistrationBean registration = 
					new FilterRegistrationBean();
        registration.setFilter(myFilter1());
        registration.setName("myFilter1");
        registration.addUrlPatterns("/*");
        registration.setOrder(9);
        return registration;
    }
    @Bean
    public Filter myFilter1(){
        return new MyFilter1();
    }
    @Bean
    public FilterRegistrationBean filterRegistrationBean2(){
        FilterRegistrationBean registration = 
					new FilterRegistrationBean();
        registration.setFilter(myFilter2());
        registration.setName("myFilter2");
        registration.addUrlPatterns("/*");
        registration.setOrder(3);
        return registration;
    }
    @Bean
    public Filter myFilter2(){
        return new MyFilter2();
    }
}
第三步:后台Controller
@RestController
@ServletComponentScan
public class DemoController {
    @RequestMapping("/fun")
    public void fun(){
        System.out.println("fun");
    }
}

部署项目,请求Controller,结果: 在这里插入图片描述

关注
打赏
1665409997
查看更多评论
立即登录/注册

微信扫码登录

0.0436s