天天看點

javaweb中的Filter(過濾器)

1、Filter簡介以及作用

1、Filter是JavaWeb的三大web元件之一Servlet、Filter、Listener。

2、Filter的作用是在請求到達WEB資源(HTML、CSS、Servlet、JSP)之前進行攔截。

3、Filter需要交給Tomcat通路器來管理。

4、Filter的作用:

1.Filter可以在請求到達目标資源之前進行攔截

2.Filter也可以放行請求

3.Filter可以在響應到達浏覽器之前做一個預處理

2、Filter的三個方法

1、init()

init()方法用來初始化過濾器。

調用代碼為:

2、doFilter()

一次攔截請求時都會調用。

參數

ServletRequest request

> 請求封包

ServletResponse response

> 響應封包

FilterChain chain

> 該對象的作用就是放行請求:

可以通過 chain.doFilter(request,response) 放行請求。

當調用chain.doFilter()就相當于調用目标的資源的service方法。

3、 destroy()

destroy()方法在項目停止時調用,用來在對象被銷毀前做一些收尾工作。

3、多個Filter的攔截順序

<filter-mapping>
	<filter-name>CharacterEncodingFilter1</filter-name>
	<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
	<filter-name>CharacterEncodingFilter2</filter-name>
	<url-pattern>/*</url-pattern>
</filter-mapping>

           

攔截路徑一樣,攔截器的順序,就看web.xml的配置順序,從上到下依次

<filter-mapping>
	<filter-name>CharacterEncodingFilter3</filter-name>
	<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>CharacterEncodingFilter4</filter-name>
	<url-pattern>*.jsp</url-pattern>
</filter-mapping>

           

如何都能攔截,那麼這兩個攔截器都會攔截一下,那麼誰是第一個攔截器呢?? 最精準比對的,就是第一個攔截器

繼續閱讀