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

springMVC之?dāng)r截器

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


前言

攔截器


一、攔截器的配置

SpringMVC中的攔截器用于攔截控制器方法的執(zhí)行
SpringMVC中的攔截器需要實現(xiàn)HandlerInterceptor
SpringMVC的攔截器必須在SpringMVC的配置文件中進行配置:

   <mvc:interceptors>
<!--        <bean class="com.dragon.mvc.interceptors.FirstInterceptors"></bean>-->
<!--        <ref bean="firstInterceptor"></ref>-->
        <!-- 以上兩種配置方式都是對DispatcherServlet所處理的所有的請求進行攔截 -->
<!--        <mvc:interceptor>-->
<!--            <mvc:mapping path="/**"/>-->
<!--            <mvc:exclude-mapping path="/testRequestEntity"/>-->
<!--            <ref bean="firstInterceptors"></ref>-->
<!--        </mvc:interceptor>-->
        <ref bean="firstInterceptor"></ref>
        <ref bean="secondInterceptor"></ref>
    </mvc:interceptors>
    <!--
    以上配置方式可以通過ref或bean標簽設(shè)置攔截器,通過mvc:mapping設(shè)置需要攔截的請求,通過
    mvc:exclude-mapping設(shè)置需要排除的請求,即不需要攔截的請求
    -->

FirstIntercepor類:

package com.dragon.mvc.interceptors;

import org.springframework.stereotype.Component;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@Component
public class FirstInterceptor implements HandlerInterceptor {
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        System.out.println("FirstInterceptors----->preHandle");
        return true;
    }

    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
        System.out.println("FirstInterceptors----->postHandle");;
    }

    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
        System.out.println("FirstInterceptors----->afterCompletion");
    }
}

SecondInterceptor類:

package com.dragon.mvc.interceptors;

import org.springframework.stereotype.Component;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@Component
public class SecondInterceptor implements HandlerInterceptor {
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        System.out.println("SecondInterceptor----->preHandle");
        return true;
    }

    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
        System.out.println("SecondInterceptor----->postHandle");;
    }

    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
        System.out.println("SecondInterceptor----->afterCompletion");
    }
}

二、攔截器的三個抽象方法

SpringMVC中的攔截器有三個抽象方法:
preHandle:控制器方法執(zhí)行之前執(zhí)行preHandle(),其boolean類型的返回值表示是否攔截或放行,返回true為放行,即調(diào)用控制器方法;返回false表示攔截,即不調(diào)用控制器方法。
postHandle:控制器方法執(zhí)行之后執(zhí)行postHandle()
afterComplation:處理完視圖和模型數(shù)據(jù),渲染視圖完畢之后執(zhí)行afterComplation()。

三、多個攔截器的執(zhí)行順序

  • 若每個攔截器的preHandle()都返回true此時多個攔截器的執(zhí)行順序和攔截器在SpringMVC的配置文件的配置順序有關(guān):preHandle()會按照配置的順序執(zhí)行,而postHandle()和afterComplation()會按照配置的反序執(zhí)行
  • 若某個攔截器的preHandle()返回了false
    preHandle()返回false和它之前的攔截器的preHandle()都會執(zhí)行,postHandle()都不執(zhí)行,返回false的攔截器之前的攔截器的afterComplation()會執(zhí)行。
    在上面的代碼中FirstInterceptor和SecondInterceptor配置的順序,運行的結(jié)果如下:
    springMVC之?dāng)r截器,SpringMVC,java,spring,springMVC,后端
    如果把上訴攔截器的類中preHandle方法其中一個返回false呢,大家可以看一下效果。
    大家可以看一下源碼繼續(xù)深入了解一下就明白了。

總結(jié)

以上就是攔截器的講述。文章來源地址http://www.zghlxwxcb.cn/news/detail-690157.html

到了這里,關(guān)于springMVC之?dāng)r截器的文章就介紹完了。如果您還想了解更多內(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īng)查實,立即刪除!

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

相關(guān)文章

  • SpringMVC攔截器 (Interceptor)

    ????????Spring MVC中的攔截器(Interceptor)類似于Servlet中的過濾器(Filter),它主要用于攔截用戶請求并作相應(yīng)的處理。例如通過攔截器可以進行權(quán)限驗證、判斷用戶是否登錄等。 ????????攔截器依賴于web框架,在實現(xiàn)上基于Java的反射機制,屬于面向切面編程(AOP)的

    2024年01月22日
    瀏覽(34)
  • 12、SpringMVC之?dāng)r截器

    12、SpringMVC之?dāng)r截器

    創(chuàng)建名為spring_mvc_interceptor的新module,過程參考9.1節(jié)和9.5節(jié) 與自定義的過濾器一樣,自定義的攔截器也要配置后才能生效; 過濾器是服務(wù)器中的組件,所以配置到 web.xml 中; 攔截器是 springmvc 中的組件,因此要配置到 springmvc 的配置文件中。 因為在配置攔截器時,沒有指定要

    2024年02月05日
    瀏覽(28)
  • 一文學(xué)會 SpringMVC 攔截器

    一文學(xué)會 SpringMVC 攔截器

    ?作者簡介:2022年 博客新星 第八 。熱愛國學(xué)的Java后端開發(fā)者,修心和技術(shù)同步精進。 ??個人主頁:Java Fans的博客 ??個人信條:不遷怒,不貳過。小知識,大智慧。 ??當(dāng)前專欄:SSM 框架從入門到精通 ?特色專欄:國學(xué)周更-心性養(yǎng)成之路 ??本文內(nèi)容:一文學(xué)會 SpringM

    2024年02月02日
    瀏覽(26)
  • SpringMvc攔截器入門 -- SpringMVC快速入門保姆級教程(五)

    SpringMvc攔截器入門 -- SpringMVC快速入門保姆級教程(五)

    為了鞏固所學(xué)的知識,作者嘗試著開始發(fā)布一些學(xué)習(xí)筆記類的博客,方便日后回顧。當(dāng)然,如果能幫到一些萌新進行新技術(shù)的學(xué)習(xí)那也是極好的。作者菜菜一枚,文章中如果有記錄錯誤,歡迎讀者朋友們批評指正。 (博客的參考源碼可以在我主頁的資源里找到,如果在學(xué)習(xí)的

    2024年02月10日
    瀏覽(25)
  • SpringMVC Day 10 : 攔截器

    SpringMVC Day 10 : 攔截器

    攔截器是Spring MVC框架提供的一種強大的機制,用于在請求到達控制器之前或之后進行預(yù)處理和后處理。它可以攔截并處理請求,對請求進行必要的修改或驗證,以及在請求返回給客戶端之前進行額外的操作。攔截器可以幫助我們實現(xiàn)各種需求,如身份驗證、日志記錄、性能監(jiān)

    2024年02月06日
    瀏覽(19)
  • springmvc統(tǒng)一異常處理攔截器

    使用@RestControllerAdvice+@ExceptionHandler實現(xiàn) 也可以使用@ControllerAdvice+@ResponseBody+@ExceptionHandler實現(xiàn) 創(chuàng)建一個異常處理的類,放在config包下 ?組件類: ?也可以讓不同的異常返回不同的結(jié)果,捕獲什么異常由@ExceptionHandler的value屬性決定,傳入一個類對象(可以通過反射獲得) ?

    2024年02月15日
    瀏覽(24)
  • SpringMVC的攔截器(Interceptor)

    SpringMVC的攔截器(Interceptor)

    對于攔截器這節(jié)的知識,我們需要學(xué)習(xí)如下內(nèi)容: 攔截器概念 入門案例 攔截器參數(shù) 攔截器工作流程分析 講解攔截器的概念之前,我們先看一張圖: (1)瀏覽器發(fā)送一個請求會先到Tomcat的web服務(wù)器 (2)Tomcat服務(wù)器接收到請求以后,會去判斷請求的是靜態(tài)資源還是動態(tài)資源 (3)如果是

    2024年02月09日
    瀏覽(30)
  • SpringMvc攔截器和手寫模擬SpringMvc工作流程源碼詳解

    SpringMvc攔截器和手寫模擬SpringMvc工作流程源碼詳解

    目錄 1. SpringMvc簡介 1.1 什么是MVC 1.2 什么是SpringMvc 1.3 SpringMvc 能干什么 1.4 SpringMvc 工作流程 2. SpringMvc攔截器和過濾器 2.1 攔截器 2.1.1 攔截器作用 2.1.2 攔截器和過濾器的區(qū)別 2.1.3 攔截器方法說明 2.1.4 多個攔截器執(zhí)行順序 2.1.5 自定義攔截器 2.2?過濾器(附加) 3. 手寫模擬Spri

    2024年02月09日
    瀏覽(25)
  • SpringMVC中攔截器的簡單使用

    步驟一:創(chuàng)建攔截器類 首先,我們需要創(chuàng)建一個攔截器類,該類需要實現(xiàn) HandlerInterceptor 接口。這個接口定義了三個方法,分別在請求處理前、請求處理后和視圖渲染后執(zhí)行。 步驟二:創(chuàng)建配置類 上述配置類使用了 @Configuration 注解,表示這是一個配置類。通過 @Bean 注解將

    2024年01月17日
    瀏覽(21)
  • SpringMVC攔截器和異常處理機制

    SpringMVC攔截器和異常處理機制

    SpringMVC攔截器類似于過濾器,用于進行預(yù)處理和后處理 將攔截器按照一定順序連接成一條鏈,就是攔截器鏈 創(chuàng)建攔截器類實現(xiàn)HandlerInterceptor接口 配置攔截器 測試攔截器的攔截效果 三個方法的執(zhí)行:在配置文件中依次配置兩個攔截器分別為1和2,則執(zhí)行順序是:1的 preHandle

    2024年02月16日
    瀏覽(27)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包