Filter
Servlet過濾器
Servlet過濾器生命週期
Servlet的生命週期(*)
Filter生命週期:過濾器從創建到銷燬的過程.
服務器啓動的時候,服務器就會創建過濾器的對象,每次訪問被攔截目標資源,過濾器中的doFilter的方法就會執行.當服務器關閉的時候,服務器就會銷燬Filter對象.
FilterConfig的作用
// 獲得初始化參數:過濾器的初始化參數.
String username = fConfig.getInitParameter("username");
String password = fConfig.getInitParameter("password");
System.out.println("初始化參數"+username+" "+password);
// 獲得所有的初始化參數的名稱:
Enumeration<String> names = fConfig.getInitParameterNames();
while(names.hasMoreElements()){
String name = names.nextElement();
String value = fConfig.getInitParameter(name);
System.out.println(name+" "+value);
}
// 獲得過濾器的配置的名稱:
String filterName = fConfig.getFilterName();
System.out.println("過濾器名稱"+filterName);
FilterChain
過濾器鏈中的過濾器的執行的順序跟<filter-mapping>的配置順序有關.
doFilter(ServletRequest request,ServletResponse response)
Filter的配置
【url-pattern的配置】與servlet中的配置一樣:
* 三種配置:
* 完全路徑匹配:以 / 開始 /aaa /aaa/bbb
* 目錄匹配: 以 / 開始 /* /aaa/*
* 擴展名匹配: 不能以 / 開始 *.do *.jsp *.action
【servlet-name的配置】通過url-pattern攔截一個Servlet的資源.也可以通過servlet-name標籤進行攔截.
【dispatcher的配置】
* REQUEST :默認值.
* FORWARD :攔截轉發
* ERROR :攔截跳轉到錯誤頁面.全局錯誤頁面.
* INCLUDE :攔截在一個頁面中包含另一個頁面.