Spring MVC 執行流程

2021-10-24 00:20:37 字數 2045 閱讀 7471

所有的流程都可以檢視org.springframework.web.servlet.dispatcherservlet源**。

initmultipartresolver

(context)

;initlocaleresolver

(context)

;initthemeresolver

(context)

;(context)

;inithandleradapters

(context)

;inithandlerexceptionresolvers

(context)

;initrequesttoviewnametranslator

(context)

;initviewresolvers

(context)

;initflashmapmanager

(context)

;

元件的預設值在dispatcherservlet.properties檔案中:

遍歷初始化好的listsupports(handler)方法,找到handler對應的handleradapter

如果是gethead請求,呼叫handleradaptergetlastermodified()方法,如果是最後修改時間沒有變,則直接返回。

依次正序遍歷handlerexecutionchain中的interceptorsprehandler()方法, 如果其中有乙個返回false,則從當前執行的interceptor開始往前分別執行aftercompletion()方法

由具體的handleradapter實現handler的具體操作,返回乙個modelandview:

如果這時觸發了非同步機制(asyncmanager.isconcurrenthandlingstarted()),則處理到此為止。

如果返回的modelandview的view欄位沒有設定,則通過viewnametranslator返回乙個預設的view名稱。

以上處理中,如果有modelandviewdefiningexception異常,則設定modelandview為異常指定的modelandview;如果是其他異常,則遍歷listresolveexception()方法,返回指定的modelandview。

呼叫modelandview中view的render方法,設定view資訊。

通過handlerexecutionchaintriggeraftercompletion()方法,依次倒序遍歷handlerexecutionchain中的interceptorsaftercompletion()方法。

SpringMVC執行流程

執行流程 第一步 發起請求到前端控制器 dispatcherservlet 可以根據xml配置 註解進行查詢 第四步 前端控制器呼叫處理器介面卡去執行handler 第五步 處理器介面卡去執行handler 第六步 handler執行完成給介面卡返回modelandview 第七步 處理器介面卡向前...

Spring MVC執行流程

1 使用者發起請求,請求到dispatcherservlet前端控制器 dispatcherservlet 排程 負責 request 和response 負責呼叫處理器對映器查詢 handler 負責呼叫處理器介面卡執行 handler 有了前端控制器降低了各各元件之間的耦合性,系統擴充套件性提高...

SpringMVC執行流程

首先明確,執行流程中涉及到了哪些元件 前端控制器 dispatcherservlet 相當於乙個訊號中心,任何交流都需要經過他,再分配給其他元件 處理器介面卡 handleradapter 相當於手,當找到了對應的控制器,根據控制器選擇對應的介面卡,然後用這個介面卡去執行確定了的控制器 處理器 co...