SpringBoot整合Filter過濾器的兩種方式:
1.通過掃描注解完成Filter組件注冊
-
創建一個類,實作Filter介面,實作doFilter()方法
-
在該類使用注解@WebFilter,設定filterName與urlPatterns
-
在doFilter中撰寫代碼
-
撰寫啟動類:增加注解@ServletComponentScan
/**
* SpringBoot整合Filter 方式一
*/
//@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");
}
}
@SpringBootApplication
@ServletComponentScan
public class App {
public static void main(String[] args) {
SpringApplication.run(App.class, args);
}
}
urlPatterns 是陣列型別的,可以攔截多個 例如:urlPatterns= {".do",".jsp"}
2.通過方法完成Filter組件注冊
- 創建一個類,實作Filter介面,實作doFilter()方法
- 撰寫啟動類
- 添加一個方法,回傳值必須是FilterRegistrationBean的物件,他能夠創建Filter物件的實體物件
- 創建FilterRegistrationBean物件,傳入實體化的Filter物件
- 添加Url,bean.addUrlPatterns();
- 回傳FilterRegistrationBean物件
- 在此方法上增加@Bean的注解
/**
* 注冊Filter
*/
@Bean
public FilterRegistrationBean getFilterRegistrationBean() {
FilterRegistrationBean bean = new FilterRegistrationBean(new SecondFilter());
//bean.addUrlPatterns(new String[] {"*.do","*.jsp"});
bean.addUrlPatterns("/second");
return bean;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/65085.html
標籤:Java
上一篇:國人開源了一款超好用的 Redis 客戶端,真香!!
下一篇:Java集合類常用方法時間復雜度
