1 什么是Spirng MVC

概述
Spirng MVC是Spring Framework的一部分,是基于java實作MVC的輕量級Web框架,
官方檔案:https://docs.spring.io/spring-framework/docs/current/reference/html/web.html
為什么要學習Spring MVC?
Spring MVC 特點
- 輕量級,簡單易學
- 高效,基于請求回應的MVC框架
- 與 Spring 兼容性好,無縫結合
- 約定大于配置
- 功能強大,RESTful,資料驗證,格式化,本地化,主題等
- 簡潔靈活
Spring MVC的web框架圍繞DispatcherServlet [ 調度Servlet ] 設計,
DispatcherServlet的作用是將請求分發到不同的處理器,從Spring 2.5開始,使用Java 5或者以上版本的用戶可以采用基于注解形式進行開發,十分簡潔,
最重要的一點還是用的人多 , 使用的公司多 ,
中心控制器
Spring MVC框架像許多其他MVC框架一樣, 以請求為驅動 , 圍繞一個中心Servlet分派請求及提供其他功能,DispatcherServlet是一個實際的Servlet (它繼承自HttpServlet 基類),

SpringMVC的原理如下圖所示:
當發起請求時被前置的控制器攔截到請求,根據請求引數生成代理請求,找到請求對應的實際控制器,控制器處理請求,創建資料模型,訪問資料庫,將模型回應給中心控制器,控制器使用模型與視圖渲染視圖結果,將結果回傳給中心控制器,再將結果回傳給請求者,

Spring MVC 執行原理

圖為SpringMVC的一個較完整的流程圖,實線表示SpringMVC框架提供的技術,不需要開發者實作,虛線表示需要開發者實作,
執行流程:
-
DispatcherServlet表示前置控制器,是整個SpringMVC的控制中心,用戶發出請求,DispatcherServlet接收請求并攔截請求,
我們假設請求的url為 : http://localhost:8080/SpringMVC/hello
如上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,如決議控制器映射等,回傳HandlerExecutionChain物件給中央控制器,封裝了HandlerIntercepter(處理器攔截器)、Handler(處理器物件)
-
HandlerAdapter表示處理器配接器,其按照特定的規則去執行Handler,
-
Handler讓具體的Controller執行,
-
Controller將具體的執行資訊回傳給HandlerAdapter,如ModelAndView,
-
HandlerAdapter將視圖邏輯名或模型傳遞給DispatcherServlet,
-
DispatcherServlet呼叫視圖決議器(ViewResolver)來決議HandlerAdapter傳遞的邏輯視圖名,
-
視圖決議器將決議的邏輯視圖名傳給DispatcherServlet,
-
DispatcherServlet根據視圖決議器決議的視圖結果填充資料,呼叫具體的視圖,
-
最終視圖呈現給用戶,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/233402.html
標籤:其他
上一篇:Spring MVC 面試題
下一篇:2 第一個MVC程式
