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