SpringMVC學習筆記01-----SpringMVC簡介
1.什麼是SpringMVC?
1.1 概述
Spring MVC是Spring Framework的一部分,是基於Java實現MVC的輕量級Web框架。
1.2 為什麼選擇SpringMVC?
- 輕量級,簡單易學
- 高效 , 基於請求響應的MVC框架
- 與Spring相容性好,無縫結合
- 約定優於配置
- 功能強大:RESTful、資料驗證、格式化、本地化、主題等
- 簡潔靈活
- 最重要的一點,還是使用的人多
SpringMVC的核心是DispatcherServlet(排程servlet).DispatcherServlet會自動將不同的請求分配給對應的處理器。
1.3 排程Servlet(DispatcherServlet)
Spring的web框架圍繞DispatcherServlet設計。DispatcherServlet的作用是將請求分發到不同的處理器。
Spring MVC框架像許多其他MVC框架一樣, 以請求為驅動 , 圍繞一箇中心Servlet分派請求及提供其他功能,DispatcherServlet是一個實際的Servlet (它繼承自HttpServlet 基類)。
1.4SpringMVC執行原理分析
圖為SpringMVC的一個較完整的流程圖,實線表示SpringMVC框架提供的技術,不需要開發者實現,虛線表示需要開發者實現。
簡要分析執行流程
-
DispatcherServlet表示前置控制器,是整個SpringMVC的控制中心。使用者發出請求,DispatcherServlet接收請求並攔截請求。
我們假設請求的url為 :如上url拆分成三部分:
http://localhost:8080伺服器域名
SpringMVC部署在伺服器上的web站點
hello表示控制器
通過分析,如上url表示為:請求位於伺服器localhost:8080上的SpringMVC站點的hello控制器。
-
HandlerMapping為處理器對映。DispatcherServlet呼叫HandlerMapping,HandlerMapping根據請求url查詢Handler。
-
HandlerExecution表示具體的Handler,其主要作用是根據url查詢控制器,如上url被查詢控制器為:hello。
-
HandlerExecution將解析後的資訊傳遞給DispatcherServlet,如解析控制器對映等。
-
HandlerAdapter表示處理器介面卡,其按照特定的規則去執行Handler。
-
Handler讓具體的Controller執行。
-
Controller將具體的執行資訊返回給HandlerAdapter,如ModelAndView。
-
HandlerAdapter將檢視邏輯名或模型傳遞給DispatcherServlet。
-
DispatcherServlet呼叫檢視解析器(ViewResolver)來解析HandlerAdapter傳遞的邏輯檢視名。
-
檢視解析器將解析的邏輯檢視名傳給DispatcherServlet。
-
DispatcherServlet根據檢視解析器解析的檢視結果,呼叫具體的檢視。
-
最終檢視呈現給使用者。
簡而言之就是DispatcherServlet接收到使用者的請求之後,首先交給處理器對映器,處理器對映器將解析出來的結果再返回給DispatcherServlet,DispatcherServlet再呼叫對應的處理器介面卡,找到對應的控制器(即Controller)處理對應業務流程,控制器將具體的執行資訊返回給DispatcherServlet(如modelAndView),執行資訊如果包含檢視相關內容,DispatcherServlet會呼叫檢視解析器,檢視解析器將解析的邏輯檢視名傳給DispatcherServlet,DispatcherServlet根據檢視解析器解析的檢視結果,呼叫具體的檢視,並渲染資料,最後將結果返還給使用者。