Java Web開發——Filter

Filter簡介

Filter是java servlet中提供的一個接口,在進行Javaweb開發時一般繼承該接口實現一個過濾器類,主要功能是攔截對指定的服務器web資源調用,在調用前執行相應的動做java

public interface Filter {
    void init(FilterConfig var1) throws ServletException;

    void doFilter(ServletRequest var1, ServletResponse var2, FilterChain var3) throws IOException, ServletException;

    void destroy();
}

public void init(FilterConfig filterConfig)
web 應用程序啓動時,web 服務器將建立Filter 的實例對象,讀取web.xml配置,將Filter的配置參數信息生成一個FilterConfig對象,傳入調用其init方法,完成Filter對象的初始化功能,從而爲後續的用戶請求做好攔截的準備工做(filter對象只會建立一次,init方法也只會執行一次)。開發人員經過init方法的參數,可得到表明當前filter配置信息的FilterConfig對象。web

public void doFilter (ServletRequest, ServletResponse, FilterChain)
該方法完成實際的過濾操做,當客戶端請求方法與過濾器設置匹配的URL時,Servlet容器將先調用過濾器的doFilter方法。FilterChain用戶訪問後續過濾器,即在doFilter方法內繼續調用,FiterChain.doFilter(request,response)服務器

public void destroy()
Servlet容器在銷燬過濾器實例前調用該方法,在該方法中釋放Servlet過濾器佔用的資源。app

 

Filter的配置使用

編寫好的filter類須要在web.xml中配置url

<filter>
    <filter-name>global</filter-name>
    <filter-class>net.yuchen.web.MyFilter</filter-class>
    <init-param>
        <param-name>action-path</param-name>
        <param-value>net.yuchen.web.action</param-value>
    </init-param>
    <init-param>
        <param-name>template-path</param-name>
        <param-value>/WEB-INF/templates</param-value>
    </init-param>
</filter>

<filter-mapping>
    <filter-name>global</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

<filter-name>: 指定過濾器名稱spa

<filter-class>:過濾器的完整類名xml

<init-param>: 配置參數,<param-name>指定參數名,<param-value>爲參數值,這些參數會在filter對象初始化時被讀取,在init()方法中能夠經過filterConfig.getInitParameter("param-name")訪問到對象

<filter-mapping>: 指定過濾器名稱及做用的URL範圍,/*爲全局做用繼承

相關文章
相關標籤/搜索