SpringBoot Filter 配置 过滤拦截的两种方式

断了今生、忘了曾经 提交于 2020-10-29 13:34:00

1.通过扫描注解完成Filter组件注册

  1. 创建一个类,实现Filter接口,实现doFilter()方法

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

  3. 在doFilter中编写代码

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

   /**
    * SpringBoot整合Filter 方式一 项目 www.fhadmin.org
    */
   //@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.fhadmin.org
@SpringBootApplication @ServletComponentScan public 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.fhadmin.org
	 */ 
	@Bean
	public FilterRegistrationBean getFilterRegistrationBean() {
		FilterRegistrationBean bean  = new FilterRegistrationBean(new SecondFilter());
		//bean.addUrlPatterns(new String[] {"*.do","*.jsp"});
		bean.addUrlPatterns("/second");
		return bean;
	}

 


易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!