更新時間:2021-11-15 10:52:43 來源:動力節點 瀏覽1041次
過濾器要重寫3個方法
init(FilterConfig filterConfig):啟動項目的時候執行
doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain):資源攔截的時候執行
destroy():正常關閉項目的時候執行
來看下面例子,準備2個Filter過濾器,都攔截所有的路徑
過濾器demo2代碼
package com.lingaolu.filter;
import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import java.io.IOException;
/**
* @author 林高祿
* @create 2020-08-04-9:42
*/
@WebFilter("/*")
public class Demo2 implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
System.out.println("demo2過濾器初始化了......");
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
System.out.println("demo2過濾器進來了......");
filterChain.doFilter(servletRequest,servletResponse);
System.out.println("demo2過濾回來了......");
}
@Override
public void destroy() {
System.out.println("demo2過濾器摧毀了......");
}
}
過濾器demo3代碼
package com.lingaolu.filter;
import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import java.io.IOException;
/**
* @author 林高祿
* @create 2020-08-04-9:42
*/
@WebFilter("/*")
public class Demo3 implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
System.out.println("demo3過濾器初始化了......");
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
System.out.println("demo3過濾器進來了......");
filterChain.doFilter(servletRequest,servletResponse);
System.out.println("demo3過濾回來了......");
}
@Override
public void destroy() {
System.out.println("demo3過濾器摧毀了......");
}
}
index.jsp代碼 ,里面學了一句輸出語句
啟動項目,執行了init方法,且每個過濾器的init都只執行一次
訪問index.jsp,每次訪問都執行,并且先執行的過濾器,最后回來,有點先進后出的感覺
正常關閉項目,每個過濾器的destrpy方法都只執行一次
通過上述相信大家對Filter生命周期已經有所了解,大家如果想學習更多相關知識,可以來關注一下動力節點的Java在線學習,里面的課程內容豐富,細致全面,從入門到精通,適合沒有基礎的小伙伴學習,希望對大家能夠有所幫助。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習