servlet 和filter的區別
filter與servlet區別
filter:
1.線性流程:url傳來之後,檢查之後,可保持原來的流程繼續向下執行,被下一個filter, servlet接收;
2. 功能 : 用於修改對某一資源的請求,或者修改從某一的響應
可以對請求或響應(Request、Response)統一設置 編碼,簡化操作;
同時還可進行邏輯判斷,如用戶是否已經登陸、有沒有權限訪問該頁面等等工作
隨web應用啟動而啟動的,只初始化一次,以後就可以攔截相關請求,只有當你的web應用停止或重新部署的時候才銷毀
Filter有如下幾個用處。
在HttpServletRequest到達Servlet之前,攔截客戶的HttpServletRequest。
根據需要檢查HttpServletRequest,也可以修改HttpServletRequest頭和數據。
在HttpServletResponse到達客戶端之前,攔截HttpServletResponse。
根據需要檢查HttpServletResponse,也可以修改HttpServletResponse頭和數據。
Filter有如下幾個種類。
用戶授權的Filter:Filter負責檢查用戶請求,根據請求過濾用戶非法請求。
日誌Filter:詳細記錄某些特殊的用戶請求。
負責解碼的Filter:包括對非標準編碼的請求解碼。
能改變XML內容的XSLT Filter等。
Filter可負責攔截多個請求或響應;一個請求或響應也可被多個請求攔截。
servlet:
1.短流程: url傳來以後, 就對其進行處理,之後返回或轉向到某一自己指定的 servlet 或是 頁面
2. 功能 : 用於業務處理
圖解filter與servlet 在程序中的關系:
具體的如下圖:
轉載請說明:轉載自http://www.cnblogs.com/yiyongyao/
servlet 和filter的區別