- Java EE程序設計與開發實踐教程
- 馮志林編著
- 1214字
- 2021-10-27 17:05:33
6.1 MVC模式

第6章任務1
1.什么是MVC模式
MVC設計模式是在20世紀80年代出現的一種軟件設計模式,至今已被廣泛使用,后來被推薦為Sun公司Java EE平臺的設計模式。MVC把應用程序分成三大基本模塊:模型(Model,即M)、視圖(View,即V)和控制器(Controller,即C),三者聯合即MVC,它們分別擔當不同的任務。
MVC將應用中各組件按功能進行分類,不同的組件使用不同技術,相同的組件被嚴格限制在其所在層內,各層之間以松耦合的方式組織在一起,從而提供良好的封裝。MVC減弱了業務邏輯接口和數據接口之間的耦合,讓視圖層更富于變化。
Java Web應用開發也伴隨著MVC設計模式,經歷了Model I和Model II兩個階段。
2.Model I模式
Model I模式的實現比較簡單,適用于快速開發小規模項目。Model I模式有兩種開發形式:一種是純JSP方式開發,另一種是使用JSP+JavaBean方式開發應用程序。
從工程化的角度看,Model I模式開發的局限性非常明顯,JSP頁面身兼View和Controller兩種角色,將控制邏輯和表現邏輯混雜在一起,從而導致代碼的重用性非常低,增加了應用的擴展和維護的難度。
(1)純JSP方式開發
這種方式是在JSP文件中直接嵌入Java代碼,即小腳本方式,所有的邏輯控制和業務處理都以小腳本的方式實現。
優點是簡單方便,適合開發小型的Web應用程序。缺點是JSP頁面中多種語言代碼混合,增加了開發難度,不易于系統后期維護和擴展,系統出現運行異常時,不易于代碼調試。
(2)JSP+JavaBean方式開發
這種方式對純JSP方式進行了一些改進,使用JavaBean封裝業務處理及數據庫操作,JSP調用JavaBean實現內容顯示。這種方式的優點是頁面代碼相對簡潔,業務處理和數據庫操作封裝到JavaBean中,提高了代碼的重用性,通過對JavaBean的修改,提高了系統的擴展性,便于系統調試。缺點是業務邏輯依然由JSP來完成,JSP頁面依然需要嵌入Java代碼。
3.Model II模式
在Model II模式中,JSP頁面嵌入了流程控制代碼和業務邏輯代碼,將這部分代碼提取出來,放入單獨的Servlet和JavaBean類中,也就是使用JSP+Servlet+JavaBean共同開發,這種方式就是Model II模式。
Model II是典型的基于MVC架構的設計模式,Servlet作為前端控制器,負責接收客戶端發送的請求,在Servlet中只包含控制邏輯和簡單的前端處理。然后,調用后端JavaBean來完成實際的邏輯處理。最后,轉發到相應的JSP頁面處理顯示邏輯。MVC設計模式如圖6-1所示。圖中的MVC(Model-View-Controller,模型-視圖-控制器)設計模式,即將數據顯示(JSP)、模型訪問(JavaBean)和流程控制(Servlet)處理相分離,使之相互獨立。

圖6-1 MVC設計模式
4.MVC優點
MVC更符合軟件工程化管理的精神,即不同的層各司其職,每一層的組件具有相同的特征,有利于通過工程化和工具化生成與管理程序代碼。應用被分隔為三層,降低了各層之間的耦合,提供了應用的可擴展性。
● 模型層:模型返回的數據與顯示邏輯分離。模型數據可以應用任何的顯示技術,例如,使用JSP頁面、Velocity模板或者直接產生Excel文檔等。
● 視圖層:多個視圖可以對應一個模型。按MVC設計模式,一個模型對應多個視圖,可以減少代碼的復制及代碼的維護量,一旦模型發生改變,也易于維護。
● 控制層:由于它把不同的模型和不同的視圖組合在一起,完成不同的請求。因此,控制層負責對用戶請求和響應。
- Visual C++程序設計學習筆記
- ASP.NET MVC4框架揭秘
- Rust編程:入門、實戰與進階
- 體驗設計原理:行為、情感和細節
- Java虛擬機字節碼:從入門到實戰
- Mastering C# Concurrency
- 單片機應用技術
- FFmpeg入門詳解:音視頻原理及應用
- Python編程與幾何圖形
- Python:Master the Art of Design Patterns
- Mastering ROS for Robotics Programming
- Getting Started with Hazelcast(Second Edition)
- 區塊鏈技術與應用
- R用戶Python學習指南:數據科學方法
- Flowable流程引擎實戰