JSP的Model1和Model2
Model在電腦程式中有2個概念:一個是三層架構中的實體類,另一個是MVC架構中的模型。然而我今天的主題Model1和Model2其實都是從MVC模型來講的。Model1其實也算是一種簡單MVC思想,因為它仍然存在顯示與內容的分離,所有的資料存取都是由bean來完成。詳細對比二者:
Model1:
如,Model1隻有JSP和bean。它的中心是JSP頁面,JSP頁面中既有html頁面指令碼,又有<%java代碼 %>,這樣就在JSP頁面中同時實現了商務邏輯和流程式控制制,一方面可以快速開發,另一方面,jsp職責過重,邏輯混亂,不好維護。
Model1的優缺點:
優點:簡單,快速開發,適用小規模開發;
缺點:商務邏輯和表示邏輯混合在JSP頁面中沒有進行抽象和分離,JSP負載太大。所以非常不利於應用系統業務的重用和改動,不便於維護。
Model2:
Model2表示的是基於MVC模式的架構。
MVC“Model”代表的是應用的商務邏輯(通過JavaBean,EJB組件實現);
MVC“View”是應用的展示層(由JSP頁面產生);
MVC“Controller”是提供應用的處理過程式控制制(一般是一個Servlet),通過這種設計模型把應用邏輯,處理過程和顯示邏輯分成不同的組件實現。這些組件可以進行互動和重用。從而彌補了Model1的不足。Model2其實是在Model1基礎上又抽了一層控制層。
Model2優缺點:
優點:具有組件化的優點從而更易於實現對大規模系統的開發和管理。職責劃分清晰。
缺點:不適合小項目開發。
Model1在一定程式上實現了MVC:即JSP是控制層與展示層合二為一了,bean則為模式層.這樣的效果顯然不如將控制層單獨劃分出來的好。而Model2則是將控制層(Servlet)單獨的劃分出來了,專門負責商務程序的控制,接受頁面的請求,建立所需的javabean執行個體,並將處理後的資料再返回給JSP,這樣的效果顯然要好的多。
兩種模式的選擇,其實就是耦合度鬆緊的問題。除非項目非常簡單,否則還是建議用Model2。