Springmvc的運行流程圖文詳解
一.常見類及其作用
HandlerExecutionChain : Handler執(zhí)行鏈對象, 包含了請求處理器對象 以及所有的攔截器對象.
HandlerMapping : 定義了所有的請求與 所有的請求處理器之間的映射.
HandlerAdaptor: 請求處理器適配器對象, 負責完成請求處理器對象的調(diào)用 、 方法的執(zhí)行等…
二. 運行流程:
瀏覽器端發(fā)送請求到服務器端:
- 1.1 當前的請求在DispatcherServlet中不存在對應的映射
- ① 是否配置mvc:default-servlet-handler/
- 如果沒有配置, 404頁面, 控制臺 no mapping found 警告.
- 如果有配置 , 將請求交給Tomcat 默認的Servlet進行處理,去找對應的資源
- 如果有資源,則將對應的資源返回給瀏覽器端
- 如果沒有資源, 404頁面.
當前的請求在DispatcherServlet
中存在對應的映射
- 2.1 通過HandlerMapping(RequestMappingHandlerMapping) 獲取 HandlerExecutionChain 對象
- 2.2 再獲取HandlerAdaptor(RequestMappingaHandlerAdaptor)對象
- 2.3 由HandlerExecutionChain對象執(zhí)行攔截器的preHandle方法
- 2.4 由HandlerAdaptor負責請求處理器 、 請求處理方法的執(zhí)行 ,最終得到ModelAndView對象.
- 2.5 由HandlerExecutionChain對象執(zhí)行攔截器的postHandle方法.
- 2.6 開始由視圖解析器解析ModelAndView對象,得到視圖對象
- 2.7 由當前的視圖對象開始處理模型數(shù)據(jù), 最終完成重定向 、 轉(zhuǎn)發(fā)的工作
- 2.8 由HandlerExecutionChain對象執(zhí)行攔截器的afterCompletion方法.
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接
相關(guān)文章
jvm細節(jié)探索之synchronized及實現(xiàn)問題分析
這篇文章主要介紹了jvm細節(jié)探索之synchronized及實現(xiàn)問題分析,涉及synchronized的字節(jié)碼表示,JVM中鎖的優(yōu)化,對象頭的介紹等相關(guān)內(nèi)容,具有一定借鑒價值,需要的朋友可以參考下。2017-11-11@Async導致controller?404及失效原因解決分析
這篇文章主要為大家介紹了@Async導致controller?404失效問題解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-07-07SpringBoot項目application.yml文件數(shù)據(jù)庫配置密碼加密的方法
這篇文章主要介紹了SpringBoot項目application.yml文件數(shù)據(jù)庫配置密碼加密的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-03-03