天天看點

Filter與Listener概述使用步驟應用

文章目錄

  • 概述
  • 使用步驟
  • 應用

概述

過濾器Filter對web資源進行攔截,做一些處理再交給下一個過濾器或者servlet進行處理,通常用于攔截request,偶爾也用于攔截response;而監聽器Listener是監聽某個域對象的狀态變化的元件,域對象主要為request,session,servletContext,監聽事件源對象的變化都會觸發監聽器,比如session存儲的某屬性的變化,session的建立與銷毀

使用步驟

Filter的使用步驟:

  1. 實作Filter接口
  1. 重寫Filter接口裡的方法
public void destroy() {//銷毀的方法}
public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain)
throws ServletException, IOException { 
	//過濾方法 主要是對request和response進行一些處理,然後交給下一個過濾器或Servlet處理
	chain.doFilter(req, resp);
}
public void init(FilterConfig config) throws ServletException { 
	/*初始化方法 接收一個FilterConfig類型的參數 該參數是對Filter的一些配置*/
}
           
  1. 在web.xml裡進行配置
<filter>
<filter-name>過濾器名稱</filter-name>
<filter-class>過濾器所在的路徑</filter-class>
</filter>
<filter-mapping>
<filter-name>過濾器名稱</filter-name>
<url-pattern>需要過濾的資源</url-pattern>
</filter-mapping>
           

Listener的使用步驟:

  1. 實作HttpSessionListener、HttpSessionAttributeListener等接口
  2. 重寫接口裡的方法
  3. 在web.xml裡進行配置
<listener>
<listener-class>監聽器所在的路徑</listener-class>
</listener>
           

應用

Filter的應用,比如禁止使用者在未登入的情況下通路某些資源,或者通過位址欄輸入url繞過預設好的網頁内容等違規操作;Listener的應用,主要可以用于簡化代碼量,比如網頁上需要記錄使用者的點贊數,同時還要在資料庫裡更改相應的值,如果不使用監聽器整個流程會十分繁瑣,需要多次調用dao層,使用監聽器可以将一切監聽事件源對象裡的值發生的改變統一寫在資料庫裡,提高程式員的開發效率

繼續閱讀