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

springbboot攔截器,過濾器,監(jiān)聽器及執(zhí)行流程

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

執(zhí)行流程

過濾器是在請求進(jìn)入容器后,但請求進(jìn)入servlet之前進(jìn)行預(yù)處理的。請求結(jié)束返回也是,是在servlet處理完后,返回給前端之前

springbboot攔截器,過濾器,監(jiān)聽器及執(zhí)行流程,java基礎(chǔ)(前后端),java,過濾器
請求按照上圖進(jìn)入conteoller后執(zhí)行完再返回

過濾器(Filter):

過濾器是Servlet規(guī)范中定義的一種組件,可以用于在請求進(jìn)入Web應(yīng)用程序之前或響應(yīng)離開Web應(yīng)用程序之前對請求進(jìn)行預(yù)處理或后處理。過濾器的應(yīng)用方式是通過在web.xml或Servlet注解中配置。

執(zhí)行流程:
請求進(jìn)入Web容器 → 過濾器預(yù)處理請求 → 請求傳遞給下一個過濾器或目標(biāo)Servlet → 響應(yīng)離開Web容器之前過濾器后處理響應(yīng)。

攔截器(Interceptor):

攔截器是Spring框架提供的一種組件,可以用于在請求進(jìn)入控制器(Controller)之前或渲染視圖之前執(zhí)行自定義邏輯。攔截器的應(yīng)用方式是通過實現(xiàn)HandlerInterceptor接口并注冊到Spring容器中。

執(zhí)行流程:
請求進(jìn)入DispatcherServlet → 攔截器預(yù)處理請求 → 請求傳遞給下一個攔截器或控制器 → 控制器處理請求 → 渲染視圖 → 攔截器后處理響應(yīng)。

監(jiān)聽器(Listener):

監(jiān)聽器是Servlet規(guī)范中定義的一種組件,可以用于監(jiān)聽Web應(yīng)用程序中的事件,例如應(yīng)用程序啟動、請求到達(dá)、會話創(chuàng)建和銷毀等。監(jiān)聽器的應(yīng)用方式是通過在web.xml或Servlet注解中配置。

執(zhí)行流程:
監(jiān)聽器注冊到Web容器中 → 監(jiān)聽器監(jiān)聽特定事件發(fā)生并執(zhí)行相應(yīng)邏輯。

攔截器的使用

創(chuàng)建一個攔截器類:
首先,您需要創(chuàng)建一個實現(xiàn)HandlerInterceptor接口的攔截器類。該接口定義了在請求處理的不同階段執(zhí)行的方法,例如在請求之前、請求處理之后以及請求完成之后。

import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class CustomInterceptor implements HandlerInterceptor {

    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        // 在請求之前執(zhí)行的邏輯
        return true; // 返回true繼續(xù)執(zhí)行請求,返回false中斷請求
    }

    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
        // 在請求處理之后執(zhí)行的邏輯
    }

    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
        // 在請求完成之后執(zhí)行的邏輯
    }
}

注冊攔截器:
接下來,您需要將攔截器注冊到Spring Boot應(yīng)用程序中??梢酝ㄟ^創(chuàng)建一個配置類來完成這一步,使用WebMvcConfigurer接口的addInterceptors()方法注冊攔截器。

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@Configuration
public class InterceptorConfig implements WebMvcConfigurer {

    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(new CustomInterceptor())
                .addPathPatterns("/**"); // 可以指定攔截的路徑,例如 "/api/**"
    }
}

過濾器的使用

創(chuàng)建一個過濾器類:
創(chuàng)建一個實現(xiàn)javax.servlet.Filter接口的過濾器類,實現(xiàn)過濾器的邏輯。

import javax.servlet.*;
import java.io.IOException;

public class CustomFilter implements Filter {

    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
        // 初始化過濾器(可選)
    }

    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
        // 過濾邏輯
        chain.doFilter(request, response); // 傳遞請求給下一個過濾器或目標(biāo)Servlet
    }

    @Override
    public void destroy() {
        // 銷毀過濾器(可選)
    }
}

注冊過濾器:
在Spring Boot項目中,您可以使用@WebFilter注解來注冊過濾器。在您想要應(yīng)用過濾器的類上添加該注解,并設(shè)置過濾器的URL模式。

import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import java.io.IOException;

@Component
@WebFilter(urlPatterns = "/api/*") // 指定過濾的URL模式
@Order(1) // 指定過濾器順序
public class CustomFilter implements Filter {

    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
        // 初始化過濾器(可選)
    }

    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
        // 過濾邏輯
        chain.doFilter(request, response); // 傳遞請求給下一個過濾器或目標(biāo)Servlet
    }

    @Override
    public void destroy() {
        // 銷毀過濾器(可選)
    }
}

啟動應(yīng)用程序:
在啟動Spring Boot應(yīng)用程序時,過濾器將自動注冊并應(yīng)用于相應(yīng)的URL模式。

請注意,當(dāng)使用注解進(jìn)行過濾器的注冊時,需要確保在Spring Boot主類上添加@ServletComponentScan注解,以掃描和加載@WebFilter注解。

這樣,您就可以在Spring Boot項目中使用過濾器了。過濾器可以用于各種場景,如請求日志記錄、字符編碼設(shè)置、安全驗證等。根據(jù)您的需求,您可以在過濾器的doFilter()方法中編寫相應(yīng)的邏輯。文章來源地址http://www.zghlxwxcb.cn/news/detail-537085.html

到了這里,關(guān)于springbboot攔截器,過濾器,監(jiān)聽器及執(zhí)行流程的文章就介紹完了。如果您還想了解更多內(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)文章

  • 過濾器和攔截器的辨析

    過濾器和攔截器都是為了在請求到達(dá)目標(biāo)處理器(Servlet或Controller)之前或者之后插入自定義的處理邏輯 過濾器 : 遵循AOP(面向切面編程)思想實現(xiàn),基于Servlet規(guī)范提供的Filter接口,它是位于客戶端請求與服務(wù)器響應(yīng)之間的一個組件,依賴于Servlet容器。當(dāng)請求到達(dá)服務(wù)器時,過濾器

    2024年03月11日
    瀏覽(19)
  • 【SpringBoot篇】Interceptor攔截器 | 攔截器和過濾器的區(qū)別

    【SpringBoot篇】Interceptor攔截器 | 攔截器和過濾器的區(qū)別

    攔截器(Interceptor)是一種軟件設(shè)計模式,用于在應(yīng)用程序處理請求或響應(yīng)時對其進(jìn)行攔截和修改。攔截器可以在整個應(yīng)用程序中使用,用于執(zhí)行跨越多個層的通用任務(wù),如身份驗證、授權(quán)、緩存、日志記錄、性能計量等。 在Web開發(fā)中,攔截器通常用于在請求到達(dá)控制器之前

    2024年02月04日
    瀏覽(28)
  • JAVA中的攔截器、過濾器

    JAVA中的攔截器、過濾器

    相關(guān)解釋:攔截器依賴于頁面有訪問controller的操作,且屬于SpringMVC體系的動態(tài)攔截調(diào)用機(jī)制,是java中AOP思想的運用。 來看看源碼作者的注釋: 其中倒數(shù)第二段話,描述其類似于過濾器,但其特點只允許使用自定義預(yù)處理,不能處理程序本身。此處可體現(xiàn)AOP思想。 過濾器是

    2024年02月13日
    瀏覽(19)
  • 過濾器Filter,攔截器Interceptor

    過濾器Filter,攔截器Interceptor

    過濾器Filter 快速入門 ? 詳情 登錄校驗-Filter 攔截器Interceptor 簡介快速入門 定義攔截器 配置攔截器 詳解(攔截路徑,執(zhí)行流程) 登錄校驗-Interceptor

    2024年02月07日
    瀏覽(31)
  • 登錄頁面jwt密鑰,過濾器,攔截器,異常處理

    需求: 用戶未登錄時,訪問其他也沒面,操作添加、刪除等操作時,強(qiáng)行跳轉(zhuǎn)至登錄頁面。 實現(xiàn)方法: 1.使用Cookie,登錄后后端添加一個cookie,每次頁面判斷是否有cookie, 2。使用session,原理同上,只不過session是存儲在服務(wù)器里的,cookie是在瀏覽器里。 3。使用jwt令牌,登

    2023年04月25日
    瀏覽(26)
  • spring boot 過濾器&攔截器與aop

    spring boot 過濾器&攔截器與aop

    在使用 Spring 框架時,可以通過在 web.xml 配置文件中注冊過濾器,使其在請求進(jìn)入 Spring 前就能夠進(jìn)行預(yù)處理。這樣可以在請求進(jìn)入 Spring MVC 的 DispatcherServlet 之前,對請求進(jìn)行攔截、修改或者過濾。 過濾器在 Spring 中的應(yīng)用場景包括但不限于: 字符編碼過濾:通過過濾器,在

    2024年02月01日
    瀏覽(22)
  • Spring Boot攔截器與過濾器的區(qū)別

    Spring Boot攔截器與過濾器的區(qū)別

    在使用Spring Boot開發(fā)Web應(yīng)用程序時,您可能需要在處理請求之前或之后執(zhí)行某些操作。這些操作可以包括身份驗證、日志記錄、性能監(jiān)測等。在這種情況下,您可以使用兩種不同的機(jī)制:攔截器和過濾器。本文將介紹這兩種機(jī)制及其區(qū)別,并提供一些示例代碼來演示如何在S

    2024年02月08日
    瀏覽(23)
  • 過濾器(Filter)和攔截器(Interceptor)有什么不同?

    過濾器(Filter)和攔截器(Interceptor)有什么不同?

    過濾器(Filter)和攔截器(Interceptor)是用于處理請求和響應(yīng)的中間件組件,但它們在實現(xiàn)方式和應(yīng)用場景上有一些不同。 過濾器 是Servlet規(guī)范中定義的一種組件,通常以Java類的形式實現(xiàn)。過濾器通過在 web.xml 配置文件中聲明來注冊,并在Web應(yīng)用程序的請求和響應(yīng)鏈中攔截請

    2024年02月07日
    瀏覽(24)
  • Spring中的攔截器與過濾器:原理、區(qū)別與案例解析

    Spring中的攔截器與過濾器:原理、區(qū)別與案例解析

    前言 在Web應(yīng)用中,我們經(jīng)常需要對用戶的請求進(jìn)行某種處理,比如權(quán)限驗證、日志記錄等。 Spring框架提供了兩種機(jī)制來實現(xiàn)這一需求:攔截器和過濾器。雖然它們的目標(biāo)相似,但在使用上存在一些差異。本篇文章我們將詳細(xì)探討這兩種機(jī)制的原理、區(qū)別,希望能給各位大佬

    2024年04月23日
    瀏覽(22)
  • 詳解過濾器Filter和攔截器Interceptor的區(qū)別和聯(lián)系

    詳解過濾器Filter和攔截器Interceptor的區(qū)別和聯(lián)系

    目錄 前言 區(qū)別 聯(lián)系 過濾器(Filter)和攔截器(Interceptor)都是用于在Web應(yīng)用程序中處理請求和響應(yīng)的組件,但它們在實現(xiàn)方式和功能上有一些區(qū)別。 1. 實現(xiàn)方式: - 過濾器是基于Servlet規(guī)范的組件,通過實現(xiàn) javax.servlet.Filter接口 來定義。過濾器可以在請求被處理之前和響應(yīng)被發(fā)送

    2024年02月11日
    瀏覽(24)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包