1. 程式人生 > >Filter、Servlet、Listener區別與聯絡

Filter、Servlet、Listener區別與聯絡

1. Filter
實現javax.servlet.Filter介面,在web.xml中配置與標籤指定使用哪個Filter實現類過濾哪些URL連結。只在web啟動時進行初始化操作。

filter 流程是線性的, url傳來之後,檢查之後,可保持原來的流程繼續向下執行,被下一個filter, servlet接收等,而servlet 處理之
後,不會繼續向下傳遞。filter功能可用來保持流程繼續按照原來的方式進行下去,或者主導流程,而servlet的功能主要用來主導流程。
特點:可以在響應之前修改Request和Response的頭部,只能轉發請求,不能直接發出響應。filter可用來進行字元編碼的過濾,檢測使用者

是否登陸的過濾,禁止頁面快取等

2. Servlet
servlet 流程是短的,url傳來之後,就對其進行處理,之後返回或轉向到某一自己指定的頁面。它主要用來在業務處理之前進行控制。

3. Listener
servlet,filter都是針對url之類的,而listener是針對物件的操作的,如session的建立,session.setAttribute的發生,在這樣的事件發
生時做一些事情。