web過濾器Filter
阿新 • • 發佈:2018-12-07
Filter
過濾器,其實就是對客戶端傳送過來的請求進行過濾。瀏覽器發出,然後伺服器派servlet處理,在中間就可以過濾,起到攔截的作用
作用:
1.對一些敏感詞彙進行過濾
2.統一設定編碼
3.自動登入
…
如何使用Filter
1.定義一個類,實現Fileter
public class FilterDemo implements Filter{
public void destroy(){
}
public void doFilter(ServletRequest request,ServletResponse response,FilterChain chain) throws IOException,ServletException{
System.out.println("過濾器工作");
//放行
chain.doFilter(request,response);
}
public void init(FilterConfig fConfig)throws ServletException{
}
}
2.註冊過濾器
在web.xml裡面註冊,註冊手法與servlet基本一樣
<filter>
<display-name>FilterDemo</display-name>
<filter-name >FilterDemo</filter-name>
<filter-class>包名.HelloServlet</filter-class>
</filter>
<filter-mapping>
<filter-name>FilterDemo</filter-name>
<url-pattern>/*</url-pattern>
<filter-mapping>
Filter生命週期
建立:伺服器啟動的時候
銷燬:伺服器關閉的時候
多個Filter
執行的順序跟mapping配置順序有關,mapping在前面的先執行,且必須用chain.doFilter放行,請求才會到達下一個Filter,響應的時候不用放行
細節
1.init方法的引數FilterConfig,可以用於獲取filter在註冊的名字以及初始化引數。其實這裡的設計的初衷和ServletConfig是一樣的
2.如果想放行,要用chain.doFilter語句
3.寫法格式與servlet一樣
4.對dispatcher配置
REQUEST:只要是請求過來都攔截
FORWARD:只要是轉發都攔截
ERROR:頁面出錯發生跳轉
INCLUDE:包含頁面的時候就攔截