java開發中的一些概念名詞


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一樣也是僅僅包含數據而已。但應是抽象出的業務對象,可以和表對應,也可以不,這根據業務的需要.

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM