java開發中的一些概念名詞

myLittleGarden發表於2014-03-01

1. JavaBeans

JavaBean是符合某種規範的Java元件,也就是Java類。它必須滿足如下規範: 1)必須有一個零引數的預設建構函式 2)必須有get和set方法,類的欄位必須通過get和set 方法來訪問。 如:

public class User {  
  private long id;  
  private String name;  
  public void setId(long id) {  
  this.id = id;  
  }  
  public void setName(String name) {  
  this.name=name;  
  }  
  public long getId() {  
  return id;  
  }  
  public String getName() {  
  return name;  
  }  
}  

2. POJO

POJO(Plain Old Java Objects)簡單的Java物件,實際就是普通JavaBeans,它有get/set方法。使用POJO這個名字是為了與EJB中的JavaBeans相區別。POJO可能專指web開發中的JavaBeans。POJO 簡單理解為不包含業務邏輯的單純用來儲存資料的 java類即可。一般POJO沒有實現任何介面,沒有整合任何父類(java.lang.Object除外)。

3. JSP

JSP(Java Server Pages)是由Sun Microsystems公司倡導、許多公司參與一起建立的一種動態網頁技術標準。在傳統的網頁HTML檔案(*.htm,*.html)中插入Java程式段(Scriptlet)和JSP標記(tag),從而形成JSP檔案(*.jsp)。簡單地說,jsp就是可能包含了java程式段的html檔案,為了和普通的html區別,因此使用jsp字尾名。

下面這個圖是普通的HTML請求流程:

 

普通的HTML請求流程

 

因為JSP包含了java程式程式碼段,因此JSP在web server裡面就要有個更多的處理步驟。如下圖所示:

 

JSP在web server裡面就要有個更多的處理步驟

 

 

你會發現,這裡多了一個JSP Container的東西,然後多了一個轉換到名叫xxxServlet的java檔案並編譯成class類檔案的過程。這裡就展示出了java伺服器的核心部分——Servlet。

4. Servlet

Servlet是一種獨立於平臺和協議的伺服器端的Java應用程式,可以生成動態的Web頁面。 它擔當Web瀏覽器或其他HTTP客戶程式發出請求,與HTTP伺服器上的資料庫或應用程式之間的中間層。Servlet是位於Web 伺服器內部的伺服器端的Java應用程式,與傳統的從命令列啟動的Java應用程式不同,Servlet由Web伺服器進行載入,該Web伺服器必須包含支援Servlet的Java虛擬機器。在通訊量大的伺服器上,Java servlet的優點在於它們的執行速度更快於CGI程式。各個使用者請求被啟用成單個程式中的一個執行緒,而建立單獨的程式,這意味著各個請求的系統開銷比較小。簡單地說,servlet就是在伺服器端被執行的java程式,它可以處理使用者的請求,並對這些請求做出響應。Servlet程式設計是純粹的java程式設計,而jsp則是html和java程式設計的中庸形式,它更有助於美工人員來設計介面。正是如此,所有的jsp檔案都將被最終轉換成java servlet來執行。從jsp到java到class,jsp在首次被請求時是要花費一定的伺服器資源的。但慶幸的是,這種情況只發生一次,一旦這個jsp檔案被翻譯並編譯成對應的servlet,在下次請求來臨時,將直接由servlet來處理,除非這個jsp已經被修改。

 5. J2EE

J2EE可以說指Java在資料庫資訊系統上實現,資料庫資訊系統從早期的dBase、到Delphi/VB等C/S結構,發展到B/S(Browser瀏覽器/Server伺服器)結構,而J2EE主要是指B/S結構的實現。J2EE又是一種框架和標準。J2EE是一個虛的大的概念,J2EE標準主要有三種子技術標準:WEB技術、EJB技術和JMS,談到J2EE應該說最終要落實到這三個子概念上。這三種技術的每個技術在應用時都涉及兩個部分:容器部分和應用部分,Web容器也是指Jsp/Servlet容器,你假如要開發一個Web應用,無論是編譯或執行,都必須要有Jsp/Servlet庫或API支援(除了JDK/J2SE以外)。Web技術中除了Jsp/Servlet技術外,還需要JavaBeans或Java Class實現一些功能或者包裝攜帶資料,所以Web技術最初裸體簡稱為Jsp/Servlet JavaBeans系統。

JavaBeans不屬於J2EE概念範疇中,假如一個JavaBeans物件被Web技術(也就是Jsp/Servlet)呼叫,那麼JavaBeans就執行在J2EE的Web容器中;假如它被EJB呼叫,它就執行在EJB容器中。EJB(企業JavaBeans)是普通JavaBeans的一種提升和規範,因為企業資訊系統開發中需要一個可伸縮的效能和事務、安全機制,這樣能保證企業系統平滑發展,而不是發展到一種規模重新更換一套軟體系統。至此,JavaBeans元件發展到EJB後,並不是說以前的那種JavaBeans形式就消失了,這就自然形成了兩種JavaBeans技術:EJB和POJO,POJO完全不同於EJB概念,指的是普通JavaBeans。

J2EE應用系統開發工具有很多:如JBuilder、Eclipse等,這些IDE首先是Java開發工具,也就是說,它們首要基本功能是可以開發出JavaBeans或Java class,但是假如要開發出J2EE系統,就要落實到要麼是Web技術或EJB技術,那麼就有可能要一些專門模組功能(如eclipse需要lomboz外掛),最重要的是,因為J2EE系統區分為容器和應用兩個部分,所以,在任何開發工具中開發J2EE都需要指定J2EE容器。J2EE容器也稱為J2EE伺服器,大部分時它們概念是一致的。

J2EE容器分為WEB容器和EJB容器,Tomcat是Web容器,JBoss是EJB容器。所以你開發的Web應用程式可以在上面兩種容器執行,而你開發的Web EJB應用則只可以在JBoss伺服器上執行,商業產品Websphere/Weblogic等和JBoss屬於同一種性質。

衡量J2EE應用系統設計開發水平高低的標準就是:解耦性;你的應用系統各個功能是否能夠徹底脫離?是否不相互依靠,也只有這樣,才能體現可維護性、可擴充性的軟體設計目標。  為了達到這個目的,誕生各種框架概念,J2EE框架標準將一個系統劃分為WEB和EJB主要部分,當然我們有時不是以這個具體技術區分,而是從設計上抽象為表現層、服務層和持久層,這三個層次從一個高度將J2EE分離開來,實現解耦目的。  

6. PO、VO

PO: persistant object 持久物件,可以看成是與資料庫中的表相對映的java物件。使用Hibernate來生成PO是不錯的選擇。

VO: value object值物件。通常用於業務層之間的資料傳遞,和PO一樣也是僅僅包含資料而已。但應是抽象出的業務物件,可以和表對應,也可以不,這根據業務的需要.

 

相關文章