springboot中的filter用法
阿新 • • 發佈:2019-01-04
一.前言
首先比較下過濾器filter和攔截器intercept的差別,兩個有點像,但實際有所差別,過濾器和攔截器在對請求進行攔截時,一個是發生的時機不一樣,filter是在servlet容器外,interceptor在servlet容器內,且可以對請求的3個關鍵步驟進行攔截處理。另外filter在過濾是隻能對request和response進行操作,而interceptor可以對request、response、handler、modelAndView、exception進行操作。
二.基本用法
1.Application添加註解
@EnableAutoConfiguration
@ServletComponentScan
@ComponentScan("com.example.sso_client")
2.新增Fileter測試
@WebFilter(filterName = "filter", urlPatterns = "/*")
public class MyFilter implements Filter {
@Override
public void init(FilterConfig config) throws ServletException {
System.out.println("過濾器初始化");
}
@Override
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
System.out.println("執行過濾操作");
chain.doFilter(request, response);
}
@Override
public void destroy () {
System.out.println("過濾器銷燬");
}
}