最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java過(guò)濾器Filter詳解

 更新時(shí)間:2021年08月25日 10:40:15   作者:木筆の園子  
這篇文章主要介紹了java過(guò)濾器中Filter,發(fā)送請(qǐng)求時(shí),如果有不符合的信息將會(huì)被filter進(jìn)行攔截,如果符合則會(huì)進(jìn)行放行。如果感興趣可以來(lái)學(xué)習(xí)一下

Filter學(xué)習(xí)

Filter功能

  • 攔截jsp、靜態(tài)圖片文件、靜態(tài)html資源文件
  • 實(shí)現(xiàn)URL級(jí)別的權(quán)限訪問(wèn)控制
  • 過(guò)濾敏感詞匯
  • 壓縮相應(yīng)信息

Filter的工作原理

看源碼可以看出來(lái),F(xiàn)ilter接口中有3個(gè)方法:init、doFilter、destory

在這里插入圖片描述

init方法,初始化Filter,F(xiàn)ilter在服務(wù)器啟動(dòng)階段被實(shí)例化。并且調(diào)用init方法,init方法只執(zhí)行一次,因?yàn)镕ilter只被實(shí)例化一次。

destory方法也好理解,就是銷(xiāo)毀Filter,釋放內(nèi)存,在運(yùn)行結(jié)束時(shí)調(diào)用此方法當(dāng)。長(zhǎng)時(shí)間沒(méi)有用戶訪問(wèn),或者項(xiàng)目重新部署,或者服務(wù)器重新啟動(dòng)的時(shí)候,會(huì)銷(xiāo)毀所有的Filter對(duì)象,銷(xiāo)毀之前會(huì)先調(diào)用Filter對(duì)象的destroy方法,完成銷(xiāo)毀前的準(zhǔn)備工作。也是只執(zhí)行一次。

doFilter方法提供給開(kāi)發(fā)者重寫(xiě)過(guò)濾邏輯。

多個(gè)Filter的實(shí)現(xiàn)

public class AFilter implements Filter {
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
        System.out.println("輸出filter2的init方法");
    }
    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
        HttpServletResponse response = (HttpServletResponse) servletResponse;
        HttpServletRequest request = (HttpServletRequest) servletRequest;
        System.out.println("輸出filter2的doFilter方法之前");
        filterChain.doFilter(request, response);
        System.out.println("輸出filter2的doFilter方法之后");
    }
    @Override
    public void destroy() {
        System.out.println("輸出filter2的destroy方法");
    }
}
public class BFilter implements Filter {
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
        System.out.println("輸出filter1的init方法");
    }
    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
        HttpServletResponse response = (HttpServletResponse) servletResponse;
        HttpServletRequest request = (HttpServletRequest) servletRequest;
        System.out.println("輸出filter1的doFilter方法之前");
        filterChain.doFilter(request, response);
        System.out.println("輸出filter1的doFilter方法之后");
    }
    @Override
    public void destroy() {
        System.out.println("輸出filter1的destroy方法");
    }
}

配置Filter的過(guò)濾順序,通過(guò)setOrder方法執(zhí)行FilterChain的順序,數(shù)字越小,優(yōu)先級(jí)越高。

@Configuration
public class WebConfig {
    @Bean
    public FilterRegistrationBean filter1() {
        FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean();
        AFilter aFilter = new AFilter();
        filterRegistrationBean.setFilter(aFilter);
        filterRegistrationBean.setOrder(1);
        return filterRegistrationBean;
    }
    @Bean
    public FilterRegistrationBean filter2() {
        FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean();
        BFilter bFilter = new BFilter();
        filterRegistrationBean.setFilter(bFilter);
        filterRegistrationBean.setOrder(2);
        return filterRegistrationBean;
    }
}

Filter的執(zhí)行邏輯

在這里插入圖片描述

總結(jié)

本篇文章就到這里了,希望能給你帶來(lái)幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!

相關(guān)文章

  • java使用POI讀取properties文件并寫(xiě)到Excel的方法

    java使用POI讀取properties文件并寫(xiě)到Excel的方法

    這篇文章主要介紹了java使用POI讀取properties文件并寫(xiě)到Excel的方法,涉及java操作properties文件及Excel文件的相關(guān)技巧,需要的朋友可以參考下
    2015-06-06
  • Idea?springboot?springCloud熱加載熱調(diào)試兩種常用方式

    Idea?springboot?springCloud熱加載熱調(diào)試兩種常用方式

    這篇文章主要介紹了Idea?springboot?springCloud熱加載熱調(diào)試常用的兩種方式,在項(xiàng)目開(kāi)發(fā)的過(guò)程中,需要修改調(diào)試的時(shí)候偶每次都需要重啟項(xiàng)目浪費(fèi)時(shí)間,下面是我整理的兩種常用的兩種方式,需要的朋友可以參考下
    2023-04-04
  • Java數(shù)據(jù)結(jié)構(gòu)順序表從零基礎(chǔ)到精通進(jìn)階

    Java數(shù)據(jù)結(jié)構(gòu)順序表從零基礎(chǔ)到精通進(jìn)階

    程序中經(jīng)常需要將一組數(shù)據(jù)元素作為整體管理和使用,需要?jiǎng)?chuàng)建這種元素組,用變量記錄它們,傳進(jìn)傳出函數(shù)等。一組數(shù)據(jù)中包含的元素個(gè)數(shù)可能發(fā)生變化,順序表則是將元素順序地存放在一塊連續(xù)的存儲(chǔ)區(qū)里,元素間的順序關(guān)系由它們的存儲(chǔ)順序自然表示
    2022-03-03
  • Spring FreeMarker整合Struts2過(guò)程詳解

    Spring FreeMarker整合Struts2過(guò)程詳解

    這篇文章主要介紹了Spring FreeMarker整合Struts2過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-10-10
  • Java8之lambda最佳實(shí)踐_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    Java8之lambda最佳實(shí)踐_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    在8 里面Lambda是最火的主題,不僅僅是因?yàn)檎Z(yǔ)法的改變,更重要的是帶來(lái)了函數(shù)式編程的思想,我覺(jué)得優(yōu)秀的程序員,有必要學(xué)習(xí)一下函數(shù)式編程的思想以開(kāi)闊思路
    2017-06-06
  • springboot?yml配置文件值注入方式

    springboot?yml配置文件值注入方式

    這篇文章主要介紹了springboot?yml配置文件值注入方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • java實(shí)現(xiàn)打印正三角的方法

    java實(shí)現(xiàn)打印正三角的方法

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)打印正三角的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • jpa介紹以及在spring boot中使用詳解

    jpa介紹以及在spring boot中使用詳解

    最近在項(xiàng)目中使用了一下jpa,發(fā)現(xiàn)還是挺好用的。這里就來(lái)講一下jpa以及在spring boot中的使用。在這里我們先來(lái)了解一下jpa,希望能給你帶來(lái)幫助
    2021-08-08
  • 如何通過(guò)XML方式配置AOP過(guò)程解析

    如何通過(guò)XML方式配置AOP過(guò)程解析

    這篇文章主要介紹了如何通過(guò)XML方式配置AOP過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • 使用java編程從0到1實(shí)現(xiàn)一個(gè)簡(jiǎn)單計(jì)算器

    使用java編程從0到1實(shí)現(xiàn)一個(gè)簡(jiǎn)單計(jì)算器

    這篇文章主要介紹了使用java編程從0到1實(shí)現(xiàn)一個(gè)簡(jiǎn)單計(jì)算器,文章中用代碼實(shí)例講解的很清晰,有感興趣的同學(xué)可以學(xué)習(xí)研究下
    2021-02-02

最新評(píng)論

惠东县| 义乌市| 盖州市| 安乡县| 红河县| 巍山| 阿勒泰市| 台北县| 泾川县| 长寿区| 永丰县| 柘城县| 奉化市| 修水县| 哈巴河县| 游戏| 富顺县| 勃利县| 伊宁市| 兴文县| 宿州市| 噶尔县| 新安县| 略阳县| 高青县| 谢通门县| 武宣县| 黑龙江省| 蒙自县| 孟州市| 河间市| 铜鼓县| 茶陵县| 曲松县| 徐州市| 宁乡县| 丹寨县| 休宁县| 郧西县| 开阳县| 巴马|