淺析JavaWeb開發模式:Model1和Model2


一、前言

在學習JavaWeb的過程中,大家都會接觸到Model1和Model2,歷史的發展過程是Model1 → Model2。那么它們之間有何相同之處和不同之處呢?

二、Model1

Model1使用了兩種技術:JSP+JavaBean。

7.png

10.png

在Model1模式下,整個Web應用幾乎全部由JSP頁面組成,JSP頁面接受處理客戶端請求,對請求處理后直接做出響應。用少量的JavaBean來處理數據庫連接、數據庫訪問等操作。

優點:架構簡單,比較適合小型項目開發。

缺點:從工程化角度看,它的局限性非常明顯;JSP的職責不單一,身兼View和Controller兩種角色,將控制邏輯職和表現邏輯混雜在一起,職責過重,代碼的可復用性低,不便於維護。

三、Model2

Model2使用了三種技術:JSP+Servlet+JavaBean。

1、JSP的主要作用是顯示頁面。

2、Servlet作為前端控制器,負責接收客戶端發送的請求。它的主要作用是取得表單參數、調用業務邏輯、轉向頁面(轉發或重定向)。

3、JavaBean的主要作用是負責處理業務邏輯、訪問數據庫、保存數據狀態(也就是我們常說的B層、D層、實體層的集合體)。

8.png

9.png

實際上,Model2就是MVC的一個成功應用。模型(JavaBean)、視圖(JSP)、控制器(Servlet)。

正如上圖所示,Model2下的JSP不在承擔控制器的責任,它僅僅是表現層角色,僅僅用於將結果呈現給用戶。瀏覽器發來的請求與Servlet(控制器)交互,而Servlet負責與后台的JavaBean通信。在Model2模型下,模型(Model)由JavaBean充當,視圖(View)有JSP頁面充當,而控制器(Controller)則由Servlet充當。

優點:職責清晰,各司其職,互不干擾,有利於組件的重用,適合大型的Web項目。

缺點:不適合小型項目、對開發人員要求更高。

(注:圖中所說的業務邏輯實際上是廣義的說法,可以認為就是JavaBean)

四、參考文獻

SpringMVC中文官網:http://springmvc.cn/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM