概念:
快速入門:
步驟:
定義乙個類,實現介面filter
複寫方法
配置攔截路徑
web.xml註解
**:
@webfilter
("/*"
)//訪問所有資源之前,都會執行該過濾器
public
class
filterdemo1
implements
filter
@override
public
void
dofilter
(servletrequest servletrequest, servletresponse servletresponse, filterchain filterchain)
throws ioexception, servletexception
@override
public
void
destroy()
}
過濾器細節:
1. web.xml配置
demo1
cn.itcast.web.filter.filterdemo1
/*2. 過濾器執行流程
1. 執行過濾器
2. 執行放行後的資源
3. 回來執行過濾器放行**下邊的**
3. 過濾器生命週期方法
1. init:在伺服器啟動後,會建立filter物件,然後呼叫init方法。只執行一次。用於載入資源
2. dofilter:每一次請求被攔截資源時,會執行。執行多次
3. destroy:在伺服器關閉後,filter物件被銷毀。如果伺服器是正常關閉,則會執行destroy方法。只執行一次。用於釋放資源
4. 過濾器配置詳解
* 攔截路徑配置:
1. 具體資源路徑: /index.jsp 只有訪問index.jsp資源時,過濾器才會被執行
2. 攔截目錄: /user/* 訪問/user下的所有資源時,過濾器都會被執行
3. 字尾名攔截: *.jsp 訪問所有字尾名為jsp資源時,過濾器都會被執行
4. 攔截所有資源:/* 訪問所有資源時,過濾器都會被執行
* 攔截方式配置:資源被訪問的方式
* 註解配置:
* 設定dispatchertypes屬性
1. request:預設值。瀏覽器直接請求資源
2. forward:**訪問資源
3. include:包含訪問資源
4. error:錯誤跳轉資源
5. async:非同步訪問資源
* web.xml配置
* 設定標籤即可
5. 過濾器鏈(配置多個過濾器)
* 執行順序:如果有兩個過濾器:過濾器1和過濾器2
1. 過濾器1
2. 過濾器2
3. 資源執行
4. 過濾器2
5. 過濾器1
* 過濾器先後順序問題:
1. 註解配置:按照類名的字串比較規則比較,值小的先執行
* 如: afilter 和 bfilter,afilter就先執行了。
* 增強物件的功能:
* 設計模式:一些通用的解決固定問題的方式
1. 裝飾模式
2. **模式
* 概念:
1. 真實物件:被**的物件
2. **物件:
3. **模式:**物件**真實物件,達到增強真實物件功能的目的
* 實現方式:
1. 靜態**:有乙個類檔案描述**模式
2. 動態**:在記憶體中形成**類
* 實現步驟:
1. **物件和真實物件實現相同的介面
2. **物件 = proxy.newproxyinstance();
3. 使用**物件呼叫方法。
4. 增強方法
* 增強方式:
1. 增強引數列表
2. 增強返回值型別
3. 增強方法體執行邏輯
servletcontextlistener:監聽servletcontext物件的建立和銷毀
步驟:
定義乙個類,實現servletcontextlistener介面
複寫方法
配置 web.xml
cn.itcast.web.listener.contextloaderlistener
* 指定初始化引數
註解:
Filter與Listener入門學習
1 概念 2 快速入門 webfilter 訪問所有資源之前都會執行該過濾器 public class filterdemo implements filter override public void dofilter servletrequest servletrequest,servletre...
interceptor和listener的比較
之前闡述過個人對servlet和filter的比較,這片文章簡要說一下interceptor和listener的比較 相關鏈結 先簡單介紹下interceptor和listener的概念 interceptor,也叫作 一條請求每經過乙個 就會觸發乙個相應的事件,如果用圖來表示的話就是 如圖,每經過...
說說Event和Listener和Adapter
仔細一查,發現的確是介面listener都有介面卡adapter,但是actionlistener沒有。因為這個介面只有乙個成員函式就是actionperformed 沒必要有adapter 然後查了一下api 幾乎大多數的都有,然後adapter主要implements於其listener和eve...