1.執行java.io.Serializable 接口
2.提供無參數的構造器
3.提供getter 和 setter方法訪問它的屬性.
讓我們創建一個簡單的javabean來看看吧!
示例:
package com.stardeveloper.bean.test;
public class SimpleBean implements java.io.Serializable {
/* Properties */
private String name = null;
private int age = 0;
/* Empty ConstrUCtor */
public SimpleBean() {}
/* Getter and Setter Methods */
public String getName() {
return name;
}
public void setName(String s) {
name = s;
}
public int getAge() {
return age;
}
public void setAge(int i) {
age = i;
}
}
將他保存在/WEB-INF/classes/com/stardeveloper/bean/test文件中;
解釋一下:第一行:package com.stardeveloper.bean.test;包的申明;
下面我們定義我們的類,使他能執行java.io.Serializable 接口,注意這Serializable接口不能包括任何方法.我們聲明name和age兩 個變量,這兩個變量在javabean中作爲特性(properties或變量)被調用,這些道具是私有的,所以其他的類不能直接訪問,爲了我們自己能訪問,我們提供了 getter 和setter方法來 get 和set他們的值。
private String name = null;
private int age = 0;
而下面我們創建了一個無參數的構造器,緊記:在javabean中是無(empty)參數的構造器,而不是叫你不用.就象:public SimpleBean() {};
要運用getter 和setter方法來get 和 set javabean的特性(properties或變量)是簡單的,我們所要做的是添加 特性的名字,e.g. name;使他的首寫字母大寫,Name;現在我們的get的getter方法和set的setter方法就變爲:
public String getName() {
return name;
}
public void setName(String s) {
name = s;
}
看!多簡單啊!因爲名字是字符型所以我們返回getName() 的值也應該是相同類型,對於setName()是一樣的,所以他有一個 字符型參數 s;下面我們添加四個getter 和setter方法。
public String getName() {
return name;
}
public void setName(String s) {
name = s;
}
public int getAge() {
return age;
}
public void setAge(int i) {
age = i;
}
最後以 }完成該類.
編譯吧,象其他的java代碼一樣,成功後一個簡單的javabean就產生了。
JavaBean 是一種JAVA語言寫成的可重用組件。爲寫成JavaBean,類必須是具體的和公共的,並且具有無參數的構造器。JavaBean 通過提供符合一致性設計模式的公共方法將內部域暴露稱爲屬性。衆所周知,屬性名稱符合這種模式,其他Java 類可以通過自省機制發現和操作這些JavaBean 屬性。
用戶可以使用JavaBean將功能、處理、值、數據庫訪問和其他任何可以用java代碼創造的對象進行打包,並且其他的開發者可以通過內部的JSP頁面、Servlet、其他JavaBean、applet程序或者應用來使用這些對象。用戶可以認爲JavaBean提供了一種隨時隨地的複製和粘貼的功能,而不用關心任何改變。
JavaBean 的發展
最初,JavaBean的目的是爲了將可以重複使用的軟件代碼打包標準。特別是用與幫助廠家開發在綜合開發環境(IDE)下使用的java軟件部件。這些包括如Grid控件,用戶可以將該部件拖放到開發環境中。從此,JavaBean就可以擴展爲一個java web 應用的標準部件,並且JavaBean部件框架已經擴展爲企業版的 Bean(EJB)。
JavaBean需求
JavaBean是java類,屬於某些特定的譯碼知道方針,並且擴展了適應性和範圍,允許用戶訪問內部的屬性和方法。通過這些,JavaBean類可以用於下列方法:
1. 在IDE中,JavaBean的功能允許應用開發者瀏覽其中的方法,即使JavaBean是被編譯的,並且無法利用原始的源文件。
2. 在 Remote Method Invocation(RMI) 的分佈式風格中,這項功能聽起來並不讓人興奮,但是在未來的包含企業版的JavaBean後,將改變這種情況。
3. 爲了JavaBean的屬性值和狀態可以保存到磁盤上。
這裏說的有些簡單,如果想了解更多的東西,可以查閱一些資料。
JavaBean設計注意事項
實際應用中,在表現對象或者處理前擴展JavaBean的設計非常有用。通常認爲如果提供信息,web開發者將在功能上滿足擁護對JavaBean的需求。例如: HTML中顯示敏感的數據時,用戶可以屏蔽的條目,如密碼、電話號碼等。
良好規劃設計的JavaBean是值得信賴的。
Java 中的 null 不同於 SQL 中的 null
看這樣一道測試程序:
public class NullTest
{
public static void main(String[] args)
{
int I = 0;
// int I = null; // not a valid initialization
String str = null;
String strZeroOutValue = “”;
StringBuffer sb = new StringBuffer(“Null test: String initialized as null = “);
sb.append(str);
sb.append(“/n String representing a Zero Out Value:”);
sb.append(strZeroOutValue);
System.out.println(sb.toString());
}
}
這個程序將產生下面的結果:
Null test: String initialized as null = null
String representing a Zero Out Value:
在JavaBean中, 我們將 I 變量聲明爲一個 int, 我們必須處理與該變量相關的值,因爲I 默認的沒有值,int 類型無法初始化爲 null, 如果int 值沒有進行明確的初始化,編譯器將提示錯誤。
執行 NullTest 程序,將驗證在文本中空字符串是空值的替代,用於顯示 SQL 的插入和更新。如果我們需要刪除一些信息,通過刪除表單區域的文本,需要將數據庫發送長度爲0的字符串。
儘管大多數數據庫將空字符串作爲空值進行操作,如果我們使用的數據庫不支持處理空字符串的話,我們必須寫入附加的java代碼,來創建自己的SQL插入聲明。
例如:
if(test.length==0)
{
sb.append(“null”);
}
else
{
sb.append(test);
}
JavaBean 的範圍:
JavaBean 的範圍。 Scope 是一個具有生命時間的變量。JavaBean的範圍在
<jsp:useBean scope=”….>標誌中右邊進行表示。將產生一個JavaBean的快捷參考。
說明:jsp服務器引擎將剝離<jsp。。。。標記。並且在最終用戶的瀏覽器上無法顯示實際代碼。
存在下面四種範圍: 頁面、 請求、 對話、 應用。
對話範圍:
對話範圍的JavaBean 主要應用與跨多個頁面和時間段: 例如填充 用戶信息。 添加信息並且接受回饋,保存用戶最近執行頁面的軌跡。對話範圍JavaBean保留一些和用戶對話 ID 相關的信息。這些信息來自臨時的對話cookie,並在當用戶關閉瀏覽器時,這個cookie將從客戶端和服務器刪除。
頁面/請求範圍:
頁面和請求範圍的JavaBean有時類似表單 的bean , 這是因爲 他們大豆用與處理表單。表單需要很長的時間來處理用戶的輸入,通常情況下用於頁面接受HTTP/POST或者GET請求。另外頁面和請求範圍的bean可以用於減少大型站點服務器上的負載,如果使用對話bean,耽擱的處理就可能會消耗掉很多資源。
應用:
應用範圍通常應用於服務器的部件,例如 JDBC 連接池、應用監視、擁護計數和其他參與用戶行爲的類。
在Bean中限制HTML的產生:
理論上,JavaBean 將不會產生任何HTML,因爲這是jsp層負責的工作;然而,爲了動態消息提供一些預先準備的格式是非常有用的。產生的HTML將被標註的 JavaBean方法返回。
這裏有一些非常重要的事情:
1. 不要試圖在JavaBean返回的HTML中放置任何字體尺寸。
並不是所有的瀏覽器都相同。很多瀏覽器無法處理完整的字體尺寸。
2. 不要試圖在JavaBean返回的HTML中放置任何腳本或者DHTML。
向頁面直接輸出腳本或者DHTML相當於自我毀滅,因爲某些瀏覽器版本在處理不正確的腳本時會崩潰(非常少但是有)。如果用戶的JavaBean在運行時是動態的推出複雜的HTML語言,用戶將陷入調試的噩夢。另外,複雜的HTML將限制JavaBean的壽命和靈活性。
3. 不要提供任何的選擇。
如果用戶使用不同的系統瀏覽頁面,可以提供一種可以替換的方法。
按着Sun公司的定義,JavaBean是一個可重複使用的軟件組件。實際上JavaBean是一種Java類,通過封裝屬性和方法成爲具有某種功能或者處理某個業務的對象,簡稱bean。由於javabean是基於java語言的,因此javabean不依賴平臺,具有以下特點:
1. 可以實現代碼的重複利用
2. 易編寫、易維護、易使用
3. 可以在任何安裝了Java運行環境的平臺上的使用,而不需要重新編譯。
編寫javabean就是編寫一個java的類,所以你只要會寫類就能編寫一個bean,這個類創建的一個對象稱做一個bean。爲了能讓使用這個bean的應用程序構建工具(比如JSP引擎)知道這個bean的屬性和方法,只需在類的方法命名上遵守以下規則:
1. 如果類的成員變量的名字是xxx,那麼爲了更改或獲取成員變量的值,即更改或獲取屬性,在類中可以使用兩個方法:
getXxx(),用來獲取屬性xxx。
setXxx(),用來修改屬性xxx.。
2. 對於boolean類型的成員變量,即布爾邏輯類型的屬性,允許使用"is"代替上面的"get"和"set"。
3. 類中方法的訪問屬性都必須是public的。
4. 類中如果有構造方法,那麼這個構造方法也是public的並且是無參數的。
文章出自: http://hi.baidu.com/hchengyou/blog/item/2cb2c339f57fc8f53a87ce83.html