更新時(shí)間:2021-11-15 10:52:43 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽1007次
過濾器要重寫3個(gè)方法
init(FilterConfig filterConfig):?jiǎn)?dòng)項(xiàng)目的時(shí)候執(zhí)行
doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain):資源攔截的時(shí)候執(zhí)行
destroy():正常關(guān)閉項(xiàng)目的時(shí)候執(zhí)行
來(lái)看下面例子,準(zhǔn)備2個(gè)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過濾器進(jìn)來(lái)了......");
filterChain.doFilter(servletRequest,servletResponse);
System.out.println("demo2過濾回來(lái)了......");
}
@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過濾器進(jìn)來(lái)了......");
filterChain.doFilter(servletRequest,servletResponse);
System.out.println("demo3過濾回來(lái)了......");
}
@Override
public void destroy() {
System.out.println("demo3過濾器摧毀了......");
}
}
index.jsp代碼 ,里面學(xué)了一句輸出語(yǔ)句
啟動(dòng)項(xiàng)目,執(zhí)行了init方法,且每個(gè)過濾器的init都只執(zhí)行一次
訪問index.jsp,每次訪問都執(zhí)行,并且先執(zhí)行的過濾器,最后回來(lái),有點(diǎn)先進(jìn)后出的感覺
正常關(guān)閉項(xiàng)目,每個(gè)過濾器的destrpy方法都只執(zhí)行一次
通過上述相信大家對(duì)Filter生命周期已經(jīng)有所了解,大家如果想學(xué)習(xí)更多相關(guān)知識(shí),可以來(lái)關(guān)注一下動(dòng)力節(jié)點(diǎn)的Java在線學(xué)習(xí),里面的課程內(nèi)容豐富,細(xì)致全面,從入門到精通,適合沒有基礎(chǔ)的小伙伴學(xué)習(xí),希望對(duì)大家能夠有所幫助。
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)
初級(jí) 202925
初級(jí) 203221
初級(jí) 202629
初級(jí) 203743