spring mvc請求流程

2021-07-10 12:02:00 字數 1828 閱讀 8577

好多人說到mvc的請求處理流程不知道該如何表達,我教大家乙個簡單易懂的方法吧~,個人理解,僅供參考哈

先舉乙個現實生活中的例子來講解一下

比如生病了,需要去醫院看病,會有如下的幾個步驟

1、**處**,**mm(超漂亮的)會問你掛哪個科室,這個時候你會說,最近嗓子不舒服,發燒了(類似使用者發起乙個http請求)

2、分診台(前端控制器),**mm會告訴你交5元**費,告訴你去呼吸科就診

3、呼吸科(消化科、神經科),類似具體的control,這個時候獲取到你的就診請求,進行具體的診治(類似處理業務邏輯)

後面的流程想必大家都知道了。

然後在給大家說一下具體的專業流程解釋,摘自網路。

前端控制器

具體步驟:

1、  首先使用者傳送請求————>前端控制器,前端控制器根據請求資訊(如 url)來決定選擇哪乙個頁面控制器進行處理並把請求委託給它,即以前的控制器的控制邏輯部分;圖 2-1 中的 1、2 步驟;

2、  頁面控制器接收到請求後,進行功能處理,首先需要收集和繫結請求引數到乙個物件,這個物件在 spring web mvc 中叫命令物件,並進行驗證,然後將命令物件委託給業務物件進行處理;處理完畢後返回乙個 modelandview(模型資料和邏輯檢視名);圖 2-1 中的 3、4、5 步驟;

3、  前端控制器收回控制權,然後根據返回的邏輯檢視名,選擇相應的檢視進行渲染,並把模型資料傳入以便檢視渲染;圖 2-1 中的步驟 6、7;

4、  前端控制器再次收回控制權,將響應返回給使用者,圖 2-1 中的步驟 8;至此整個結束。

(二)核心流程

具體步驟:

1、  首先使用者 傳送請求—— >dispatcherservlet , 前端控制器收到請求後自己不進行處理,而是委託給其他的解析器進行處理,作為統一訪問點,進行全域性的流程控制;

3、  dispatcherservlet —— >handleradapter , handleradapter 將會把處理器包裝為介面卡,從而支援多種型別的處理器,即介面卡設計模式的應用,從而很容易支援很多態別的處理器;

4、  handleradapter —— > 處理器功能處理方法的呼叫, handleradapter 將會根據適配的結果呼叫真正的處理器的功能處理方法,完成功能處理;並返回乙個 modelandview 物件(包含模型資料、邏輯檢視名);

5、  modelandview 的邏輯檢視名—— > viewresolver , viewresolver 將把邏輯檢視名解析為具體的 view,通過這種策略模式,很容易更換其他檢視技術;

6、  view —— > 渲染 ,view 會根據傳進來的 model 模型資料進行渲染,此處的 model 實際是乙個 map 資料結構,因此很容易支援其他檢視技術;

7、  返回控制權給 dispatcherservlet , 由 dispatcherservlet 返回響應給使用者,到此乙個流程結束。

(三)總結 核心開發步驟

1、  dispatcherservlet 在 web.xml 中的部署描述,從而攔截請求到 spring web mvc

3、  handleradapter 的配置,從而支援多種型別的處理器

4、  viewresolver 的配置,從而將邏輯檢視名解析為具體檢視技術

5、  處理器(頁面控制器)的配置,從而進行功能處理 

到此我們已經簡單的了解了 spring  mvc,接下來的文章會使用例項來具體使用下這個框架。

springMVC請求流程

請求流程圖 1.請求離開瀏覽器的時候,帶有使用者所有請求內容資訊,到達dispatcherservlet 控制器 2.dispatcherservlet查詢處理對映器來確定請求的下一站 3.將請求發給選中的控制器進行邏輯處理 控制器在完成邏輯處理之後通常會產生一些資訊,這些資訊被稱為模型 4.控制器...

Spring MVC請求流程

springmvc框架是乙個基於請求驅動的web框架,並且使用了前端控制器模型來進行設計,再根據請求對映規則分發給相應的頁面控制器進行處理 一 整體流程 具體步驟 首先使用者傳送請求到前端控制器 dispatchservlet 前端控制器根據請求url來決定選擇哪乙個頁面控制器進行處理並把請求委託給...

SpringMVC請求流程

本文內容來自朱要光老師編著的 springmvc mybatis開發從入門到專案實戰 書的第8章。在學習springmvc框架之前,首先需要了解springmvc框架的整體請求流程和使用到的api流。springmvc的整體請求流程如下 第一步 使用者單擊某個請求路徑,發起乙個request請求,此...