更新時間:2020-10-26 17:29:00 來源:動力節點 瀏覽1303次
Javaweb是學習java編程的重要內容,接觸過java的朋友們肯定都知道javaweb的重要性。在前面的文章中我們也介紹了javaweb三大組件是什么,分別是Servlet,Filter,Listener,相信大家對三大組件也有一定的了解,今天我們來更進一步的學習javaweb過濾器的相關知識。
過濾器是javaweb三大組件之一,它與Servlet很相似,但是過濾器是用來攔截請求的,而不是處理請求的。當用戶請求某個Servlet時,會先執行部署在這個請求上的Filter,如果Filter“放行”,那么會繼承執行用戶請求的Servlet;如果Filter不“放行”,那么就不會執行用戶請求的Servlet。可以這樣理解javaweb過濾器:當用戶請求某個Servlet時,Tomcat會去執行注冊在這個請求上的Filter,然后是否“放行”由Filter來決定。可以理解為,Filter來決定是否調用Servlet,當執行完成Servlet的代碼后,還會執行Filter后面的代碼。
下面是javaweb過濾器的工作流程方式:
Javaweb過濾器的作用就是攔截,有四種攔截方式:REQUEST 是默認的,當輸入其他的,那么默認的將取消(消失),請求攔的是直接請求,不攔轉發請求REQUEST;轉發(專門攔轉發):FORWARD包含(專門攔包含):INCLUDE錯誤(專門攔錯誤):ERROR。
Javaweb過濾器的應用場景:(1)執行目標資源之前做預處理工作,例如設置編碼,這種通常都會放行,只是在目標資源執行之前做一下準備工作。例如放行 :幾乎所有的servlet中都需要寫request.setCharacterEndoin()可以把它放入到一個Filter中;(2)通過條件判斷是否放行,例如效驗當前用戶是否已經登錄,或者用戶IP是否已經被禁用;(3)在目標資源執行后,做一些后續的特殊處理工作,例如把目標資源輸出的數據進行處理。
多個Filter的執行順序,在我們的請求到達Servle之間是可以經過多個Filter的,一般來說,建議Filter之間不要有關聯,各自處理各自的邏輯即可。這樣,我們也無需關心執行順序問題。如果一定要確保執行順序,就要對配置進行修改了,執行順序如下:(1)在web.xml中,filter執行順序跟
學習java,就要學習javaweb,進而就要學習javaweb過濾器,上面就是今天介紹的javaweb過濾器相關基礎知識,希望可以幫助java零基礎的朋友們學習理解過濾器,另外可以在javaweb教程中學習更多的知識。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習