[總結]過濾器(Filter)和攔截器(Interceptor)的區別

 

攔截器

過濾器

實現

java反射

函數回調

規範

spring框架

servlet規範

依賴

不依賴servlet容器

,依賴於web框架(比如springMVC)

依賴servlet容器

作用範圍

action請求,spring中是contgroller

幾乎所有請求起作用(除了web程序,也可以用於Application,Swing)

使用spring資源(訪問上下文,值棧裏的對象,獲取IOC容器中的各個bean)

可以

不可以

在action的生命週期中,調用次數

可以多次

只能在容器初始化時調用一次(注意:有時候我們的項目看起來可能調用一次請求,但實際過濾多次,是因爲非動、靜態資源分離的項目,請求又附帶的靜態資源,導致過濾器觸發多次)

觸發時機

請求進入servlet後,但請求進入controller之前。

請求結束返回,是在controller處理完後,返回給servlet之前。

請求進入容器後,但請求進入servlet之前。

請求結束返回,是在servlet處理完後,返回給前端之前。

傳參

HttpServletRequest/Response

ServletRequest/Response

 

 

 

 

 

 

參考文章:

攔截器和過濾器的區別 - THISISPAN - 博客園 https://www.cnblogs.com/panxuejun/p/7715917.html

 

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