filter生命周期
配置描述檔案中每個filter的聲明在每個虛擬機中僅僅只有一個實例。容器提供filter配置秘書中聲明的config對象, 它包含了該web套用的ServletContext引用,和filter初始參數。
遵循模式
當容器接收到request,將取得列表中的第一個filter實例,並調用它的doFilter方法。將傳入ServletRequest,ServletResponse和filterchain的引用。
doFilter方法遵循以下模式:
1.該方法檢測request的頭信息
2.可能會用一個定製的ServletRequest或HttpServletRequest包裝request對象。
3.可能會用一個定製的ServletResponse或HttpServletResponse包裝response對象。
4.filter可以調用filter鏈中的下一個入口,可能是一個filter,也可能是目的web資源。
5.調用鏈中的下一個filter之後,filter可以檢測回響頭信息。
6.處理過程中,filter可能拋出異常。如果在doFilter中拋出UnavailableException,容器不要繼續filter鏈的處理,如飛永久性異常,它可以選擇在稍晚的時候重新執行整個filter鏈。