filter 和 interceptor

1、filter基於filter接口中的doFilter回調函數,interceptor則基於Java自己的反射機制;

2、filter是依賴於servlet容器的,沒有servlet容器就沒法回調doFilter方法,而interceptor與servlet無關;

3、filter的過濾範圍比interceptor大,filter除了過濾請求外經過通配符能夠保護頁面、圖片、文件等,而interceptor只能過濾請求,只對action起做用,在action以前開始,在action完成後結束(如被攔截,不執行action);

4、filter的過濾通常在加載的時候在init方法聲明,而interceptor能夠經過在xml聲明是guest請求仍是user請求來辨別是否過濾;

5、interceptor能夠訪問action上下文、值棧裏的對象,而filter不能;

6、在action的生命週期中,攔截器能夠被屢次調用,而過濾器只能在容器初始化時被調用一次。函數

相關文章
相關標籤/搜索