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

Java?SpringMVC實(shí)現(xiàn)自定義攔截器

 更新時(shí)間:2022年03月15日 16:00:02   作者:程序員阿紅  
這篇文章主要為大家詳細(xì)介紹了SpringMVC實(shí)現(xiàn)自定義攔截器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助

SpringMVC實(shí)現(xiàn)自定義攔截器

1 攔截器(interceptor)的作用

Spring MVC 的攔截器類似于 Servlet 開(kāi)發(fā)中的過(guò)濾器 Filter,用于對(duì)處理器進(jìn)行預(yù)處理和后處理。

將攔截器按一定的順序聯(lián)結(jié)成一條鏈,這條鏈稱為攔截器鏈(InterceptorChain)。在訪問(wèn)被攔截的方法或字段時(shí),攔截器鏈中的攔截器就會(huì)按其之前定義的順序被調(diào)用。攔截器也是AOP思想的具體實(shí)現(xiàn)。

2 攔截器和過(guò)濾器區(qū)別

關(guān)于interceptor和filter的區(qū)別,如圖所示:

image-20220312175950052

3.實(shí)現(xiàn)過(guò)程

步驟分析:

1.創(chuàng)建攔截器類實(shí)現(xiàn)HandlerInterceptor接口

2.配置攔截器

3.測(cè)試攔截器的攔截效果

3.1創(chuàng)建攔截器類實(shí)現(xiàn)HandlerInterceptor接口

public class MyInterceptor implements HandlerInterceptor {
    /**
     *         preHandle: 在目標(biāo)方法執(zhí)行之前 進(jìn)行攔截   return false:不放行
     */
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        System.out.println("preHandle1....");
        return true;
    }
    /**
     *       postHandle: 在目標(biāo)方法執(zhí)行之后,視圖對(duì)象返回之前,執(zhí)行的方法
     */
    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
        System.out.println("postHandle1....");
    }
    /**
     *        afterCompletion:在流程都執(zhí)行完成后,執(zhí)行的方法
     */
    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
        System.out.println("afterCompletion1....");
    }

}

3.2配置攔截器

<!--    配置攔截器-->
    <mvc:interceptors>
        <mvc:interceptor>
            <!--對(duì)哪些資源執(zhí)行攔截操作 path="/**"表示對(duì)controller層所有方法進(jìn)行攔截 -->
            <mvc:mapping path="/**" />
            <bean class="com.weihong.interceptor.MyInterceptor" />
        </mvc:interceptor>
    </mvc:interceptors>

3.3測(cè)試攔截器的攔截效果

    @RequestMapping("/target")
    public String targetMethed(){
        System.out.println("目標(biāo)方法執(zhí)行了");
        return "interceptor";
    }

3.4編寫(xiě)jsp頁(yè)面

<html>
<head>
    <title>Title</title>
</head>
<body>
    <h3>success~~~~~~</h3>
    <% System.out.println("視圖執(zhí)行了....");%>
</body>
</html>

3.5測(cè)試結(jié)果

image-20220312181744982

4. 攔截器鏈

開(kāi)發(fā)中攔截器可以單獨(dú)使用,也可以同時(shí)使用多個(gè)攔截器形成一條攔截器鏈。開(kāi)發(fā)步驟和單個(gè)攔截器是一樣的,只不過(guò)注冊(cè)的時(shí)候注冊(cè)多個(gè),注意這里注冊(cè)的順序就代表攔截器執(zhí)行的順序。

同上,再編寫(xiě)一個(gè)MyHandlerInterceptor2操作,測(cè)試執(zhí)行順序:

<!--配置攔截器-->
<mvc:interceptors>
  <mvc:interceptor>
    <!--攔截器路徑配置-->
    <mvc:mapping path="/**"/>
    <!--自定義攔截器類-->
    <bean class="com.lagou.interceptor.MyInterceptor1"></bean>
  </mvc:interceptor>
  <mvc:interceptor>
    <!--攔截器路徑配置-->
    <mvc:mapping path="/**"/>
    <!--自定義攔截器類-->
    <bean class="com.lagou.interceptor.MyInterceptor2"></bean>
  </mvc:interceptor>
</mvc:interceptors>

5. 知識(shí)小結(jié)

攔截器中的方法說(shuō)明如下:

image-20220312181936076

總結(jié)

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

相關(guān)文章

  • 基于SpringBoot創(chuàng)建Web頁(yè)面并熱更新的操作步驟

    基于SpringBoot創(chuàng)建Web頁(yè)面并熱更新的操作步驟

    SpringBoot是一個(gè)用于快速開(kāi)發(fā)單個(gè)微服務(wù)的框架,它基于 Spring 框架,簡(jiǎn)化了Spring應(yīng)用的初始化過(guò)程和開(kāi)發(fā)流程,本文給大家介紹了如何基于SpringBoot創(chuàng)建Web頁(yè)面并熱更新,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-11-11
  • Java實(shí)現(xiàn)樹(shù)形結(jié)構(gòu)管理的組合設(shè)計(jì)模式

    Java實(shí)現(xiàn)樹(shù)形結(jié)構(gòu)管理的組合設(shè)計(jì)模式

    Java組合模式是一種結(jié)構(gòu)型設(shè)計(jì)模式,它允許將對(duì)象組合成樹(shù)形結(jié)構(gòu)以表示“部分-整體”的層次結(jié)構(gòu)。組合模式使得用戶可以使用統(tǒng)一的方式處理單個(gè)對(duì)象和對(duì)象組合,從而簡(jiǎn)化了系統(tǒng)的設(shè)計(jì)和維護(hù)
    2023-04-04
  • 詳解Java創(chuàng)建線程的五種常見(jiàn)方式

    詳解Java創(chuàng)建線程的五種常見(jiàn)方式

    Java中如何進(jìn)行多線程編程,如何使用多線程?不要擔(dān)心,本文將為你詳細(xì)介紹一下Java實(shí)現(xiàn)線程創(chuàng)建的五種常見(jiàn)方式,感興趣的可以跟隨小編學(xué)習(xí)一下
    2022-01-01
  • java時(shí)間 java.util.Calendar深入分析

    java時(shí)間 java.util.Calendar深入分析

    這篇文章主要介紹了java時(shí)間 java.util.Calendar深入分析的相關(guān)資料,需要的朋友可以參考下
    2017-02-02
  • Spring?boot2.0?實(shí)現(xiàn)日志集成的方法(3)

    Spring?boot2.0?實(shí)現(xiàn)日志集成的方法(3)

    這篇文章主要介紹了Spring?boot2.0?實(shí)現(xiàn)日志集成的方法,基于上一篇將日志信息根據(jù)類別輸出到不同的文件中,這篇文章將通過(guò)日志來(lái)監(jiān)控用戶的操作行為、請(qǐng)求的耗時(shí)情況,針對(duì)耗時(shí)久的請(qǐng)求進(jìn)行性能分析,提升系統(tǒng)性能,需要的小伙伴可以參考一下
    2022-04-04
  • SpringBoot如何導(dǎo)出Jar包并測(cè)試(使用IDEA)

    SpringBoot如何導(dǎo)出Jar包并測(cè)試(使用IDEA)

    這篇文章主要介紹了SpringBoot如何導(dǎo)出Jar包并測(cè)試(使用IDEA),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • java實(shí)現(xiàn)的MD5摘要算法完整實(shí)例

    java實(shí)現(xiàn)的MD5摘要算法完整實(shí)例

    這篇文章主要介紹了java實(shí)現(xiàn)的MD5摘要算法,結(jié)合完整實(shí)例形式分析了java實(shí)現(xiàn)md5單項(xiàng)加密的具體步驟與相關(guān)操作技巧,需要的朋友可以參考下
    2017-01-01
  • 使用?EasyCode生成springboot+mybatis基礎(chǔ)程序的實(shí)現(xiàn)示例

    使用?EasyCode生成springboot+mybatis基礎(chǔ)程序的實(shí)現(xiàn)示例

    本文主要介紹了使用?EasyCode生成springboot+mybatis基礎(chǔ)程序的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • java如何刪除非空文件夾

    java如何刪除非空文件夾

    這篇文章主要介紹了java如何刪除非空文件夾問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • 高并發(fā)下restTemplate的錯(cuò)誤分析方式

    高并發(fā)下restTemplate的錯(cuò)誤分析方式

    這篇文章主要介紹了高并發(fā)下restTemplate的錯(cuò)誤分析方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-10-10

最新評(píng)論

讷河市| 新绛县| 修文县| 昭觉县| 沁源县| 灌云县| 邛崃市| 姚安县| 九龙坡区| 织金县| 儋州市| 城固县| 台江县| 邹平县| 文水县| 洪雅县| 九江县| 克拉玛依市| 抚松县| 北京市| 广河县| 大荔县| 和龙市| 吉林市| 云阳县| 怀安县| 民权县| 吐鲁番市| 宜良县| 宿迁市| 工布江达县| 翁牛特旗| 潜江市| 精河县| 咸丰县| 康保县| 东山县| 元朗区| 赞皇县| 射阳县| 揭东县|