學習web開發模式必需要先學習JavaBean(咖啡豆)java
JavaBean是一種開發規範,也能夠說是一門技術。web
JavaBean就是一個普通的java類,可是java類只有符合如下規範才能稱之爲JavaBean:express
1)必須提供一個無參的構造方法。session
2)類中屬性都必須私有化(用private修飾)。app
3)該類提供公開的getter和setter方法。jsp
JavaBean的做用:用於封裝數據,保存數據。學習
JSP技術中提供了三個關於JavaBean組建動做的元素,即JSP標籤分別爲:spa
1)<jsp:useBean>標籤:用於在JSP頁面中指定的域範圍內查找或者示例化一個JavaBean組件。若是存在則直接返回該JavaBean對象的引用;若是不存在則示例化一個新的JavaBean對象並將它以指定的名稱存儲到指定的域範圍中。code
<jsp:useBean id="beanName" class="package.class" scope="page|request|session|application"/>
經常使用標籤屬性:對象
id:用於指定JavaBean示例對象的引用名稱和其存儲在域範圍中的名稱。
class:用於指定JavaBean的完整類名(包名+類名)
scope:用於指定JavaBean實例對象存儲的域範圍。默認值爲page。
2)<jsp:setProperty>標籤用於設置和訪問JavaBean對象的屬性。
<jsp:setProperty name="beanName" { property="propertyName" value="{string | <%=expression%>}" | property="propertyName" [ param="parameterName" ] | param="*" }/>
經常使用標籤屬性:
name:用於指定JavaBean對象的名稱。
property:用於指定JavaBean實例對象的屬性名。
value:用於指定JavaBean對象的某個屬性值,value的值能夠爲字符串也能夠爲表達式。爲字符串時,該值會自動轉化爲JavaBean屬性對應的類型,若是爲表達式,則表達式的計算結果必須與所設置的JavaBean屬性的類型一致。
param:用於將javaBean示例對象的某個屬性值設爲一個請求參數值。
3)<jsp:getProperty>標籤用於讀取JavaBean對象屬性,即調用javaBean對象的getter方法,而後將讀取的屬性值轉換爲字符串後插入進輸出的響應正文中。
<jsp:getProperty name="beanInstanceName" property="PropertyName" />
經常使用標籤屬性:
name:用於指定javaBean實例對象的名稱,其值應與<jsp:useBean>標籤中的id屬性值相同。
property:用於指定javaBean實例中的屬性名。
web開發模式
sun公司推出jsp技術後,同時也推薦了兩種web應用程序的開發模式,一種是JSP+JavaBean模式,另外一種是Servlet+JSP+JavaBean模式。
JSP+JavaBean模式適合開發業務邏輯不太複雜的web應用程序,這種模式下,JavaBean用於封裝業務數據,JSP即負責處理用戶的請求,有顯示數據。
Servlet+JSP+JavaBean(MVC)模式適合開發複雜的web應用,在這種模式下,servlet負責處理用戶請求,jsp負責數據顯示,javaBean負責封裝數據。
Servlet+JSP+JavaBean模式程序各個模塊層次清晰,web開發推薦採用此種模式。
兩種模式原理圖以下:
MVC+三層結構是web開發中推薦使用的。
三層結構:表現層、業務邏輯層、數據持久層。