過濾鏈: webapps 由一個(gè)或多個(gè)過濾器組成. (filterChain.doFilter(......)調(diào)用下一個(gè)過濾器.)
過濾器(Filter): 是對(duì)某一資源(servlet 或靜態(tài)網(wǎng)頁內(nèi)容)的請(qǐng)求或來自某一資源的響應(yīng), 或同時(shí)對(duì)這兩者進(jìn)行執(zhí)行過濾。鏈中的所有過濾器都是在遍歷完鏈后,在鏈末尾才真正執(zhí)行過濾任務(wù).
一.WEB.XML配置(可有多個(gè)<filter>):
<filter>
<filter-name>FilterName</filter-name>
<filter-class>package.class.FilterClass</filter-class>
</filter>
<filter-mapping>
<filter-name>FilterName</filter-name>
<url-pattern>/*</url-pattern> //設(shè)置過濾的資源
<dispatcher>REQUEST</dispatcher> //設(shè)置請(qǐng)求或響應(yīng)
<dispatcher>FORWARD</dispatcher>
</filter-mapping>
二.類的創(chuàng)建:
Filter接口: 每個(gè) Filter 類都有對(duì) FilterConfig 對(duì)象的訪問權(quán),可從該對(duì)象獲得其初始化參數(shù)和 ServletContext 的引用.
doFilter(.....): 執(zhí)行過濾任務(wù)。參數(shù)
FilterChain實(shí)例.doFilter(ServletRequest request, ServletResponse response) 將請(qǐng)求和響應(yīng)傳遞到鏈中的下一個(gè)實(shí)體。
destroy(): 由 Web 容器調(diào)用,指示將從服務(wù)中取出的過濾器。在調(diào)用此方法之后,Web 容器不會(huì)再對(duì)此過濾器實(shí)例調(diào)用 doFilter 方法。
init(FilterConfig filterConfig): 由 Web 容器調(diào)用,指示將過濾器放入服務(wù)中。servlet 容器只在實(shí)例化過濾器之后調(diào)用一次 init 方法。
FilterChain實(shí)例.doFilter(ServletRequest request, ServletResponse response): 調(diào)用鏈中的下一個(gè)過濾器。
request 沿著鏈傳遞的請(qǐng)求。
response 沿著鏈傳遞的響應(yīng)。
********************************************************
package package.class;
import javax.servlet.Filter;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
public class FilterName implements Filter{
filterConfig fc=null;
public void
init(FilterConfig filterConfig) throws ServletException {
this.filterConfig=filterConfig;
}
public void
doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws java.io.IOException, ServletException {
//處理過濾任務(wù)
......
chain.doFilter(request,respos);
}
public void
destroy(){
}
}
posted on 2008-03-31 11:59
紫蝶∏飛揚(yáng)↗ 閱讀(849)
評(píng)論(0) 編輯 收藏 所屬分類:
隨想