什麼是Java bean

 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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章