在將springmvc之前我們先來看一下什麼是mvc模式。
mvc:mvc是一種設計模式
mvc的原理圖:
分析:
springmvc流程
1、 使用者傳送請求
至前端控制器 dispatcherservlet
。
3、 處理器對映器找到具體的處理器
(可以根據xml配置
、註解
進行查詢),生成 處理器物件 及 處理器***
(如果有則生成)一併返回給 dispatcherservlet
。
4、 dispatcherservlet呼叫 handleradapter 處理器介面卡
。
5、 handleradapter經過 適配呼叫 具體的處理器
(controller,也叫後端控制器)。
6、 controller執行完成 返回 modelandview
。
7、handleradapter
將controller執行結果modelandview 返回 給dispatcherservlet
。
8、dispatcherservlet
將modelandview傳給viewreslover 視**析器
。
9、viewreslover解析後
,返回具體view
。
10、dispatcherservlet根據 view 進行渲染檢視
(即將模型資料填充至檢視中)。
11、dispatcherservlet 響應使用者
。
以下元件通常使用框架提供實現:
1、前端控制器 dispatcherservlet(不需要工程師開發),由框架提供。
作用:接收請求,響應結果,整個流程控制的中心,控制其它元件執行,統一排程,降低元件之間的耦合性,提高每個元件的擴充套件性。使用者請求
到達前端控制器
,它就相當於mvc模式中的c,dispatcherservlet
是整個流程控制的中心
,由它呼叫其它元件處理使用者的請求
,dispatcherservlet的存在降低了元件之間的耦合性
。
3、處理器介面卡 handleradapter
作用:通過handleradapter 對 處理器進行執行
,通過擴充套件 處理器介面卡,把處理器 包裝成 介面卡
,支援 更多型別的處理器
(介面卡模式的應用)。
4、處理器 handler(需要工程師開發
)
注意:編寫handler時按照handleradapter的 要求去做
,這樣介面卡 才可以去正確執行 handler。
作用:handler 是繼dispatcherservlet前端控制器
的後端控制器
,在dispatcherservlet的控制下handler 對具體的使用者請求 進行處理
。由於handler涉及到 具體的使用者業務請求
,所以一般情況需要工程師根據業務需求開發handler。
5、視**析器 view resolver(不需要工程師開發),由框架提供
作用:進行視**析
,根據邏輯檢視名
解析成真正的檢視(view)
。view resolver負責 將處理結果 生成view檢視
,view resolver首先根據邏輯檢視名
解析成物理檢視名
,即具體的頁面位址
,再生成view檢視物件
,最後對view進行渲染
,將 處理結果 通過頁面 展示給使用者
。springmvc框架提供了很多的view檢視型別,包括:jstlview、freemarkerview、pdfview等。一般情況下需要通過頁面標籤或頁面模版技術將模型資料通過頁面展示給使用者,需要由工程師根據業務需求開發具體的頁面。
6、檢視 view(需要工程師開發jsp…)
view是乙個介面
,實現類 支援不同的view型別
(jsp、freemarker、pdf…)。進行視**析
,對返回的字串,進行處理,可以解析成對應的頁面
。
1、首先使用者傳送請求——>dispatcherservlet 前端控制器
,前端控制器收到請求後自己不進行處理
,而是委託給其他的解析器
進行處理,作為統一訪問點,進行全域性的流程控制;
3、dispatcherservlet——>handleradapter 處理器介面卡
,handleradapter 將會把處理器 包裝為 介面卡
,從而支援多種型別的處理器
,即介面卡設計模式的應用,從而很容易支援很多態別的處理器
;
4、handleradapter——>處理器功能 處理方法的呼叫
,handleradapter 將會根據適配的結果呼叫真正的處理器
的功能處理方法,完成功能處理
;並返回乙個modelandview 物件
(包含模型資料、邏輯檢視名);
5、modelandview的邏輯檢視名——>viewresolver 視**析器
, viewresolver 將把邏輯檢視名
解析為具體的view
,通過這種策略模式,很容易更換其他檢視技術;
6、view——>渲染
,view 會根據 傳進來的 model模型資料 進行渲染
,此處的model實際是乙個map資料結構
,因此很容易支援其他檢視技術;
7、返回控制權 給 dispatcherservlet
,由dispatcherservlet返回響應給使用者
,到此乙個流程結束。
下邊兩個元件通常情況下需要開發:
spring mvc工作原理
1.spring mvc請所有的請求都提交給dispatcherservlet,它會委託應用系統的其他模組負責負責對請求進行真正的處理工作。3.dispatcherservlet請請求提交到目標controller 4.controller進行業務邏輯處理後,會返回乙個modelandview 5....
SpringMVC工作原理
上面的是springmvc的工作原理圖 1 客戶端發出乙個http請求給web伺服器,web伺服器對http請求進行解析,如果匹配dispatcherservlet的請求對映路徑 在web.xml中指定 web容器將請求轉交給dispatcherservlet.5 handler對資料處理完成以後將...
SpringMVC工作原理
上面的是springmvc的工作原理圖 核心架構的具體流程步驟如下 1 首先使用者 傳送請求 dispatcherservlet,前端控制器收到請求後自己不進行處理,而是委託給其他的解析器進行 處理,作為統一訪問點,進行全域性的流程控制 2 個handler 處理器 頁面控制器 物件 多個handl...