什麼是 MVC
搜首先了解一下什麼是 MVC,
- MVC 指的是模型(Model)、檢視(View)、控制器(Controller),是一種軟體設計規範。
- 是將業務邏輯、資料、顯示分離的方法來組織程式碼。
- MVC主要作用是降低了檢視與業務邏輯間的雙向偶合。
- MVC不是一種設計模式,MVC是一種架構模式。當然不同的MVC存在差異。
Model(模型):資料模型,提供要展示的資料,因此包含資料和行為,可以認為是領域模型或JavaBean元件(包含資料和行為),不過現在一般都分離開來:Value Object(資料Dao) 和 服務層(行為Service)。也就是模型提供了模型資料查詢和模型資料的狀態更新等功能,包括資料和業務。
View(檢視):負責進行模型的展示,一般就是我們見到的使用者介面,客戶想看到的東西。
Controller(控制器):接收使用者請求,委託給模型進行處理(狀態改變),處理完畢後把返回的模型資料返回給檢視,由檢視負責展示。也就是說控制器做了個排程員的工作。
最典型的MVC就是JSP + servlet + javabean的模式。
什麼是SpringMVC
Spring MVC 是 Spring Framework 的一部分,是基於 Java實現 MVC 的輕量級Web框架。
Spring MVC的特點:
輕量級,簡單易學
高效 , 基於請求響應的MVC框架
與Spring相容性好,無縫結合
約定優於配置
功能強大:RESTful、資料驗證、格式化、本地化、主題等
簡潔靈活
Spring的web框架圍繞DispatcherServlet [ 排程Servlet ] 設計。
DispatcherServlet的作用是將請求分發到不同的處理器。從Spring 2.5開始,使用Java 5或者以上版本的使用者可以採用基於註解形式進行開發,十分簡潔;
下面透過網上的一張圖瞭解 SpringMVC 的具體工作原理。
大致流程如下
- 1.使用者發出一個請求url,會經過前端控制器,DispatcherServlet。DispatcherServlet呼叫HandlerMapping。DispatcherServlet會根據這個請求找到對映器,HandlerMapping,HandlerMapping根據請求url查詢Handler。
- 2.HandlerExecution表示具體的Handler,主要是根據url查詢控制器,這裡為hello。
- 3.根據對映器找到介面卡,HandlerAdapter,
- 4.適配到我們寫的控制層程式碼Controller,然後由Controller呼叫Service層,Service層呼叫Dao層對資料庫進行CRUD等操作,然後將ModelAndView返回,即資料和跳轉的連線。
- 5.根據ModelAndWiev找到具體的檢視解析器,檢視解析器返回給前端。
本作品採用《CC 協議》,轉載必須註明作者和本文連結