1. 程式人生 > >web過濾器Filter

web過濾器Filter

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,響應的時候不用放行
多個Filter

細節

1.init方法的引數FilterConfig,可以用於獲取filter在註冊的名字以及初始化引數。其實這裡的設計的初衷和ServletConfig是一樣的
2.如果想放行,要用chain.doFilter語句
3.寫法格式與servlet一樣
4.對dispatcher配置

REQUEST:只要是請求過來都攔截
FORWARD:只要是轉發都攔截
ERROR:頁面出錯發生跳轉
INCLUDE:包含頁面的時候就攔截