国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

java過濾器(Filter)

這篇具有很好參考價值的文章主要介紹了java過濾器(Filter)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

原文鏈接:java過濾器(Filter – 編程屋

目錄

1 過濾器簡介

2 Filter詳細(xì)介紹

3 Filter的用法

3.1 用法1

?3.2 用法2


1 過濾器簡介

filter也稱之為過濾器,它是javaWeb三大組件之一(Servlet程序、Listener監(jiān)聽器、Filter過濾器)

作用:既可以對請求進(jìn)行攔截,也可以對響應(yīng)進(jìn)行處理。

java filter,Java基礎(chǔ),servlet

常見場景:權(quán)限檢查,日記操作、攔截請求、過濾操作、對請求字符設(shè)置編碼。

2 Filter詳細(xì)介紹

要想介紹filter,就必須介紹Filter中的三個方法。

    /**
     * web應(yīng)用啟動時,web服務(wù)器將創(chuàng)建Filter的實例對象,并調(diào)用init方法,讀取web.xml的配置,完成對象的初始化功能,
     * 從而為后續(xù)的用戶請求做好攔截的準(zhǔn)備工作(filter對象只會創(chuàng)建一次,init方法也只會執(zhí)行一次,開發(fā)人員通過init的參數(shù),
     * 可或得代表當(dāng)前filter配置信息的FilterConfig對象)
     * @param filterConfig
     * @throws ServletException
     */
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {

    }

    /**
     * 這個方法完成實際的過濾操作,當(dāng)客戶請求訪問與過濾器相關(guān)聯(lián)的URL的時候,Servlet過濾器將先執(zhí)行doFilter方法,F(xiàn)ilterChain參數(shù)用于訪問后續(xù)過濾器
     * @param servletRequest
     * @param servletResponse
     * @param filterChain
     * @throws IOException
     * @throws ServletException
     */
    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {

    }

    /**
     * filter創(chuàng)建后會保存在內(nèi)存中,當(dāng)web應(yīng)用移除或者服務(wù)器停止時才銷毀,該方法在Filter的生命周期中僅執(zhí)行一次,在這個方法中,可以釋放過濾器使用的資源
     */
    @Override
    public void destroy() {

    }

3 Filter的用法

3.1 用法1

1)自定義一個過濾器實現(xiàn)Filter接口、配置@WebFilter注解,配置攔截路徑(也可通過web.xml配置)

@WebFilter(urlPatterns = "/*")
public class MyFilterOne implements Filter {

    /**
     * web應(yīng)用啟動時,web服務(wù)器將創(chuàng)建Filter的實例對象,并調(diào)用init方法,讀取web.xml的配置,完成對象的初始化功能,
     * 從而為后續(xù)的用戶請求做好攔截的準(zhǔn)備工作(filter對象只會創(chuàng)建一次,init方法也只會執(zhí)行一次,開發(fā)人員通過init的參數(shù),
     * 可或得代表當(dāng)前filter配置信息的FilterConfig對象)
     * @param filterConfig
     * @throws ServletException
     */
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {

    }

    /**
     * 這個方法完成實際的過濾操作,當(dāng)客戶請求訪問與過濾器相關(guān)聯(lián)的URL的時候,Servlet過濾器將先執(zhí)行doFilter方法,F(xiàn)ilterChain參數(shù)用于訪問后續(xù)過濾器
     * @param servletRequest
     * @param servletResponse
     * @param filterChain
     * @throws IOException
     * @throws ServletException
     */
    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
        System.out.println("我是過濾器,我進(jìn)來了");
    }

    /**
     * filter創(chuàng)建后會保存在內(nèi)存中,當(dāng)web應(yīng)用移除或者服務(wù)器停止時才銷毀,該方法在Filter的生命周期中僅執(zhí)行一次,在這個方法中,可以釋放過濾器使用的資源
     */
    @Override
    public void destroy() {

    }
}

2)在啟動類上加上@ServletComponentScan注解

@SpringBootApplication
@ServletComponentScan
public class SpringbootInterceptorApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringbootInterceptorApplication.class, args);
    }

}

3)controller:

@RestController
public class LoginController {

    @GetMapping("/test/filter")
    public String testFilter(){
        return "該請求被攔截了,但是在過濾器中已經(jīng)放行了";
    }
}

直接瀏覽器訪問:

java filter,Java基礎(chǔ),servlet

?控制臺輸出:發(fā)現(xiàn)該請求已經(jīng)被過濾去攔截

java filter,Java基礎(chǔ),servlet

?3.2 用法2

1)自定義一個過濾器實現(xiàn)Filter接口、配置攔截路徑(也可通過web.xml配置)

public class MyFilterOne implements Filter {

    /**
     * web應(yīng)用啟動時,web服務(wù)器將創(chuàng)建Filter的實例對象,并調(diào)用init方法,讀取web.xml的配置,完成對象的初始化功能,
     * 從而為后續(xù)的用戶請求做好攔截的準(zhǔn)備工作(filter對象只會創(chuàng)建一次,init方法也只會執(zhí)行一次,開發(fā)人員通過init的參數(shù),
     * 可或得代表當(dāng)前filter配置信息的FilterConfig對象)
     * @param filterConfig
     * @throws ServletException
     */
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {

    }

    /**
     * 這個方法完成實際的過濾操作,當(dāng)客戶請求訪問與過濾器相關(guān)聯(lián)的URL的時候,Servlet過濾器將先執(zhí)行doFilter方法,F(xiàn)ilterChain參數(shù)用于訪問后續(xù)過濾器
     * @param servletRequest
     * @param servletResponse
     * @param filterChain
     * @throws IOException
     * @throws ServletException
     */
    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
        System.out.println("我是過濾器,我進(jìn)來了");
        filterChain.doFilter(servletRequest, servletResponse);
    }

    /**
     * filter創(chuàng)建后會保存在內(nèi)存中,當(dāng)web應(yīng)用移除或者服務(wù)器停止時才銷毀,該方法在Filter的生命周期中僅執(zhí)行一次,在這個方法中,可以釋放過濾器使用的資源
     */
    @Override
    public void destroy() {

    }
}

2)在啟動類上注冊

@SpringBootApplication
public class SpringbootInterceptorApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringbootInterceptorApplication.class, args);
    }


    /**
     * 注冊Filter
     */
    @Bean
    public FilterRegistrationBean getFilterRegistrationBean(){
        FilterRegistrationBean bean = new FilterRegistrationBean(new MyFilterOne());
        //bean.addUrlPatterns(new String[]{"*.do","*.jsp"});
        bean.addUrlPatterns("/*");
        return bean;
    }
}

測試結(jié)果與3.1相同。

總結(jié):

要想調(diào)用配置一個過濾器:

1)啟動類上增加注解@ServletComponentScan

2)新建一個類使其實現(xiàn)Filter接口,并實現(xiàn)里面的三個方法

3)在新建類上加上@WebFilter()注解,配置需要攔截的規(guī)則

4)在doFilter方法中控制filterChain.doFilter(servletRequest, servletResponse)調(diào)用

同樣,如果前后端交互有遇到跨域問題的,也可以通過Filter解決(親測有效),如:

以上只是部分內(nèi)容,為了維護(hù)方便,本文已遷移到新地址:java過濾器(Filter – 編程屋文章來源地址http://www.zghlxwxcb.cn/news/detail-828257.html

到了這里,關(guān)于java過濾器(Filter)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 過濾器Filter

    過濾器Filter

    什么是Filter? Filter表示過濾器,是JavaWeb三大組件(Servlet、FIlter、Listener)之一。 過濾器可以把對資源的請求攔截下來,總而實現(xiàn)一些特殊的功能 使用過濾器后,要想訪問web服務(wù)器上的資源,必須先經(jīng)過過濾器,過濾器處理完畢后,才可以訪問對應(yīng)的資源。 過濾器一般完成

    2023年04月12日
    瀏覽(28)
  • 認(rèn)識Filter(過濾器)

    認(rèn)識Filter(過濾器)

    Filter介紹 在計算機(jī)編程中,F(xiàn)ilter(過濾器)是一種用于對數(shù)據(jù)流進(jìn)行處理的軟件組件。Filter 的作用是從輸入流中獲取數(shù)據(jù),對其進(jìn)行處理后再將其寫入輸出流中。Filter 組件通常用于數(shù)據(jù)校驗、數(shù)據(jù)轉(zhuǎn)換、數(shù)據(jù)壓縮等方面,以及對網(wǎng)絡(luò)通信進(jìn)行處理。在 Web 開發(fā)中,F(xiàn)ilter 是

    2024年02月02日
    瀏覽(31)
  • SpringCloudGateway--過濾器(內(nèi)置filter)

    SpringCloudGateway--過濾器(內(nèi)置filter)

    目錄 一、概覽 二、內(nèi)置過濾器 1、StripPrefix 2、AddRequestHeader 3、AddResponseHeader 4、DedupeResponseHeader 5、AddRequestParameter 6、CircuitBreaker 7、FallbackHeaders 8、RequestRateLimiter 9、RedirectTo 10、RemoveRequestHeader 11、RemoveResponseHeader 12、RemoveRequestParameter 13、RewritePath? 14、RewriteResponseHeader? 15、S

    2024年02月01日
    瀏覽(28)
  • 布隆過濾器(Bloom Filter)

    布隆過濾器(Bloom Filter)

    通常我們會遇到很多要判斷一個元素是否在某個集合中的業(yè)務(wù)場景,一般想到的是將集合中所有元素保存起來,然后通過比較確定。鏈表、樹、散列表(又叫哈希表,Hash table)等等數(shù)據(jù)結(jié)構(gòu)都是這種思路。但是隨著集合中元素的增加,我們需要的存儲空間也會呈現(xiàn)線性增長,

    2024年02月08日
    瀏覽(34)
  • JavaWeb 中 Filter過濾器

    JavaWeb 中 Filter過濾器

    @ 目錄 Filter過濾器 每博一文案 1. Filter 過濾器的概述 2. Filter 過濾器的編寫 3. Filter 過濾器的執(zhí)行過程解析 3.1 Filter 過濾結(jié)合 Servlet 的使用 4. Filter 過濾器的攔截路徑: 4.1 精確匹配路徑 4.2 目錄匹配 4.3 前后綴名路徑匹配 4.4 所有路徑匹配 5. 設(shè)置 Filter 執(zhí)行順序 6. Filter 過濾器中

    2024年02月03日
    瀏覽(23)
  • PHP偽協(xié)議filter詳解,php://filter協(xié)議過濾器

    PHP偽協(xié)議filter詳解,php://filter協(xié)議過濾器

    「作者主頁」: 士別三日wyx 「作者簡介」: CSDN top100、阿里云博客專家、華為云享專家、網(wǎng)絡(luò)安全領(lǐng)域優(yōu)質(zhì)創(chuàng)作者 「推薦專欄」: 對網(wǎng)絡(luò)安全感興趣的小伙伴可以關(guān)注專欄《網(wǎng)絡(luò)安全入門到精通》 php:// 用來訪問輸入和輸出流(I/O streams)。 輸入/輸出流也就是 「數(shù)據(jù)流」

    2024年02月08日
    瀏覽(28)
  • 結(jié)果過濾器—MVC項目中結(jié)果過濾器(Result Filter)使用

    結(jié)果過濾器—MVC項目中結(jié)果過濾器(Result Filter)使用

    結(jié)果過濾器( ResultFilter ),是對執(zhí)行的Action結(jié)果進(jìn)行處理的一種AOP思想,適用于任何需要直接環(huán)繞 View 或格式化處理的邏輯。結(jié)果過濾器可以 替換或更改 Action 結(jié)果 。在 IActionResult 執(zhí)行的前后執(zhí)行,使用它能夠控制Action的執(zhí)行結(jié)果,比如:格式化結(jié)果等。需要注意的是,它只

    2024年02月12日
    瀏覽(102)
  • 登錄校驗-Filter-登錄校驗過濾器

    登錄校驗-Filter-登錄校驗過濾器

    目錄 思路 登錄校驗Filter-流程 步驟 流程圖 登錄校驗Filter-代碼 過濾器類 工具類 測試登錄 登錄接口功能請求 其他接口功能請求 前后端聯(lián)調(diào)? 前端訪問登錄接口,登陸成功后,服務(wù)端會生成一個JWT令牌,并返回給前端,前端會將JWT令牌保存下來,在同一會話中共享JWT令牌信息

    2024年02月11日
    瀏覽(23)
  • SpringCloudGateway--過濾器(自定義filter)

    SpringCloudGateway--過濾器(自定義filter)

    目錄 一、概覽? 二、全局過濾器GlobalFilter 三、通過GatewayFilter實現(xiàn) 四、繼承AbstractGatewayFilterFactory ???????當(dāng)使用Spring Cloud Gateway構(gòu)建API網(wǎng)關(guān)時,可以利用Spring Cloud Gateway提供的內(nèi)置過濾器(filter)來實現(xiàn)對請求的處理和響應(yīng)的處理。過濾器可以在請求被路由之前或之后被執(zhí)

    2024年02月06日
    瀏覽(26)
  • gateway之過濾器(Filter)詳解

    gateway之過濾器(Filter)詳解

    在Spring Cloud中,過濾器(Filter)是一種關(guān)鍵的組件,用于在微服務(wù)架構(gòu)中處理和轉(zhuǎn)換傳入請求以及傳出響應(yīng)。過濾器位于服務(wù)網(wǎng)關(guān)或代理中,并通過攔截請求和響應(yīng)流量來提供各種功能。 過濾器在請求的不同生命周期階段執(zhí)行特定的操作,例如鑒權(quán)、認(rèn)證、請求轉(zhuǎn)發(fā)、限流、

    2024年02月05日
    瀏覽(20)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包