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

對handlerexecutionchain類的深入理解

 更新時(shí)間:2017年07月04日 08:36:07   投稿:jingxian  
下面小編就為大家?guī)硪黄獙andlerexecutionchain類的深入理解。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

HandlerExecutionChain類比較簡單,好理解。

/*
 * 處理器執(zhí)行鏈由處理器對象和攔截器組成。
 */
public class HandlerExecutionChain {

下面是類的部分屬性。

private final Object handler; //處理器對象。

  private HandlerInterceptor[] interceptors; //攔截器數(shù)組

  private List<HandlerInterceptor> interceptorList; //攔截器列表
/**
   * Apply preHandle methods of registered interceptors.
   * @return {@code true} if the execution chain should proceed with the
   * next interceptor or the handler itself. Else, DispatcherServlet assumes
   * that this interceptor has already dealt with the response itself.
   * 執(zhí)行已經(jīng)注冊的攔截的 preHandle()方法。如果返回true,則執(zhí)行鏈可以執(zhí)行下一個(gè)攔截器的preHandle()方法或 handler 自身。
   * 否則,
   */
  boolean applyPreHandle(HttpServletRequest request, HttpServletResponse response) throws Exception {
    HandlerInterceptor[] interceptors = getInterceptors();
    if (!ObjectUtils.isEmpty(interceptors)) {
      for (int i = 0; i < interceptors.length; i++) {
        HandlerInterceptor interceptor = interceptors[i];
        if (!interceptor.preHandle(request, response, this.handler)) {
          triggerAfterCompletion(request, response, null);
          return false;
        }
        this.interceptorIndex = i;
      }
    }
    return true;
  }
/*
   * 執(zhí)行已經(jīng)注冊的攔截器 postHandle()方法。
   */
  void applyPostHandle(HttpServletRequest request, HttpServletResponse response, ModelAndView mv) throws Exception {
    HandlerInterceptor[] interceptors = getInterceptors();
    if (!ObjectUtils.isEmpty(interceptors)) {
      for (int i = interceptors.length - 1; i >= 0; i--) {
        HandlerInterceptor interceptor = interceptors[i];
        interceptor.postHandle(request, response, this.handler, mv);
      }
    }
  }
/**
   * 這個(gè)方法只會(huì)執(zhí)行preHandle()方法已經(jīng)成功執(zhí)行并且返回true的攔截器中的postHandle()方法。
   */
  void triggerAfterCompletion(HttpServletRequest request, HttpServletResponse response, Exception ex)
      throws Exception {

    HandlerInterceptor[] interceptors = getInterceptors();
    if (!ObjectUtils.isEmpty(interceptors)) {
      for (int i = this.interceptorIndex; i >= 0; i--) {
        HandlerInterceptor interceptor = interceptors[i];
        try {
          interceptor.afterCompletion(request, response, this.handler, ex);
        }
        catch (Throwable ex2) {
          logger.error("HandlerInterceptor.afterCompletion threw exception", ex2);
        }
      }
    }
  }

以上這篇對handlerexecutionchain類的深入理解就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java中關(guān)于二叉樹的概念以及搜索二叉樹詳解

    Java中關(guān)于二叉樹的概念以及搜索二叉樹詳解

    二叉樹是一種很有用的非線性結(jié)構(gòu),日常的開發(fā)中常會(huì)用到,關(guān)于二叉樹的概念以及搜索二叉樹本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-09-09
  • JAVA中尋找最大的K個(gè)數(shù)解法

    JAVA中尋找最大的K個(gè)數(shù)解法

    尋找最大的K個(gè)數(shù),這個(gè)是面試中比較常見的一道題,網(wǎng)上也有很多例子,在這里是比較傳統(tǒng)的解法
    2014-04-04
  • SpringBoot整合Swagger2代碼實(shí)例

    SpringBoot整合Swagger2代碼實(shí)例

    這篇文章主要介紹了SpringBoot整合Swagger2代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-03-03
  • java 定時(shí)器Timer和TimerTask的使用詳解(執(zhí)行和暫停)

    java 定時(shí)器Timer和TimerTask的使用詳解(執(zhí)行和暫停)

    這篇文章主要介紹了java 定時(shí)器Timer和TimerTask的使用詳解(執(zhí)行和暫停),本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2023-11-11
  • Java打包Jar包后使用腳本執(zhí)行

    Java打包Jar包后使用腳本執(zhí)行

    本文詳細(xì)講解了Java打包Jar包后使用腳本執(zhí)行的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-12-12
  • Java調(diào)用接口如何獲取json數(shù)據(jù)解析后保存到數(shù)據(jù)庫

    Java調(diào)用接口如何獲取json數(shù)據(jù)解析后保存到數(shù)據(jù)庫

    這篇文章主要介紹了Java調(diào)用接口如何獲取json數(shù)據(jù)解析后保存到數(shù)據(jù)庫問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • Linux中JDK安裝配置教程

    Linux中JDK安裝配置教程

    這篇文章主要為大家詳細(xì)介紹了Linux中JDK安裝配置教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-02-02
  • 解決ObjectMapper序列換Map時(shí)候的坑

    解決ObjectMapper序列換Map時(shí)候的坑

    這篇文章主要介紹了解決ObjectMapper序列換Map時(shí)候的坑,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • 純java代碼實(shí)現(xiàn)抽獎(jiǎng)系統(tǒng)

    純java代碼實(shí)現(xiàn)抽獎(jiǎng)系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了純java代碼實(shí)現(xiàn)抽獎(jiǎng)系統(tǒng),無連接數(shù)據(jù)庫,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • java調(diào)用回調(diào)機(jī)制詳解

    java調(diào)用回調(diào)機(jī)制詳解

    這篇文章主要介紹了java調(diào)用回調(diào)機(jī)制詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07

最新評論

和田县| 噶尔县| 海安县| 高密市| 高阳县| 元谋县| 乐业县| 佛冈县| 锡林郭勒盟| 吕梁市| 白银市| 开平市| 嘉善县| 黄大仙区| 屯留县| 双牌县| 武威市| 盖州市| 台江县| 闻喜县| 阳谷县| 禄丰县| 谢通门县| 白河县| 万荣县| 永春县| 理塘县| 桑日县| 桦川县| 和龙市| 南阳市| 万载县| 保康县| 古丈县| 日照市| 孟连| 乌兰县| 同江市| 宾川县| 兰州市| 庐江县|