過濾器(6) 過濾器的攔截

2021-09-28 22:44:37 字數 1766 閱讀 6546

本系列部落格彙總在這裡:過濾器彙總

我們來做個測試,寫乙個過濾器,指定過濾的資源為 index.jsp,然後我們在瀏覽器中直接訪問 index.jsp,你會發現過濾器執行了!

但是,當我們在 helloservlet 中使用伺服器端的跳轉request.getrequestdispathcer(「/index.jsp」).forward(request,response);時,就不會再執行過濾器了!也就是說,預設情況下,只能直接訪問目標資源才會執行過濾器,而伺服器端跳轉(forward)執行目標資源,不會執行過濾器!

從上面的現象我們可以看出

http://localhost:8080/filtertest/b.jsp—— 直接訪問 b.jsp 時,會執行過濾器內容;

http://localhost:8080/filtertest/a.jsp—— 訪問 a.jsp(或者 servlet),但 a.jsp 會forward到 b.jsp,這時就不會執行過濾器!

requestforward:**訪問執行過濾器。包括 requestdispatcher#forward() 方法、標籤都是**訪問。

include:包含訪問執行過濾器。包括requestdispatcher#include()方法、標籤都是包含訪問。

error:當目標資源在 web.xml 中配置為中時,並且真的出現了異常,**到目標資源時,會執行過濾器。

(1)直接訪問(request)

(2)**訪問(forward)

(3)包含訪問(include)

配置設定攔截方式新增包含訪問(include)以後發現過濾器執行了!

(4)錯誤頁面(error)

配置設定攔截方式新增錯誤頁面(error)以後發現過濾器執行了!

其實最為常用的就是 request 和 forward 兩種攔截方式,而 include 和 error 都比較少用!其中 include 比較好理解,而 error 方式不易理解!

如有錯誤,歡迎指正!

Vue 過濾器案例(全域性過濾器和區域性過濾器)

doctype html en utf 8 viewport content width device width,initial scale 1.0 js vue 2.4.0 js script 過濾器 title head 兩個過濾器的名稱都為msgformat,但是控制不同作用,乙個是全域性的...

hbase 過濾器 scala 過濾器系列

過濾器系列710 c30810 賓士 c64 1500 004 09411 04 004094 3504 h12 110 2 w11102 2 wdk724 wdk725 沃爾沃 3825778 8149064 3825133 3825215 466634 11110668 11711074 477...

MVC過濾器 過濾器執行順序

如果某個action過濾器運用了多種過濾器,那麼過濾器的執行順序是如何呢?即執行順序是 授權過濾器 動作過濾器 結果過濾器 異常過濾器。注意 如果actionfilter過濾器執行過程中發生了異常,那麼會執行exceptionfilter過濾器,不會執行resultfilter過濾器。上圖所示的是正...