spring MVC——什麼是MVC設計模式
MVC 設計模式一般指 MVC 框架:
M(Model)指資料模型層
V(View)指檢視層
C(Controller)指控制層
;
使用 MVC 的目的是將 M 和 V 的實現程式碼分離,使同一個程式可以有不同的表現形式。其中,View 的定義比較清晰,就是使用者介面。
在 Web 專案的開發中,能夠及時、正確地響應使用者的請求是非常重要的。
使用者在網頁上單擊一個 URL 路徑,這對 Web 伺服器來說,相當於使用者傳送了一個請求。
而獲取請求後如何解析使用者的輸入,並執行相關處理邏輯,最終跳轉至正確的頁面顯示反饋結果,這些工作往往是控制層(Controller)來完成的。
在請求的過程中,使用者的資訊被封裝在 User 實體類中,該實體類在 Web 專案中屬於資料模型層(Model)。
在請求顯示階段,跳轉的結果網頁就屬於檢視層(View)。
這樣,控制層負責前臺與後臺的互動,資料模型層封裝使用者的輸入/輸出資料,檢視層選擇恰當的檢視來顯示最終的執行結果,
這樣的層次分明的軟體開發和處理流程被稱為 MVC 模式。
在學習 Servlet 及 JSP 開發時,JavaBean 相當於 Model,Servlet 相當於 Controller,JSP 相當於 View。
============================================================================================
總結如下:
- 檢視層(View):負責格式化資料並把它們呈現給使用者,包括資料展示、使用者互動、資料驗證、介面設計等功能。
- 控制層(Controller):負責接收並轉發請求,對請求進行處理後,指定檢視並將響應結果傳送給客戶端。
- 資料模型層(Model):模型物件擁有最多的處理任務,是應用程式的主體部分,它負責資料邏輯(業務規則)的處理和實現資料操作(即在資料庫中存取資料)。
==========================================================================
SUN 公司推出 JSP 技術的同時,也推出了兩種 Web 應用程式的開發模式。即 JSP+JavaBean 和 Servlet+JSP+JavaBean。
JSP+JavaBean
JSP+JavaBean 中 JSP 用於處理使用者請求,JavaBean 用於封裝和處理資料。該模式只有檢視和模型,一般把控制器的功能交給檢視來實現,適合業務流程比較簡單的 Web 程式。
通過上圖可以發現 JSP 從 HTTP Request(請求)中獲得所需的資料,並進行業務邏輯的處理,然後將結果通過 HTTP Response(響應)返回給瀏覽器。
從中可見,JSP+JavaBean 模式在一定程度上實現了 MVC,即 JSP 將控制層和檢視合二為一,JavaBean 為模型層。
JSP+JavaBean 模式中 JSP 身兼數職,既要負責檢視層的資料顯示,又要負責業務流程的控制,結構較為混亂,並且也不是我們所希望的鬆耦合架構模式,所以當業務流程複雜的時候並不推薦使用。
Servlet+JSP+JavaBean
Servlet+JSP+JavaBean 中 Servlet 用於處理使用者請求,JSP 用於資料顯示,JavaBean 用於資料封裝,適合複雜的 Web 程式。
相比 JSP+JavaBean 模式來說,Servlet+JSP+JavaBean 模式將控制層單獨劃分出來負責業務流程的控制,接收請求,建立所需的 JavaBean 例項,並將處理後的資料返回檢視層(JSP)進行介面資料展示。
Servlet+JSP+JavaBean 模式的結構清晰,是一個鬆耦合架構模式,一般情況下,建議使用該模式。
MVC優缺點
任何一件事都有利有弊,下面來了解一下 MVC 的優缺點。
優點
- 多檢視共享一個模型,大大提高了程式碼的可重用性
- MVC 三個模組相互獨立,鬆耦合架構
- 控制器提高了應用程式的靈活性和可配置性
- 有利於軟體工程化管理
總之,我們通過 MVC 設計模式最終可以打造出一個鬆耦合+高可重用性+高可適用性的完美架構。
缺點
- 原理複雜
- 增加了系統結構和實現的複雜性
- 檢視對模型資料的低效率訪問
MVC 並不適合小型甚至中型規模的專案,花費大量時間將 MVC 應用到規模並不是很大的應用程式,通常得不償失,所以對於 MVC 設計模式的使用要根據具體的應用場景來決定。