Filter過濾器的編寫及其配置
編寫流程:
1.寫一個類實現Filter介面
2.實現所有方法,doFilter為核心方法
3.配置Filter,配置檔案web.xml或者註解配置。
1. web.xml配置
<filter>
<filter-name>demo1</filter-name>
<filter-class>cn.itcast.web.filter.FilterDemo1</filter-class>
</filter>
<filter-mapping>
<filter-name>demo1</filter-name>
<!-- 攔截路徑 -->
<url-pattern>/*</url-pattern>
</filter-mapping>
2.執行流程
doFilter:每一次請求被攔截資源時,會執行。執行多次
3.攔截路徑配置:
和Servlet的路徑配置規則一致
完全路徑匹配
/aaa /aa/aaa
目錄匹配
/* /aaa/* /aaa/bbb/*
副檔名匹配
*.xxx
和Servlet不同,Filter的攔截路徑沒有優先順序,Filter的匹配路徑相同時,所有符合規則的Filter都會執行。
4.攔截方式
註解配置:
設定dispatcherTypes屬性
1. REQUEST:預設值。瀏覽器直接請求資源,新的請求到來時攔截
2. FORWARD:轉發訪問資源。只有轉發的請求才會攔截。
web.xml配置
<filter-mapping>
<filter-name>demo1</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
</filter-mapping>