jfinal.2.2源碼閱讀(二)jfinal ActionHandler 處理器

jfinal.2.2源碼閱讀(一)jfinal 核心攔截器 ActionHandler

上一篇說道了jfinal核心攔截器JFinalFilter攔截到請求后會調(diào)用處理器來處理請求。jfinal.2.2源碼閱讀(一)jfinal 核心攔截器 JFinalFilter

handler.handle(target, request, response, isHandled);

那么這個handler就是我們今天要講的主題ActionHandler。

1、它是什么時候被初始化的?初始化的是那個實現(xiàn)類?

上一張中我們說到了 JFinalFilter.init 初始化的時候 調(diào)用了 JFinal.init() 函數(shù)進行初始化

在JFinal.init() 函數(shù)中又調(diào)用了 JFinal.initHandler() 函數(shù)

private void initHandler() {//第一步先創(chuàng)建了一個ActionHandler并且傳入actionMapping(路由映射),和constants(常量配置)Handler actionHandler = new ActionHandler(actionMapping, constants);// 經(jīng)過 HandlerFactory.getHandler 處理并且返回一個 handler 對象并且賦值給當前 JFinal類的 成員變量handler// Config.getHandlers().getHandlerList() 返回的是在 JFinal.init 函數(shù)中調(diào)用的// Config.configJFinal(jfinalConfig); 返回的是用戶在 JFinalCongig 中配置的處理器列表。handler = HandlerFactory.getHandler(Config.getHandlers().getHandlerList(), actionHandler);}

在來看看 HandlerFactory.getHandler 函數(shù)都做了什么?

public static Handler getHandler(ListhandlerList, Handler actionHandler) {

Handler result = actionHandler;

for (int i=handlerList.size()-1; i>=0; i--) {

Handler temp = handlerList.get(i);

temp.next = result;

temp.nextHandler = result;

result = temp;

}

return result;

}

上面的代碼其實很簡單,其實就是使用 Handler中的 next 屬性把用戶配置的處理器倒敘一個一個的串聯(lián)起來。并且在最后加上actionHandler處理器。然后返回用戶配置的第一個處理器。(所以用戶自己實現(xiàn)的處理器最后都得調(diào)用next.handle函數(shù)否則執(zhí)行不到 ActionHandler 處理器,也就沒法分配指定的控制器Controller執(zhí)行業(yè)務邏輯)總之最后會一直執(zhí)行到ActionHandler.handle函數(shù)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • jfinal 最大亮點就是零配置極速 WEB (通過對servlet的極薄封裝實現(xiàn)的極速)+ ORM (獨創(chuàng)Db ...
    堅強一點閱讀 775評論 0 1
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,644評論 19 139
  • importUIKit classViewController:UITabBarController{ enumD...
    明哥_Young閱讀 4,199評論 1 10
  • 古話說:謠言止于智者。 在信息閉塞消息流通緩慢的過去,人們大多通過面對面的交流、書籍報刊、電視廣播,獲得新的資訊。...
    白日夢想家_09閱讀 665評論 10 10
  • 清月難閱畫如雪,闌珊早無斑駁樂。 滿目瘡痍難作絕,卻道故人喜來虐。 舊游亭樓西山北,輕捻佐思觀鵑雀。 才疏難訴滄海...
    恰逢寒雨閱讀 260評論 0 0

友情鏈接更多精彩內(nèi)容