簡單實現Filter接口:
public class FirstFilter implements Filter {
public void init(FilterConfig fConfig) throws ServletException {
//1.該對象創建時執行init函數,即服務器啟動時執行
}
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
// 放行
chain.doFilter(request, response);
}
public void destroy() {
//2.該對象銷毀時執行destory函數,即服務器關閉時執行
}
}
2.在web.xml中配置Filter
<filter>
<display-name>FirstFilter</display-name>
<filter-name>FirstFilter</filter-name>
<filter-class>com.web.filter.FirstFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>FirstFilter</filter-name>
<url-pattern>/*</url-pattern>
<url-pattern>/aaa/*</url-pattern>
<dispatcher>REQUEST</dispatcher>//默認的值為REQUEST,當打開新的訪問的時候攔截
<dispatcher>FORWARD</dispatcher>當轉發的時候進行攔截
<dispatcher>INCLUDE</dispatcher>當包含的時候進行攔截
<dispatcher>ERROR</dispatcher> 錯誤的時候進行攔截
</filter-mapping>
url-pattern配置時
1)完全匹配 /sertvle1
2)目錄匹配 /aaa/bbb/* ----最多的
/user/*:訪問前台的資源進入此過濾器
/admin/*:訪問后台的資源時執行此過濾器
3)擴展名匹配 *.abc *.jsp
注意:url-pattern可以使用servlet-name替代,也可以混用