servlet的過濾器filter類
- 先上程式碼
public class FilterA implements Filter {
public FilterA() {
System.out.println("例項化filterA");
}
public void destroy() {
System.out.println("銷燬filterA");
}
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
System.out.println("經過FilterA的前處理");
chain.doFilter(request, response);
System.out.println("到達filterA的後處理");
}
public void init(FilterConfig fConfig) throws ServletException {
System.out.println("初始化FilterA");
}
}
public class FilterB implements Filter {
public FilterB() {
System.out.println("例項化filterB");
}
public void destroy() {
System.out.println("銷燬filterB");
}
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
System.out.println("經過FilterB的前處理");
chain.doFilter(request, response);
System.out.println("到達filterB的後處理");
}
public void init(FilterConfig fConfig) throws ServletException {
System.out.println("初始化FilterB");
}
}
public class FilterC implements Filter {
public FilterC() {
System.out.println("例項化filterC");
}
public void destroy() {
System.out.println("銷燬filterC");
}
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
System.out.println("經過FilterC的前處理");
chain.doFilter(request, response);
System.out.println("到達filterC的後處理");
}
public void init(FilterConfig fConfig) throws ServletException {
System.out.println("初始化FilterC");
}
}
- web.xml的配置順序(注意順序):有先後順序,而且如果同一個攔截器同時使用註解和web.xml配置會在啟動專案時例項化兩次
<!--配置過濾器A -->
<filter>
<filter-name>FilterA</filter-name>
<filter-class>com.zhiyou100.crm.filter.FilterA</filter-class>
</filter>
<filter-mapping>
<filter-name>FilterA</filter-name>
<url-pattern>/test.jsp</url-pattern>
</filter-mapping>
<!--配置過濾器B -->
<filter>
<filter-name>FilterB</filter-name>
<filter-class>com.zhiyou100.crm.filter.FilterB</filter-class>
</filter>
<filter-mapping>
<filter-name>FilterB</filter-name>
<url-pattern>/test.jsp</url-pattern>
</filter-mapping>
<!--配置過濾器c -->
<filter>
<filter-name>FilterC</filter-name>
<filter-class>com.zhiyou100.crm.filter.FilterC</filter-class>
</filter>
<filter-mapping>
<filter-name>FilterC</filter-name>
<url-pattern>/test.jsp</url-pattern>
</filter-mapping>
啟動伺服器:
例項化FilterA
初始化FilterA
例項化FilterB
初始化FilterB
例項化FilterC
初始化FilterC
瀏覽器訪問web應用的test.jsp
經過FilterA的前處理
經過FilterB的前處理
經過FilterC的前處理
到達filterC的後處理
到達filterB的後處理
到達filterA的後處理
相關文章
- 過濾Servlet--過濾器Servlet過濾器
- Filter過濾器Filter過濾器
- Servlet過濾器Servlet過濾器
- Filter過濾器的使用Filter過濾器
- PHP 過濾器(Filter)PHP過濾器Filter
- Java Filter過濾器JavaFilter過濾器
- lucene Filter過濾器Filter過濾器
- JavaWeb 中 Filter過濾器JavaWebFilter過濾器
- Java Servlet (1) —— Filter過濾請求與響應JavaServletFilter
- 布隆過濾器(Bloom Filter)過濾器OOMFilter
- 布隆過濾器 Bloom Filter過濾器OOMFilter
- Bloom Filter 布隆過濾器OOMFilter過濾器
- angular內建過濾器-filterAngular過濾器Filter
- Servlet過濾器原始碼分析Servlet過濾器原始碼
- filter過濾Filter
- Java 中的 Filter 過濾器詳解JavaFilter過濾器
- 攔截器(Interceptor)與過濾器(Filter)過濾器Filter
- 過濾器 Filter 與 攔截器 Interceptor 的區別過濾器Filter
- Vue定義全域性過濾器filterVue過濾器Filter
- HBase Filter 過濾器之 ValueFilter 詳解Filter過濾器
- 布隆過濾器(Bloom Filter)詳解過濾器OOMFilter
- 如何在vue中使用過濾器filterVue過濾器Filter
- 走進AngularJs(七) 過濾器(filter)AngularJS過濾器Filter
- Servlet 2.3過濾器程式設計 (轉)Servlet過濾器程式設計
- 布隆過濾器(Bloom Filter)的java實現過濾器OOMFilterJava
- Filter(過濾器)與Listener(監聽器)詳解Filter過濾器
- 【Java基礎】--filter過濾器原理解析JavaFilter過濾器
- AngularJS教程二十一—— 過濾器(filter)AngularJS過濾器Filter
- 【SSO】--單點登入之過濾器(filter)過濾器Filter
- Servlet過濾器介紹之原理分析薦Servlet過濾器
- Servlet 2.3過濾器程式設計(二) (轉)Servlet過濾器程式設計
- Solon 的過濾器 Filter 和兩種攔截器 Handler、 Interceptor過濾器Filter
- Web中的監聽器【Listener】與過濾器【Filter】 例項Web過濾器Filter
- Elasticsearch——filter過濾查詢ElasticsearchFilter
- JavaWeb - 【Filter】敏感詞過濾JavaWebFilter
- 微信小程式 使用filter過濾器幾種方式微信小程式Filter過濾器
- 探索C#之布隆過濾器(Bloom filter)C#過濾器OOMFilter
- java中listFiles(Filefilter filter)檔案過濾器的實現過程JavaFilter過濾器