1.使用者向伺服器傳送請求,請求被springmvc前端控制器dispatcherservlet捕獲;
2.dispatcherservlet對請求的url進行解析,得到請求資源識別符號(uri):判斷請求uri對應的對映
1)不存在:
(1)再判斷是否配置了mvc:default-servlet-handler;
(2)如果沒有配置,則控制台報對映查詢不到,客戶端顯示404錯誤
(3)如果有配置,則執行目標資源(一般為靜態資源,如jsp,html)
2)存在:
(1)執行下面流程
4.dispatcherservlet根據獲得handler,選擇乙個合適的handleradapter;
5.如果成功獲得handleradapter,此時將開始執行***的prehandle(...)方法【正向】
6.提取request中的模型資料,填充handler入參,並開始執行handler(controller)方法,處理請求。在填充handler的入參過程中,根據你的配置,spring將幫你做一些額外的工作:
1)httpmessageconveter:將請求訊息(如json,xml等資料)轉換乙個物件,將物件轉換為指定的響應訊息。
2)資料轉換:對請求訊息進行資料轉換,例如將string轉換為integer,double等。
3)資料格式化:對請求訊息進行資料格式化。如將字串轉換成格式化數字或格式化日期等。
4)資料驗證:驗證資料的有效性(長度,格式等),驗證結果儲存到bindingresult或error中
7.handler執行完成後,向dispatcherservlet返回乙個modelandview物件;
8.此時將開始執行***的posthandle(..)方法【逆向】
9.根據返回的modelandview(此時會判斷是否存在異常:如果存在異常,則執行handlerexecutionresolver進行異常處理)選擇乙個合適的viewresolver(必須是已經註冊到spring容器中的viewresolver)返回給dispatcherservlet,根據model和view,來渲染檢視。
10.在返回給客戶端是需要執行***的aftercompletion方法【逆向】
11.將渲染結果返回給客戶端
其中的細節,如執行方法入參的填入等可以檢視:springmvc原始碼解析。
***的方法執行順序:***解析
額外工作:springmvc應用
異常處理:異常解析
SpringMVC執行流程
執行流程 第一步 發起請求到前端控制器 dispatcherservlet 可以根據xml配置 註解進行查詢 第四步 前端控制器呼叫處理器介面卡去執行handler 第五步 處理器介面卡去執行handler 第六步 handler執行完成給介面卡返回modelandview 第七步 處理器介面卡向前...
Spring MVC執行流程
1 使用者發起請求,請求到dispatcherservlet前端控制器 dispatcherservlet 排程 負責 request 和response 負責呼叫處理器對映器查詢 handler 負責呼叫處理器介面卡執行 handler 有了前端控制器降低了各各元件之間的耦合性,系統擴充套件性提高...
SpringMVC執行流程
首先明確,執行流程中涉及到了哪些元件 前端控制器 dispatcherservlet 相當於乙個訊號中心,任何交流都需要經過他,再分配給其他元件 處理器介面卡 handleradapter 相當於手,當找到了對應的控制器,根據控制器選擇對應的介面卡,然後用這個介面卡去執行確定了的控制器 處理器 co...