Filter和Interceptor

Filter:

配置filter以及filtermapping在web.xml中,在程序裏判斷URL來篩選白名單。

 

Interceptor:

使用Struts零配置時需要在Action中加入@ParentPackage的註解使其生效。

 

 比較一,filter基於回調函數,我們需要實現的filter接口中doFilter方法就是回調函數,而interceptor則基於java本身的反射機制,這是兩者最本質的區別。
 比較二,filter是依賴於servlet容器的,即只能在servlet容器中執行,很顯然沒有servlet容器就無法來回調doFilter方法。而interceptor與servlet容器無關。
 比較三,Filter的過濾範圍比Interceptor大,Filter除了過濾請求外通過通配符可以保護頁面,圖片,文件等等,而Interceptor只能過濾請求。
 比較四,Filter的過濾例外一般是在加載的時候在init方法聲明,而Interceptor可以通過在xml聲明是guest請求還是user請求來辨別是否過濾。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章