1. 程式人生 > >JavaBean與JSP初學筆記

JavaBean與JSP初學筆記

最近在學習樸老師的課程,在這裡把筆記記下來,方便往後查閱。

1、什麼是JavaBean

1.JavaBean是一個遵循特定寫法的Java類,它通常具有如下特點:

---這個Java類必須具有一個無參的建構函式
---屬性必須私有化
---私有化的屬性必須通過public型別的方法暴露給其它程式,並且方法的命名也必須遵守一定的命名規範。
2.雖然Sun公司在定義JavaBean規範時,允許Java開發人員把JavaBean設計得可以像Swing元件一樣功能強大,但在實際的J2EE開發中,通常只使用到以上JavaBean最基本的特性。
3.JavaBean在J2EE開發中,通常用於封裝資料

,對於遵循以上寫法的JavaBean元件,其它程式可以通過反射技術例項化JavaBean物件,並且通過反射那些遵守命名規範的方法,從而獲知JavaBean的屬性,進而呼叫其屬性儲存資料。

來一個簡單的例子:(使用者類)

public class User {
	private String username;
	private String password;
	public String getUserName() {
		return username;
	}
	public void setUserName(String userName) {
		this.username = userName;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	
}

2、JavaBean屬性

1.JavaBean的屬性可以是任意型別,並且一個JavaBean可以有多個屬性。每個屬性通常都需要具有相應的setter、 getter方法,setter方法稱為屬性修改器,getter方法稱為屬性訪問器。
2.屬性修改器必須以小寫的set字首開始,後跟屬性名,且屬性名的第一個字母要改為大寫,例如,name屬性的修改器名稱為setName,password屬性的修改器名稱為setPassword。 
3.屬性訪問器通常以小寫的get字首開始,後跟屬性名,且屬性名的第一個字母也要改為大寫,例如,name屬性的訪問器名稱為getName,password屬性的訪問器名稱為getPassword。 
4.一個JavaBean的某個屬性也可以只有set方法或get方法
,這樣的屬性通常也稱之為只寫、只讀屬性

3、在JSP中使用JavaBean

JSP技術提供了三個關於JavaBean元件的動作元素,即JSP標籤,它們分別為:
<jsp:useBean>標籤:用於在JSP頁面中查詢或例項化一個JavaBean元件。
<jsp:setProperty>標籤:用於在JSP頁面中設定一個JavaBean元件的屬性。
<jsp:getProperty>標籤:用於在JSP頁面中獲取一個JavaBean元件的屬性。

3.1、<jsp:useBean>標籤

<jsp:useBean>標籤用於在指定的域範圍內查詢指定名稱的JavaBean物件:
如果存在則直接返回該JavaBean物件的引用。
如果不存在則例項化一個新的JavaBean物件並將它以指定的名稱儲存到指定的域範圍中。 
常用語法
<jsp:useBean id="beanName" class="package.class" scope="page|request|session|application"/>
id屬性用於指定JavaBean例項物件的引用名稱和其儲存在域範圍中的名稱。
class屬性用於指定JavaBean的完整類名(即必須帶有包名)。
scope屬性用於指定JavaBean例項物件所儲存的域範圍,其取值只能是page、request、session和application等四個值中的一個,其預設值是page。

3.2、 <jsp:setProperty>標籤 

<jsp:setProperty>標籤用於設定和訪問JavaBean物件的屬性。 
語法格式:
<jsp:setProperty name="beanName" 
{ 
	property="propertyName" value="{string | <%= expression %>}" |
	property="propertyName" [ param="parameterName" ] | 
	property= "*" 
}/>
name屬性用於指定JavaBean物件的名稱。 
property屬性用於指定JavaBean例項物件的屬性名。
value屬性用於 指定JavaBean物件的某個屬性的值,value的值可以是字串,也可以是表示式。為字串時,該值會自動轉化為JavaBean屬性相應的型別,如果value的值是一個表示式,那麼該表示式的計算結果必須與所要設定的JavaBean屬性的 型別一致。  
param屬性用於將JavaBean例項物件的某個屬性值設定為一個請求引數值,該屬性值同樣會 自動轉換成要設定的JavaBean屬性的型別。

3.3、<jsp:getProperty>標籤

<jsp:getProperty>標籤用於讀取JavaBean物件的屬性,也就是呼叫JavaBean物件的getter方法,然後將讀取的屬性值轉換成字串後插入進輸出的響應正文中。
語法:
<jsp:getProperty name="beanInstanceName" property="PropertyName" />
name屬性用於指定JavaBean例項物件的名稱,其值應與<jsp:useBean>標籤的id屬性值相同。 
property屬性用於指定JavaBean 例項物件的屬性名如果一個JavaBean例項物件的某個屬性的值為null,那麼,使用<jsp:getProperty>標籤輸出該屬性的結果將是一個內容為“null”的字串。

2、JSP開發模式

1.SUN公司推出JSP技術後,同時也推薦了兩種web應用程式的開發模式,一種是JSP+JavaBean模式一種是Servlet+JSP+JavaBean模式
2.JSP+JavaBean模式適合開發業務邏輯不太複雜的web應用程式,這種模式下,JavaBean用於封裝業務資料,JSP即負責處理使用者請求,又顯示資料。
3.Servlet+JSP+JavaBean(MVC)模式適合開發複雜的web應用,在這種模式下,
servlet負責處理使用者請求, jsp負責資料顯示,javabean負責封裝資料。 Servlet+JSP、JavaBean模式程式各個模組之間層次清晰,web開發推薦採用此種模式。

3、EL表示式快速入門

1.EL表示式用於獲取資料,在JSP頁面中可使用${識別符號}的形式,通知JSP引擎呼叫pageContext.findAttribute()方法,以識別符號為關鍵字從各個域物件中獲取物件。如果域物件中不存在識別符號所對應的物件,則返回結果為””(注意,不是null)。
示例:使用EL表示式獲取request、session、applection域中的資料。
2.EL表示式中也可以使用${customerBean.address}的形式來訪問JavaBean物件的屬性。
示例:使用EL表示式獲取Bean屬性。
3.結合JSTL標籤,EL表示式也可輕鬆獲取各種集合中的元素。
示例:使用EL表示式獲取List、Map集合中的元素。
4.EL表示式也可使用類如${1==1}的形式進行簡單的邏輯判斷。

4、JSTL標籤快速入門


JSTL是sun公司開發的一套標籤庫,使用JSTL可以在頁面中實現一些簡單的邏輯,從而替換頁面中的指令碼程式碼。
在頁面中使用JSTL標籤需完成以下2個步驟:
1.匯入jstl.jarstanderd.jar這兩個JSTL的jar檔案。
2.在JSP頁面中使用
<%@ tablib url=“”  prifix=“” %>
元素匯入標籤庫。
JSTL標籤庫中常用標籤:
<c:foreach var=“” items=“”>
<c:if test=“”>