千家信息网

SpringBoot 中怎么配置 Filter 过滤拦截

发表于:2024-12-12 作者:千家信息网编辑
千家信息网最后更新 2024年12月12日,这篇文章将为大家详细讲解有关SpringBoot 中怎么配置 Filter 过滤拦截,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1.通过扫描注解完成
千家信息网最后更新 2024年12月12日SpringBoot 中怎么配置 Filter 过滤拦截

这篇文章将为大家详细讲解有关SpringBoot 中怎么配置 Filter 过滤拦截,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

1.通过扫描注解完成Filter组件注册
  1. 创建一个类,实现Filter接口,实现doFilter()方法

  2. 在该类使用注解@WebFilter,设置filterNameurlPatterns

  3. 在doFilter中编写代码

  4. 编写启动类:增加注解@ServletComponentScan

   /**    * SpringBoot整合Filter 方式一 项目 www.1b23.com    */   //@WebFilter(filterName="FirstFilter" , urlPatterns= {"*.do","*.jsp"})   @WebFilter(filterName="FirstFilter" , urlPatterns= "/first")   public class FirstFilter implements Filter {            @Override         public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)                         throws IOException, ServletException {                 System.out.println("进入Filter");                 chain.doFilter(request, response);                 System.out.println("离开Filter");         }   }
//项目 www.1b23.com@SpringBootApplication@ServletComponentScanpublic class App {        public static void main(String[] args) {               SpringApplication.run(App.class, args);        }}

urlPatterns 是数组类型的,可以拦截多个 例如:urlPatterns= {".do",".jsp"}

2.通过方法完成Filter组件注册
  1. 创建一个类,实现Filter接口,实现doFilter()方法

  2. 编写启动类

    • 添加一个方法,返回值必须是FilterRegistrationBean的对象,他能够创建Filter对象的实例对象

    • 创建FilterRegistrationBean对象,传入实例化的Filter对象

    • 添加Url,bean.addUrlPatterns();

    • 返回FilterRegistrationBean对象

    • 在此方法上增加@Bean的注解

/**         * 注册Filter项目 www.1b23.com         */         @Beanpublic FilterRegistrationBean getFilterRegistrationBean() {                FilterRegistrationBean bean  = new FilterRegistrationBean(new SecondFilter());            //bean.addUrlPatterns(new String[] {"*.do","*.jsp"});                bean.addUrlPatterns("/second");               return bean;        }

关于SpringBoot 中怎么配置 Filter 过滤拦截就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

0