面向對象設計模式
常用的面向對象設計模式有4種:
Factory模式、Singleton模式、Facade模式和MVC架構模式。
JSP設計模式
SUN公司推出JSP技術後,同時也推薦了兩種web應用程序的開發模式,一種是JSP+JavaBean模式,一種是Servlet+JSP+JavaBean模式。
JSP設計模式包括兩個:
(1)Model1,JSP+JavaBean設計模式
(2)Model2,MVC設計模式
模式一JSP+JavaBean模式
在這種模式中,JSP頁面獨自響應請求並將處理結果返回客戶,所有的數據庫操作通過JavaBean來實現。
大量地使用這種模式,常會導致在JSP頁面中嵌入大量的Java代碼,當需要處理的商業邏輯非常複雜時,這種情況就會變得很糟糕。大量的Java代碼使得JSP頁面變得非常臃腫。前端的頁面設計人員稍有不慎,就有可能破壞關係到商業邏輯的代碼。
這種情況在大型項目中經常出現,造成了代碼開發和維護的困難,同時會導致項目管理的困難。因此這種模式只適用於中小規模的項目。
JSP+JavaBean模式適合開發業務邏輯不太複雜的web應用程序,這種模式下,JavaBean用於封裝業務數據,JSP即負責處理用戶請求,又顯示數據。
模式二 MVC模式
“MVC”模式即是:“Model-View-Controller”模式。在這種模式中,通過JSP技術來表現頁面,通過Servlet技術來完成大量的事務處理工作,實現用戶的商業邏輯。
在這種模式中,Servlet用來處理請求的事務,充當了控制器(Controller即“C”)的角色,Servlet負責響應客戶對業務邏輯的請求並根據用戶的請求行爲,決定將哪個JSP頁面發送給客戶。JSP頁面處於表現層,也就是視圖(View即“V”)的角色。JavaBean則負責數據的處理,也就是模型(Model即“M”)的角色
Servlet+JSP+JavaBean(MVC)模式適合開發複雜的web應用,在這種模式下,servlet負責處理用戶請求,jsp負責數據顯示,javabean負責封裝數據。 Servlet+JSP、JavaBean模式程序各個模塊之間層次清晰,web開發推薦採用此種模式。
MVC架構
Model-View-Controller架構模式是80年代中期在Smalltalk-80 GUI(一種經典的面向對象程序設計語言)實驗室發明的。
根據MVC模式,一個軟件應該將商務邏輯(Model)和顯示(View)分開。分開有許多好處,最主要的有兩個方面:
1、同一的商務邏輯層(Model)可能會對應多個顯示層(View),如果商務邏輯層和顯示層放在一起的話,再添加一個顯示層的時候就會極大的增加組件的複雜性。一個商務邏輯對着兩個顯示層的例子是:銀行的帳戶的商務邏輯層對應ATM和Internet兩個顯示層。
2、通常情況下,每次修改顯示層的時候一般並不需要修改商務邏輯層。
例 在jsp文件頭部加一個<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 指令,運用foreach <% List list = new ArrayList(); list.add(new User("aaa")); list.add(new User("bbb")); list.add(new User("ccc")); list.add(new User("ddd")); request.setAttribute("list",list); %> <c:forEach items="${list}" var="user"> ${user.name } </c:forEach> <% Map map=new HashMap(); map.put("aa",new User("aaaa")); map.put("bb",new User("bbbb")); map.put("cc",new User("cccc")); map.put("123",new User("dddd")); request.setAttribute("mapp",map); %><!-- ${mapp.bb.name }<br/> ${mapp["123"].name } --> <c:forEach items="${mapp}" var="mapp"> ${ mapp.key}----${mapp.value.name } </c:forEach>