Spring 上課筆記 (3)

基本介紹

教學目標

初步了解 MVC 的基本概念。

重點概念

一般來說應用程式控制器主要會執行五個步驟,分別為取得資料、轉換資料、驗證資料、觸發商業邏輯和選擇下一個檢視方式。然而撰寫應用程式控制器的方式耦合很高且非常繁雜,因此 Spring MVC 則是以 Command Design Pattern 的方式實作前端控制器與應用程式控制器進行互動,讓控制器更具低耦合的特性,我們只需要透過設定檔的簡化方式就能夠進行視圖和模型的關聯。

所謂 MVC 是 T.Reenskaug 在 1979 年應用於 GUI 架構的管理,全名為 Model-View-Controller,首先視圖會發請求給控制器,接著控制器會更新模型的狀態,再來模型會通知視圖相關更新,此時視圖會從模型中讀取狀態,最後控制器會針對視圖進行控制,其中 MVC 最重要在於模型要能夠通知視圖狀態已更新。

但是 Web 應用程式主要是基於 HTTP 的請求/回應模型,因此模型無法主動更新視圖,也因此才有適用於 Web 應用程式的 MVC Model 2 又稱 Web MVC,最早概念源自於 1998 年 JSP 的規格書中第一個模型描述一個請求傳送給 JSP 檔案,第二個模型描述一個請求傳送給 Servlet,接著在 1999 年 Govind Seshadri 在 JavaWorld 發表了「Understanding JavaServer Pages Model 2 architecture」的文章確認 Model 2 為針對 Web 應用程式的 MVC 架構。

最後 Spring MVC 則是實作前端控制器,主要透過 web.xml 定義 DispatcherServlet,首先接收 HTTP 請求,接著將請求傳給應用程式控制器處理請求,再來更新模型,同時控制視圖,此時視圖會讀取狀態,並且進行 HTTP 的回應操作。

相關資源