亚洲AV日韩AⅤ综合手机在线观看,激情婷婷久久综合色,欧美色五月婷婷久久,久久国产精品99久久人人澡

  • <abbr id="uk6uq"><abbr id="uk6uq"></abbr></abbr>
  • <tbody id="uk6uq"></tbody>
  • J2EE的13種核心技術(shù)

    時間:2024-09-01 15:27:46 J2EE培訓(xùn) 我要投稿
    • 相關(guān)推薦

    J2EE的13種核心技術(shù)

      J2EE(Java 2 Platform, Enterprise Edition)是一個為大企業(yè)主機級的計算類型而設(shè)計的Java平臺。Sun微系統(tǒng)(與其工業(yè)伙伴一起,例如IBM)設(shè)計了J2EE,以此來簡化在瘦客戶級環(huán)境下的應(yīng)用開發(fā)。下面是小編整理的關(guān)于J2EE的13種核心技術(shù),歡迎大家參考!

      一、宏觀印象: 分布式結(jié)構(gòu)和J2EE

      過去,二層化應(yīng)用--通常被稱為CLIENT/SERVER應(yīng)用--是大家談?wù)摰淖疃嗟摹T诤芏嗲闆r下,服務(wù)器提供的唯一服務(wù)就是數(shù)據(jù)庫服務(wù)。在這種解決方案中,客戶端程序負責(zé)數(shù)據(jù)訪問、實現(xiàn)業(yè)務(wù)邏輯、用合適的樣式顯示結(jié)果、彈出預(yù)設(shè)的用戶界面、接受用戶輸入等。CLIENT/SERVER結(jié)構(gòu)通常在第一次部署的時候比較容易,但難于升級或改進,而且經(jīng)常基于某種專有的協(xié)議(通常是某種數(shù)據(jù)庫協(xié)議)。它使得重用業(yè)務(wù)邏輯和界面邏輯非常困難。更重要的是,在WEB時代,二層化應(yīng)用通常不能體現(xiàn)出很好的伸縮性,因而很難適應(yīng)INTERNET的要求。

      SUN設(shè)計J2EE的部分起因就是想解決二層化結(jié)構(gòu)的缺陷。于是J2EE定義了一套標準來簡化N層企業(yè)級應(yīng)用的開發(fā)。它定義了一套標準化的組件,并為這些組件提供了完整的服務(wù)。J2EE還自動為應(yīng)用程序處理了很多實現(xiàn)細節(jié),如安全、多線程等。用J2EE開發(fā)N層應(yīng)用包括將二層化結(jié)構(gòu)中的不同層面切分成許多層。一個N層化應(yīng)用A能夠為以下的每種服務(wù)提供一個分開的層:顯示:在一個典型的WEB應(yīng)用中,客戶端機器上運行的瀏覽器負責(zé)實現(xiàn)用戶界面。

      動態(tài)生成顯示: 盡管瀏覽器可以完成某些動態(tài)內(nèi)容顯示,但為了兼容不同的瀏覽器,這些動態(tài)生成工作應(yīng)該放在WEB服務(wù)器端進行,使用JSP、SERVLETS,或者XML(可擴展標記語言)和XSL(可擴展樣式表語言)。

      業(yè)務(wù)邏輯:業(yè)務(wù)邏輯適合用SESSION EJB(后面將介紹)來實現(xiàn)。

      數(shù)據(jù)訪問:數(shù)據(jù)訪問適合用ENTITY EJB(后面將介紹)和JDBC來實現(xiàn)。

      后臺系統(tǒng)集成: 后臺系統(tǒng)的集成可能需要用到許多不同的技術(shù),至于何種最佳需要根據(jù)后臺系統(tǒng)的特征而定。

      您可能開始詫異:為什么有這么多的層?事實上,多層方式可以使企業(yè)級應(yīng)用具有很強的伸縮性,它允許每層專注于特定的角色。例如,讓W(xué)EB服務(wù)器負責(zé)提供頁面,應(yīng)用服務(wù)器處理應(yīng)用邏輯,而數(shù)據(jù)庫服務(wù)器提供數(shù)據(jù)庫服務(wù)。

      由于J2EE建立在JAVA2平臺標準版(J2SE)的基礎(chǔ)上,所以具備了J2SE的所有優(yōu)點和功能。包括“編寫一次,到處可用”的可移植性、通過JDBC訪問數(shù)據(jù)庫、同原有企業(yè)資源進行交互的CORBA技術(shù)以及一個經(jīng)過驗證的安全模型。在這些基礎(chǔ)上,J2EE又增加了對EJB(企業(yè)級JAVA組件)、JAVA SERVLETS、JAVA服務(wù)器頁面(JSPS)和XML技術(shù)的支持。

      二、分布式結(jié)構(gòu)與WEBLOGIC應(yīng)用服務(wù)器

      J2EE提供了一個框架--一套標準API--用于開發(fā)分布式結(jié)構(gòu)的應(yīng)用,這個框架的實際實現(xiàn)留給了第三方廠商。部分廠商只是專注于整個J2EE架構(gòu)中的的特定組件,例如APACHE的TOMCAT提供了對JSP和SERVLETS的支持,BEA系統(tǒng)公司則通過其WEBLOGIC應(yīng)用服務(wù)器產(chǎn)品為整個 J2EE規(guī)范提供了一個較為完整的實現(xiàn)。

      WEBLOGIC服務(wù)器已使建立和部署伸縮性較好的分布式應(yīng)用的過程大為簡化。WEBLOGIC和J2EE代你處理了大量常規(guī)的編程任務(wù),包括提供事務(wù)服務(wù)、安全領(lǐng)域、可靠的消息、名字和目錄服務(wù)、數(shù)據(jù)庫訪問和連接池、線程池、負載平衡和容錯處理等。通過以一種標準、易用的方式提供這些公共服務(wù),象WEBLOGIC服務(wù)器這樣的產(chǎn)品造就了具有更好伸縮性和可維護性的應(yīng)用系統(tǒng),使其為大量的用戶提供了增長的可用性。

      J2EE技術(shù)在接下來的部分里,我們將描述構(gòu)成J2EE的各種技術(shù),并且了解WEBLOGIC服務(wù)器是如何在一個分布式應(yīng)用中對它們進行支持的。最常用的J2EE技術(shù)應(yīng)該是JDBC、JNDI、EJB、JSP和SERVLETS,對這些我們將作更仔細的考察。

      三、JAVA DATABASE CONNECTIVITY (JDBC)

      JDBC API以一種統(tǒng)一的方式來對各種各樣的數(shù)據(jù)庫進行存取。和ODBC一樣,JDBC為開發(fā)人員隱藏了不同數(shù)據(jù)庫的不同特性。另外,由于JDBC建立在JAVA的基礎(chǔ)上,因此還提供了數(shù)據(jù)庫存取的平臺的獨立性。

      JDBC定義了4種不同的驅(qū)動程序,現(xiàn)分述如下:

      類型 1: JDBC-ODBC BRIDGE

      在JDBC出現(xiàn)的初期,JDBC-ODBC橋顯然是非常有實用意義的,通過JDBC-ODBC橋,開發(fā)人員可以使用JDBC來存取ODBC數(shù)據(jù)源。不足的是,他需要在客戶端安裝ODBC驅(qū)動程序,換句話說,必須安裝MICROSOFT WINDOWS的某個版本。使用這一類型你需要犧牲JDBC的平臺的獨立性。另外,ODBC驅(qū)動程序還需要具有客戶端的控制權(quán)限。

      類型 2: JDBC-NATIVE DRIVER BRIDGE

      JDBC本地驅(qū)動程序橋提供了一種JDBC接口,它建立在本地數(shù)據(jù)庫驅(qū)動程序的頂層,而不需要使用ODBC。

      JDBC驅(qū)動程序?qū)?shù)據(jù)庫的API從標準的JDBC調(diào)用轉(zhuǎn)換為本地調(diào)用。使用此類型需要犧牲JDBC的平臺的獨立性,還要求在客戶端安裝一些本地代碼。

      類型 3: JDBC-NETWORK BRIDGE

      JDBC網(wǎng)絡(luò)橋驅(qū)動程序不再需要客戶端數(shù)據(jù)庫驅(qū)動程序。它使用網(wǎng)絡(luò)上的中間服務(wù)器來存取數(shù)據(jù)庫。這種應(yīng)用使得以下技術(shù)的實現(xiàn)有了可能,這些技術(shù)包括負載 均衡、連接緩沖池和數(shù)據(jù)緩存等。由于第3種類型往往只需要相對更少的下載時間,具有平臺的獨立性,而且不需要在客戶端安裝并取得控制權(quán),所以很適合于 INTERNET上的應(yīng)用。

      類型 4: PURE JAVA DRIVER

      第4種類型通過使用一個純JAVA數(shù)據(jù)庫驅(qū)動程序來執(zhí)行數(shù)據(jù)庫的直接訪問。此類型實際上在客戶端實現(xiàn)了2層結(jié)構(gòu)。要在N-層結(jié)構(gòu)中應(yīng)用,一個更好的做法是編寫一個EJB,讓它包含存取代碼并提供一個對客戶端具有數(shù)據(jù)庫獨立性的服務(wù)。

      WEBLOGIC服務(wù)器為一些通常的數(shù)據(jù)庫提供了JDBC驅(qū)動程序,包括ORACLE, SYBASE, MICROSOFT SQL SERVER以及INFORMIX。它也帶有一種JDBC驅(qū)動程序用于CLOUDSCAPE,這是一種純JAVA的DBMS,WEBLOGIC服務(wù)器中帶有該數(shù)據(jù)庫的評估版本。

      以下讓我們看一個實例。

      JDBC實例在這個例子中我們假定你已經(jīng)在CLOUDSCAPE中建立了一個PHONEBOOK數(shù)據(jù)庫,并且包含一個表,名為CONTACT_TABLE ,它帶有2個字段:NAME 和 PHONE。開始的時候先裝載CLOUDSCAPE JDBC DRIVER,并請求DRIVER MANAGER得到一個對PHONEBOOK CLOUDSCAPE數(shù)據(jù)庫的連接。通過這一連接,我們可以構(gòu)造一個STATEMENT 對象并用它來執(zhí)行一個簡單的SQL查詢。最后,用循環(huán)來遍歷結(jié)果集的所有數(shù)據(jù),并用標準輸出將NAME和PHONE字段的內(nèi)容進行輸出。

      OK。接著我們來看一看JDBC是如何在企業(yè)應(yīng)用中的進行使用。JDBC在企業(yè)級應(yīng)用中的應(yīng)用以上實例其實是很基本的,可能有些微不足道。它假定了一個2層結(jié)構(gòu)。在一個多層的企業(yè)級應(yīng)用中,更大的可能是在客戶端和一個EJB進行通信,該EJB將建立數(shù)據(jù)庫連接。為了實現(xiàn)和改進可伸縮性和系統(tǒng)性能,WEBLOGIC服務(wù)器提供了對連接緩沖池CONNECTION POOL的支持。

      CONNECTION POOL減少了建立和釋放數(shù)據(jù)庫連接的消耗。在系統(tǒng)啟動以后即可建立這樣的緩沖池,此后如故再有對數(shù)據(jù)庫的請求,WEBLOGIC服務(wù)器可以很簡單地從緩 沖池中取出數(shù)據(jù)。數(shù)據(jù)緩沖池可以在WEBLOGIC服務(wù)器的WEBLOGIC.PROPERTIES 文件中進行定義。(可參考 WEBLOGIC.PROPERTIES 文件中的例子,WEBLOGIC服務(wù)器的文檔中還有更詳細的參考信息)在企業(yè)級應(yīng)用的另一 個常見的數(shù)據(jù)庫特性是事務(wù)處理。事務(wù)是一組申明STATEMENT,它們必須做為同一個STATEMENT來處理以保證數(shù)據(jù)完整性。缺省情況下JDBC使 用 AUTO-COMMIT 事務(wù)模式。這可以通過使用CONNECTION類的 SETAUTOCOMMIT() 方法來實現(xiàn)。

      現(xiàn)在我們已經(jīng)對JDBC有了一些認識,下面該轉(zhuǎn)向JNDI了。

      四、JAVA NAMING AND DIRECTORY INTERFACE (JNDI)

      JNDI API被用于執(zhí)行名字和目錄服務(wù)。它提供了一致的模型來存取和操作企業(yè)級的資源如DNS和LDAP,本地文件系統(tǒng),后者在應(yīng)用服務(wù)器中的對象。

      在JNDI中,在目錄結(jié)構(gòu)中的每一個結(jié)點稱為CONTEXT。每一個JNDI名字都是相對于CONTEXT的。這里沒有絕對名字的概念存在。對一個應(yīng)用來說,它可以通過使用 INITIALCONTEXT 類來得到其第一個CONTEXT:

      CONTEXT CTX = NEW INITIALCONTEXT();

      應(yīng)用可以通過這個初始化的CONTEXT經(jīng)有這個目錄樹來定位它所需要的資源或?qū)ο。例如,假設(shè)你在WEBLOGIC服務(wù)器中展開了一個EJB并將 HOME接口綁定到名字 MYAPP.MYEJB ,那么該EJB的某個客戶在取得一個初始化

      CONTEXT以后,可以通過以下語句定位HOME接口:

      MYEJBHOME HOME = CTX.LOOKUP( "MYAPP.MYEJB" );

      在這個例子中,一旦你有了對被請求對象的參考,EJB的HOME接口就可以在它上面調(diào)用方法。我們將在下面的"ENTERPRISE JAVA BEANS"章節(jié)中做更多的介紹。

      以上關(guān)于JNDI的討論只是冰山之一角而已。如果要更進一步地在CONTEXT中查找對象,JNDI也提供了一些方法來進行以下操作:

      將一個對象插入或綁定到CONTEXT。這在你展開一個EJB的時候是很有效的。

      從CONTEXT中移去對象。

      列出CONTEXT中的所有對象。

      創(chuàng)建或刪除子一級的CONTEXT。

      接下來,我們要開始關(guān)注EJB了。

      五、ENTERPRISE JAVA BEANS (EJB)

      J2EE技術(shù)之所以贏得某體廣泛重視的原因之一就是EJB。它們提供了一個框架來開發(fā)和實施分布式商務(wù)邏輯,由此很顯著地簡化了具有可伸縮性和高度復(fù)雜的企業(yè)級應(yīng)用的開發(fā)。EJB規(guī)范定義了EJB組件在何時以及如何與它們的容器進行交互作用。容器負責(zé)提供公用的服務(wù),例如目錄服務(wù)、事務(wù)管理、安全性、資源緩沖池以及容錯性。

      EJB規(guī)范定義了3中基本的BEAN類型:

      STATELESS SESSION BEANS: 提供某種單一的服務(wù),不維持任何狀態(tài),在服務(wù)器故障發(fā)生時無法繼續(xù)存在,生命期相對較短。例如,一個STATELESS SESSION BEAN可能被用于執(zhí)行溫度轉(zhuǎn)換計算。

      STATEFUL SESSION BEAN: 提供了與客戶端的會話交互,可以存儲狀態(tài)從而代表一個客戶。典型例子是購物車。STATEFUL SESSION BEAN在服務(wù)器故障時無法繼續(xù)生存,生命期相對較短。每一個實例只用于一個單個的線程

      ENTITY BEANS: 提供了一致性數(shù)據(jù)的表示-- 通常存放在數(shù)據(jù)庫中 -- 在服務(wù)器故障發(fā)生后能繼續(xù)存在。多用戶情況下可以使用EJB來表示相同的數(shù)據(jù)。ENTITY EJB的一個典型例子是客戶的帳號信息。

      盡管有以上的區(qū)別,所有的EJB還是有許多的共同之處:

      它們都處理HOME INTERFACE。它定義了一個客戶端是如何創(chuàng)建與消亡EJB的。

      可以在BEAN中對定義了客戶端方法的遠程接口進行調(diào)用;

      BEAN類則執(zhí)行了主要的商務(wù)邏輯描述

      EJB的開發(fā)已經(jīng)超出了本文的范圍。但是,如果一個EJB已經(jīng)被開發(fā)了或者從第三方進行了購買,它就必須在應(yīng)用服務(wù)器中進行發(fā)布。WEBLOGIC SERVER 5.1帶有一個EJB DEPLOYER TOOL來協(xié)助處理EJB的發(fā)布。當你使用EJB DEPLOYER TOOL的時候,你要定義客戶端所用的JNDI名字來定位EJB。DEPLOYER TOOL將生成WRAPPER類來處理和容器的通信以及在一個JAR文件中把被請求的JAVA類綁定在一起。一旦EJB被發(fā)布,客戶端就可以使用它的JNDI名字來定位EJB。

      首先,它必須得到一個到HOME接口的REFERENCE。

      然后,客戶端可以使用該接口,調(diào)用一個 CREATE() 方法來得到服務(wù)器上運行的某個BEAN實例的句柄;

      最后,客戶端可以使用該句柄在BEAN中調(diào)用方法。

      了解 EJB后,讓我們再來看JSP。

      六、JAVA SERVER PAGES (JSPS)

      我們中間可能已經(jīng)有許多人已經(jīng)熟悉MICROSOFT的ACTIVE SERVER PAGES (ASP)技術(shù)了。JSP和ASP相對應(yīng)的,但更具有平臺對立性。他們被設(shè)計用以幫助WEB內(nèi)容開發(fā)人員創(chuàng)建動態(tài)網(wǎng)頁,并且只需要相對較少的代碼。即使WEB設(shè)計師不懂得如何編程也可以使用JSP,因為JSP應(yīng)用是很方便的。JSP頁面由HTML代碼和嵌入其中的JAVA代碼所組成。服務(wù)器在頁面被客戶端所請求以后對這些JAVA代碼進行處理,然后將生成的HTML頁面返回給客戶端的瀏覽器。

      下面我們來看一個JSP的簡單實例。它只顯示了服務(wù)器的當前日期和時間。雖然,對語法的具體解釋已經(jīng)超出了本文的范圍,但我們還是可以很直觀地看到,JAVA代碼被放在的中間,而JAVA的表達式則放在之間。

      您可能有時候聽說過JHTML。這是JSP以前的一種較老的標準。WEBLOGIC服務(wù)器既可支持JSP,又可支持JHTML。

      請注意,在缺省狀況下,JSP在WEBLOGIC服務(wù)器中并沒有處于有效狀態(tài)。要使之有效,你可以編輯WEBLOGIC.PROPERTIES文件。如果WEB服務(wù)器還沒有處于有效狀態(tài),則要先使之有效。SERVLET的情況和JSP是一樣的。

      七、JAVA SERVLETS

      SERVLET提供的功能大多與JSP類似,不過實現(xiàn)的方式不同。JSP通常是大多數(shù)HTML代碼中嵌入少量的JAVA代碼,而SERVLETS全部由JAVA寫成并且生成HTML。

      SERVLET是一種小型的JAVA程序,它擴展了WEB服務(wù)器的功能。作為一種服務(wù)器端的應(yīng)用,當被請求時開始執(zhí)行,這和CGI PERL腳本很相似。SERVLETS和CGI腳本的一個很大的區(qū)別是:每一個CGI在開始的時候都要求開始一個新的進程 -- 而SERVLETS是在SERVLET引擎中以分離的線程來運行的。因此SERVLETS在可伸縮性上提供了很好的改進。在開發(fā)SERVLETS的時候,您常常需要擴展JAVA X.SERVLET.HTTP.HTTPSERVLET 類,并且OVERRIDE一些它的方法,其中包括:

      SERVICE(): 作為DISPATCHER來實現(xiàn)命令-定義方法

      DOGET(): 處理客戶端的HTTP GET請求。

      DOPOST(): 進行HTTP POST操作

      其它的方法還包括處理不同類型的HTTP請求 -- 可以參考HTTPSERVLET API文檔。

      以上描述的是標準J2EE SERVLET API的各種方法。WEBLOGIC服務(wù)器提供了一個該API完整的實現(xiàn)途徑。一旦你開發(fā)了一個SERVLET,你就可以在 WEBLOGIC.PROPERTIES 中加以注冊并由此可以在WEBLOGIC服務(wù)器中對它進行配置。通過JAVA SERVLETS,我們已經(jīng)到達了J2EE主要技術(shù)的末尾了。但J2EE所提供的并不止于這些。

      下面的段落中我們將簡要地看一下現(xiàn)存的一些技術(shù),包括RMI, JAVA IDL和CORBA, JTA, 以及XML,等等。

      八、REMOTE METHOD INVOCATION (RMI)

      正如其名字所表示的那樣,RMI協(xié)議是在遠程對象上調(diào)用一些方法。它使用了連續(xù)序列方式在客戶端和服務(wù)器端傳遞數(shù)據(jù)。RMI是一種被EJB使用的更下層的協(xié)議。

      九、JAVA IDL/CORBA

      在JAVA IDL的支持下,開發(fā)人員可以將JAVA和CORBA集成在一起。 他們可以創(chuàng)建JAVA對象并使之可在CORBA ORB中展開, 或者他們還可以創(chuàng)建JAVA類并作為和其它ORB一起展開的CORBA對象的客戶。后一種方法提供了另外一種途徑,通過它JAVA可以被用于將你的新的應(yīng) 用和LEGACY系統(tǒng)相集成。

      十、JAVA TRANSACTION ARCHITECTURE (JTA)/JAVA TRANSACTION SERVICE (JTS)

      JTA定義了一種標準的API,應(yīng)用系統(tǒng)由此可以存取各種事務(wù)監(jiān)控。

      JTS是CORBA OTS事務(wù)監(jiān)控的基本實現(xiàn)。JTS規(guī)定了事務(wù)管理器的實現(xiàn)方式。該事務(wù)管理器是在高層支持JAVA TRANSACTION API (JTA)規(guī)范,并且在較底層實現(xiàn)OMG OTS SPECIFICATION的JAVA映像。JTS事務(wù)管理器為應(yīng)用服務(wù)器、資源管理器、獨立的應(yīng)用以及通信資源管理器提供了事務(wù)服務(wù)。

      十一、JAVA MAIL AND JAVA BEANS ACTIVATION FRAMEWORK

      JAVA MAIL是用于存取郵件服務(wù)器的API,它提供了一套郵件服務(wù)器的抽象類。不僅支持SMTP服務(wù)器,也支持IMAP服務(wù)器JAVA MAIL利用JAVA BEANS ACTIVATION FRAMEWORK (JAF)來處理MIME-編碼的郵件附件。MIME的字節(jié)流可以被轉(zhuǎn)換成JAVA對象,或者轉(zhuǎn)換自JAVA對象。由此大多數(shù)應(yīng)用都可以不需要直接使用JAF。

      十二、JAVA MESSAGING SERVICE (JMS)

      JMS是用于和面向消息的中間件相互通信的應(yīng)用程序接口(API)。它既支持點對點的域,又支持發(fā)布/訂閱(PUBLISH/SUBSCRIBE)類型的域,并且提供對下列類型的支持:經(jīng)認可的消息傳遞、事務(wù)型消息的傳遞、一致性消息和具有持久性的訂閱者支持。JMS還提供了另一種方式來對您的應(yīng)用與LEGACY BACKEND系統(tǒng)相集成。

      十三、EXTENSIBLE MARKUP LANGUAGE (XML)

      XML是一種可以用來定義其它標記語言的語言。它被用來在不同的商務(wù)過程中共享數(shù)據(jù)。XML的發(fā)展和JAVA是相互獨立的,但是,它和JAVA具有的相同目標正是平臺的獨立性。通過將JAVA和XML的組合,您可以得到一個完美的具有平臺的獨立性的解決方案。目前正有許多不同的公司在為JAVA和XML的組合而努力。如果要了解更多的這方面的信息,可以訪問SUN的JAVA-XML頁面,或者IBM DEVELOPERWORKS的XML ZONE。

    【J2EE的13種核心技術(shù)】相關(guān)文章:

    J2EE核心技術(shù)03-09

    什么是J2EE03-16

    j2ee介紹03-20

    J2EE的概念03-19

    電腦速記的核心技術(shù)是什么01-13

    J2EE發(fā)展狀況03-19

    J2EE的基本術(shù)語03-16

    J2EE基礎(chǔ)概念03-30

    J2EE發(fā)展背景03-19