初識J2EE

一、背景

        隨着電子商務和信息技術的快速發展以及對他們的需求給應用程序開發人員帶來了新的壓力。怎樣用更少的資金、更少的時間、更少的資源來更快地設計、開發企業應用程序呢?

        J2EE爲此帶來光明。J2EE平臺提供了一個支持簡化的、基於組建的方法來設計、開發、裝配及部署企業應用程序。由於組件技術的使用,開發人員可以進行合理的分工,許多工作可以同時進行,提高了開發的效率。並且這些組件在EJB中都是嚴格分離的,我們在進行組件的組裝或是更新替換就非常的方便,這就使得軟件有很好的重用性和可維護性。

二、論述

       J2EE(Java Platform Enterprise Edition)是java的一種企業版用於企業級開發的應用服務程序,基於J2EE編程語言和J2SE。所以在學習j2ee之前,還是先學習j2se,不管怎樣j2ee底層的操作依然還會調用很到j2se。另外,對j2se掌握好,才能使我們在後面走的順風順水。

       因爲剛開始接觸java,有人給我說java完全和c#完全不是一回事。但自己在接觸j2se時,發現java和c#的語法和編程思想都是差不多的,爲什麼就是完全不是一回事?現在本人的理解是如java中的j2ee中應用了組件+容器這種核心技術,推出了不少核心的框架,我們在應用時要進行搭架,配置文件,減少了代碼的編寫。這是和c#不一樣的地方嗎?可是又想,自己沒用過.net中的框架去編寫過東西,並不代表它不存在,java中有的東西c#中也應該是有的,不然也不會這兩種語言會對立這麼久,而不知誰優誰劣。不管怎麼隨着後面的深入學習,可能這個問題自是水到渠成。

三、體系結構

       J2EE使用多層分佈式的應用模型,最著名的是MVC三層模型。在一個大的工程或項目中,爲了讓嵌套和後臺各個模塊的編程人員能夠同時進行工作提高開發效率,最重要的就是實現層與層之間的耦合關係。在j2ee中的這個多層分佈模型,是通過三層或四層來實現的:

(1)      客戶層:客戶前端的操作層

(2)      Web層:爲我們前端提供服務的一個容器,動態的給我們的客戶端提供一些需求,根據客戶的需求做出不同的響應。

(3)      業務層:對業務處理的邏輯,進行後臺的操作。

(4)      企業信息系統:企業後端,運行在EIS服務器上的軟件系統。

 

上面的這個層次也是三層應用,因爲分佈在三個不同的位置上:客戶計算機、j2ee服務器以及後臺的數據庫或過去遺留的系統。


四、標準

       J2EE平臺由一整套服務(Services)、應用程序接口(APIs)和協議構成,它對開發基於Web的多層應用提供了功能支持。針對接口我想是j2ee學習之路必備的思想。爲什麼這麼說呢?j2ee api 有這樣一個特點,大家比較熟悉的幾個包java.jms、javax.servlet.heep、javax.ebj等都是以interface居多,實現類較少。j2ee旨在通過interface的聲明來規範實現的行爲,任何第三方的廠商想要提供自己品牌的實現前提也是遵循這些我接口定義的規則。任何脫離這一規則的程序,我想都會麻煩連連。我想J2EE中的13種技術規範也都是針對接口的吧。下面我們就來看看這13種技術規範。

1、  JDBC(Java Database Connectivity)

是一種用於執行SQL語句的java API,可以爲多重數據庫提供統一訪問,它由一組用java語言編寫的類和接口組成。

個人理解:JDBC是連接數據庫用的準沒有錯,因爲是一個接口嘛,則我們必須要重寫了,它可向數據庫發送SQL語句,並且它可以在任何平臺上運行,這也是Java“編寫一次,隨處運行”的體現,這裏用到了驅動程序幫忙解決這個問題,具體怎麼解決我也不太清楚,以前看過文章說與java虛擬機有關係,針對這個問題我會在會面仔細的研究一下,找到運行機理。

2、  JNDI(Java Name and Directory Interface)

被用來執行名字和目錄服務。它提供了一致的模型來存取和操作企業級的資源DNS和LDAP,本地文件系統或應用服務器中的對象。

個人理解:既然同樣是接口,則他就可以像JDBC能運行在不同的數據庫上一樣,它通過寫一個程序由此來達到訪問各種各樣的目錄。我知道在操作系統上我們可以通過搜索一個文件名字,找到這個文件對象;那麼這個JNDI自然也是通過名字找到所對應的對象,那麼它用在企業開發的什麼情況下需要用名字找到對象呢?這一點有待解決。

3、  EJB(Enterprise Javabean)

是一個組件結構,用於開發和部署面向對象的、分佈式的企業級的應用程序,使用EJB結構編寫的應用程序是可擴展的、事務的和多用戶安全的。

個人理解:EJB這個內容應該很重要,是j2ee的核心。它位於應用服務器,屬於業務邏輯層的內容,它與客戶端進行了隔離,並且與後端的數據庫進行交互,使其系統的業務邏輯都集中在應用服務層,這樣也可以減少客戶機和後端數據庫的負擔。

4、  RMI(Remote Method Invoke)

是允許運行在一個Java虛擬機上的對象調用運行在另一個Java虛擬機上的對象的方法。這兩個Java虛擬機可以是運行在相同計算機上的不同進程中,也可以使運行在通過TCP/IP鏈接的不同計算機上。

個人理解:他它就是爲遠程通信服務提供服務的。我想這也就是爲了實現j2ee分佈式服務的吧,也就是爲服務器和客戶端進行消息傳遞而有的一種機制。

5、  Java IDL(Interface Definition Language)/CORBA(CommonObjectRequest Broker Architecture)

在Java IDL的支持下,開發人員可以將Java和CORBA集成在一起。他們可以創建Java對象並使之可在CORBA中展開,或者他們可以創建Java類並和其它ORB一起展開的CORBA對象客戶。後一種方法提供了另一種途徑,通過它Java可以被用於將新的應用程序和舊的系統集合在一起。

個人理解:這個和上面的RMI很像,都可以用客戶機調用任何地方的服務器。但是CORBA的實現卻更加複雜,RMI調用遠程對象的方法時,客戶機將對象作爲參數傳遞,而CORBA不支持對象序列化,只能通過引用來完成。不是很理解啊,問題繼續保留。

6、  JSP(Java Server Pages)

頁面由HTML頁面和嵌入其中的Java代碼組成,它可以接受客戶端的請求並動態地生成HTML響應頁面。

個人理解:它在應用服務器中的表示層,與客戶端進行打交道。它是編程技術基於web的腳本,與ASP很像,只不過後臺運用的是java語言。對於我們學習過BS的來說,這塊我覺得應該好理解。

7、  Servlet

是用Java編寫的、協議和平臺都獨立的服務器端的組件,它們使用“請求/響應”模式,提供了一個局域Java的Web服務器的解決方案,可以動態地支持Java的Web服務器。由於Servlet運行服務器內部,不需要圖形用戶接口。

個人理解:Servlet提供的功能大多和JSP類似,不過實現的方式不同。JSP通常是大多數的HTML代碼嵌入少量的Java代碼,而servlet是由java寫成並且生成HTML。

在JSP中編寫靜態HTML更加方便,不必再用println語句來輸出每一行HTML代碼。更重要的是,藉助內容和外觀的分離,頁面製作中不同性質的任務可以方便地分開:比如,由頁面設計者進行HTML設計,同時留出供Servlet程序員插入動態內容的空間。Servlet跟微軟的一般處理程序很像。

8、  XML(Extensible Markup Language)

是一種可以用來定義其他標記語言的語言,它通常用來在不同的系統或商務過程之間共享數據。XML和java是相互獨立的,但是它們具有的目標是平臺獨立性。

個人理解:也就是說通過Java和XML的組合,可以得到一個獨立性的企業系統集成方案。

9、  JMS(Java Message Service)

是用來和麪向消息的中間件相互通信的應用程序接口。它即支持點對點類型的域,又支持“發佈、訂閱”類型的域,並且提供對下列類型的支持:經認可的消息傳遞,事務性消息的傳遞,一致性消息和對持久性訂閱者的支持。

個人理解:他是Java組件之間通訊的方式,我現在想到的是和QQ的通訊機制是不是有些相同。

10、JTA(Java Transaction Architecture)

 定義了一種標準的API,應用系統可以利用它來訪問和實現各種事務。

個人理解:這個規範是指定了事務管理器和分佈式事務系統所涉及各方的本地Java接口

11、JTS(Java Transaction Service)

是CORBA OTS事務監控的基本實現,它規定了事務管理器的實現方式。該事務管     理器在高層支持JavaTransaction API規範,並且在較低層實現OMG OTS Spcification的Java映像。JTS事務管理器嚮應用服務器、資源管理器、獨立的應用以及通信資源管理提供了事務服務。

個人理解:JTS要依靠JTA。

12、Java Mail

是用於存取郵件服務器的API,它提供了一套郵件服務器餓抽象類。不僅支持SMTP服務,也支持IMAP服務器。

個人理解:它是應用系統向用戶發送消息的一種方式,用它我們也可以編寫像outlook那樣的郵件收發程序。

13、JAF(JavaBeans Activation Framework)

    Javamail是利用jaf來處理MIME編碼的郵件附件。MIME的字節流可以被轉換成java  對象,大多數應用都不需要直接使用JAF。

 

小結:

       本人理解在這十三個標準當中,可以劃分爲三部分:JSP、Servlet、XML這三個標準是在描述web層的應用開發,而EJB這個標準是對企業內的業務邏輯進行整合,達到企業所需,而其它的標準都是在保證J2EE這個三層或四層體系之間可以進行安全、快捷、高效的通信和鏈接。

      

五、總結

       J2EE想要實現的宗旨是“一次編譯,到處執行”,從這13個標準想要達到的效果就顯而易見了,也不難看出想要達到這一目的方法就是“接口編程”。J2EE這個技術框架在現在是非常受歡迎和認可的,所以我們學好,學透它是無可厚非的。

 

 

 

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