亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

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

1 攔截器(interceptor)的作用

Spring MVC 的攔截器類似于 Servlet 開發(fā)中的過濾器 Filter,用于對處理器進行預處理和后處理。

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

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

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

image-20220312175950052

3.實現(xiàn)過程

步驟分析:

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

2.配置攔截器

3.測試攔截器的攔截效果

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

public class MyInterceptor implements HandlerInterceptor {
    /**
     *         preHandle: 在目標方法執(zhí)行之前 進行攔截   return false:不放行
     */
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        System.out.println("preHandle1....");
        return true;
    }
    /**
     *       postHandle: 在目標方法執(zhí)行之后,視圖對象返回之前,執(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>
            <!--對哪些資源執(zhí)行攔截操作 path="/**"表示對controller層所有方法進行攔截 -->
            <mvc:mapping path="/**" />
            <bean class="com.weihong.interceptor.MyInterceptor" />
        </mvc:interceptor>
    </mvc:interceptors>

3.3測試攔截器的攔截效果

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

3.4編寫jsp頁面

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

3.5測試結(jié)果

image-20220312181744982

4. 攔截器鏈

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

同上,再編寫一個MyHandlerInterceptor2操作,測試執(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. 知識小結(jié)

攔截器中的方法說明如下:

image-20220312181936076

總結(jié)

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

相關(guān)文章

  • Java多線程之鎖的強化學習

    Java多線程之鎖的強化學習

    Java多線程的鎖都是基于對象的,Java中的每一個對象都可以作為一個鎖。這篇文章主要來通過一下示例為大家強化一下鎖的相關(guān)知識的掌握,希望對大家有所幫助
    2023-02-02
  • 通過JDK源碼分析關(guān)閉鉤子詳解

    通過JDK源碼分析關(guān)閉鉤子詳解

    一個簡單的關(guān)閉鉤子,程序被中斷或者正常退出時會顯示 hook shutdown!非常的優(yōu)雅,有效,巧妙。那么這篇文章就來給大家介紹關(guān)于通過JDK源碼分析關(guān)閉鉤子的相關(guān)資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考借鑒。
    2017-11-11
  • java 反射機制詳解及實例代碼

    java 反射機制詳解及實例代碼

    這篇文章主要介紹了java 反射機制詳解及實例代碼的相關(guān)資料,需要的朋友可以參考下
    2016-11-11
  • Java 8新特性 內(nèi)建函數(shù)式接口詳解

    Java 8新特性 內(nèi)建函數(shù)式接口詳解

    這篇文章主要介紹了Java 8新特性 內(nèi)建函數(shù)式接口詳解的相關(guān)資料,這里主要介紹4個基本函數(shù)式接口,需要的朋友可以參考下
    2016-12-12
  • Java集合Set的簡單使用解析

    Java集合Set的簡單使用解析

    這篇文章主要介紹了Java集合Set的簡單使用解析,Set接口是Collection的子接口,Set接口相較于Collection接口沒有提供額外的方法,Set 集合不允許包含相同的元素,如果試把兩個相同的元素加入同一個 Set 集合中,則添加操作失敗,需要的朋友可以參考下
    2023-11-11
  • 詳解Java如何實現(xiàn)圖像灰度化

    詳解Java如何實現(xiàn)圖像灰度化

    這篇文章主要介紹了灰度化的幾種方法,以及如何使用Java實現(xiàn)灰度化。同時分析了網(wǎng)上一種常見卻并不妥當?shù)腏ava灰度化實現(xiàn),以及證明了opencv的灰度化是使用“加權(quán)灰度化”法,下面一起來看看。
    2016-08-08
  • 詳解java中List中set方法和add方法的區(qū)別

    詳解java中List中set方法和add方法的區(qū)別

    本文主要介紹了詳解java中List中set方法和add方法的區(qū)別,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-08-08
  • RocketMQ延遲消息超詳細講解

    RocketMQ延遲消息超詳細講解

    延時消息是指發(fā)送到 RocketMQ 后不會馬上被消費者拉取到,而是等待固定的時間,才能被消費者拉取到。延時消息的使用場景很多,比如電商場景下關(guān)閉超時未支付的訂單,某些場景下需要在固定時間后發(fā)送提示消息
    2023-02-02
  • java判斷請求是來自PC端還是手機端小技巧

    java判斷請求是來自PC端還是手機端小技巧

    這篇文章主要為大家介紹了java判斷請求是來自PC端還是手機端小技巧,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-06-06
  • Springboot整合Mybatis傳值的常用方式總結(jié)

    Springboot整合Mybatis傳值的常用方式總結(jié)

    今天給大家?guī)淼氖顷P(guān)于Springboot的相關(guān)知識,文章圍繞著Springboot整合Mybatis傳值的常用方式展開,文中有非常詳細的介紹及代碼示例,需要的朋友可以參考下
    2021-06-06

最新評論