1. 程式人生 > >servlet 和filter的區別

servlet 和filter的區別

com 檢查 功能 邏輯判斷 一個 編碼 客戶 cnblogs 應用

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的區別