精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

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

開發(fā) 后端
J2EE是一套全然不同于傳統(tǒng)應(yīng)用開發(fā)的技術(shù)架構(gòu),包含許多組件,主要可簡(jiǎn)化且規(guī)范應(yīng)用系統(tǒng)的開發(fā)與部署,進(jìn)而提高可移植性、安全與再用價(jià)值。本文介紹了J2EE中的13中核心技術(shù),一起來了解一下吧!

為了聯(lián)系實(shí)際,GOULD基于WEBLOGIC應(yīng)用服務(wù)器(來自BEA SYSTEMS公司的一種廣為應(yīng)用的產(chǎn)品)環(huán)境來介紹J2EE的這些技術(shù)。JAVA最初是在瀏覽器和客戶端機(jī)器中粉墨登場(chǎng)的。當(dāng)時(shí),很多人質(zhì)疑它是否適合做服務(wù)器端的開發(fā)。現(xiàn)在,隨著對(duì)JAVA2平臺(tái)企業(yè)版(J2EE)第三方支持的增多,JAVA被廣泛接納為開發(fā)企業(yè)級(jí)服務(wù)器端解決方案的首選平臺(tái)之一。   

J2EE平臺(tái)由一整套服務(wù)(SERVICES)、應(yīng)用程序接口(APIS)和協(xié)議構(gòu)成,它對(duì)開發(fā)基于WEB的多層應(yīng)用提供了功能支持。在本文中我將解釋支撐J2EE的13種核心技術(shù):JDBC, JNDI, EJBS, RMI, JSP, JAVA SERVLETS, XML, JMS, JAVA IDL, JTS, JTA, JAVA MAIL 和 JAF,同時(shí)還將描述在何時(shí)、何處需要使用這些技術(shù)。當(dāng)然,我還要介紹這些不同的技術(shù)之間是如何交互的。此外,為了讓您更好地感受J2EE的真實(shí)應(yīng)用,我將在WEBLOGIC應(yīng)用服務(wù)器(來自BEA SYSTEMS公司的一種廣為應(yīng)用的產(chǎn)品)環(huán)境下來介紹這些技術(shù)。不論對(duì)于WEBLOGIC應(yīng)用服務(wù)器和J2EE的新手,還是那些想了解J2EE能帶來什么好處的項(xiàng)目管理者和系統(tǒng)分析員,相信本文一定很有參考價(jià)值。   

J2EE

 

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

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

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

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

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

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

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

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

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

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

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

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

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

三、JAVA DATABASE CONNECTIVITY (JDBC)   

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

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

類型 1: JDBC-ODBC BRIDGE   

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

類型 2: JDBC-NATIVE DRIVER BRIDGE   

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

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

類型 3: JDBC-NETWORK BRIDGE   

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

類型 4: PURE JAVA DRIVER   

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

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

以下讓我們看一個(gè)實(shí)例。   

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

  1. IMPORT JAVA.SQL.*;     
  2. PUBLIC CLASS JDBCEXAMPLE{     
  3. PUBLIC STATIC VOID MAIN( STRING ARGS[] ){     
  4. TRY{     
  5. CLASS.FORNAME("COM.CLOUDSCAPE.CORE.JDBCDRIVER");   
  6. CONNECTION CONN = DRIVERMANAGER.GETCONNECTION("JDBC:CLOUDSCAPE:PHONEBOOK");     
  7. STATEMENT STMT = CONN.CREATESTATEMENT();     
  8. STRING SQL = "SELECT NAME, PHONE FROM CONTACT_TABLE ORDER BY NAME";     
  9. RESULTSET RESULTSET = STMT.EXECUTEQUERY( SQL );   STRING NAME;     
  10. STRING PHONE;     
  11. WHILE ( RESULTSET.NEXT() ){     
  12. NAME = RESULTSET.GETSTRING(1).TRIM();     
  13. PHONE = RESULTSET.GETSTRING(2).TRIM();    
  14. SYSTEM.OUT.PRINTLN( NAME + ", " + PHONE );     
  15. }     
  16. }CATCH ( EXCEPTION E ){     
  17. // HANDLE EXCEPTION HERE     
  18. E.PRINTSTACKTRACE();     
  19. }     
  20. }     
  21. }    

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

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

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

四、JAVA NAMING AND DIRECTORY INTERFACE (JNDI)   

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

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

  1. CONTEXT CTX = NEW INITIALCONTEXT();    

 

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

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

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

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

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

將一個(gè)對(duì)象插入或綁定到CONTEXT。這在你展開一個(gè)EJB的時(shí)候是很有效的。   

從CONTEXT中移去對(duì)象。   

列出CONTEXT中的所有對(duì)象。   

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

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

五、ENTERPRISE JAVA BEANS (EJB)   

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

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

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

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

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

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

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

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

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

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

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

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

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

了解 EJB后,讓我們?cè)賮砜碕SP。   

六、JAVA SERVER PAGES (JSPS)   

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

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

  1. <html>    
  2. <head>     
  3. <title>Sample JSP Page</title>     
  4. </head>     
  5. <body>     
  6. <h1>Date JSP sample</h1>     
  7. <% response.setHeader("Refresh", 5); %>     
  8. The current date is <%= new Date() %>.     
  9. </body>     
  10. </html>    

 

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

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

七、JAVA SERVLETS   

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

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

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

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

DOPOST(): 進(jìn)行HTTP POST操作   

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

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

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

八、REMOTE METHOD INVOCATION (RMI)   

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

九、JAVA IDL/CORBA   

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

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

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

JTS是CORBA OTS事務(wù)監(jiān)控的基本實(shí)現(xiàn)。JTS規(guī)定了事務(wù)管理器的實(shí)現(xiàn)方式。該事務(wù)管理器是在高層支持JAVA TRANSACTION API (JTA)規(guī)范,并且在較底層實(shí)現(xiàn)OMG OTS SPECIFICATION的JAVA映像。JTS事務(wù)管理器為應(yīng)用服務(wù)器、資源管理器、獨(dú)立的應(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對(duì)象,或者轉(zhuǎn)換自JAVA對(duì)象。由此大多數(shù)應(yīng)用都可以不需要直接使用JAF。   

十二、JAVA MESSAGING SERVICE (JMS)   

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

十三、EXTENSIBLE MARKUP LANGUAGE (XML)

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

J2EE 帶動(dòng)了Java在企業(yè)級(jí)的發(fā)展,但隨著一些輕量級(jí)組件的出現(xiàn),J2EE的臃腫和開發(fā)難度高的缺點(diǎn)越來越引起了許多人的注意,EJB2.0也被許多人稱為累贅。隨著Spring,Hibernate的不斷完善和發(fā)展,EJB3.0出現(xiàn)了,成為了未來Java 企業(yè)級(jí)開發(fā)的新的方向。

【編輯推薦】

  1. Java前輩:學(xué)習(xí)J2EE流程中的經(jīng)驗(yàn)和教訓(xùn)
  2. J2EE SQL Server中文亂碼問題的方法
  3. J2EE學(xué)習(xí)中一些值得研究的開源項(xiàng)目
  4. J2EE技術(shù)在電子商務(wù)中的應(yīng)用研究
  5. 基于J2EE方式進(jìn)行軟交換系統(tǒng)配置
責(zé)任編輯:于鐵 來源: 百度
相關(guān)推薦

2009-06-22 17:32:25

J2EE平臺(tái)

2009-06-19 16:38:45

JDBC簡(jiǎn)介J2EE

2011-07-21 16:09:36

J2EE

2009-06-10 13:19:21

J2EE核心APIJ2EE核心組件

2009-06-18 16:13:14

J2EE開發(fā)

2009-06-10 14:10:23

J2EE學(xué)習(xí)J2EE是什么

2009-06-10 13:37:06

J2EE可伸縮性J2EE靈活性J2EE維護(hù)

2009-06-23 08:06:46

J2EE體系架構(gòu)J2EE模型J2EE設(shè)計(jì)模式

2009-06-23 16:48:26

J2EE常見問題J2EE平臺(tái)

2009-06-11 17:06:11

J2EE歷史Java EE概述

2009-06-22 17:05:41

Java EEJava企業(yè)應(yīng)用

2009-06-11 17:11:07

J2EE設(shè)計(jì)模式工廠模式

2009-06-10 13:30:32

J2EE四層模型客戶層Web層

2009-06-18 15:54:57

J2EE下使用JNDI

2009-06-22 17:34:40

J2EE架構(gòu)

2009-06-23 08:12:48

J2EE調(diào)用存儲(chǔ)過程

2009-06-22 16:21:02

J2EE線程

2011-11-25 14:59:36

JavaJ2EE框架

2009-06-22 17:09:00

J2EE項(xiàng)目開發(fā)流程

2019-01-08 16:26:43

Java EEJ2EEJakarta EE
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

日本亚洲自拍| 久久综合伊人77777尤物| 国产欧美高清在线| 超碰免费97在线观看| 精品一区二区三区久久| 午夜免费日韩视频| 午夜国产福利视频| 国产精品对白| 在线播放亚洲一区| 午夜精品久久久久久久无码| 98在线视频| 成人精品免费网站| 国产精品日日摸夜夜添夜夜av| 免费三片在线播放| 欧美日韩伦理在线免费| 精品人伦一区二区色婷婷| 欧美精品成人网| 成人性生交大片免费看网站| 国产精品区一区二区三区| 国产精品久久国产三级国电话系列| 中文字幕精品视频在线观看| 国产伊人精品| xvideos亚洲人网站| 久久精品老司机| 成人免费在线电影网| 欧美日韩国产一级二级| 37pao成人国产永久免费视频| 成人短视频在线观看| 国产欧美日韩卡一| 久精品国产欧美| 亚洲精品国产精| 国产一区激情在线| 国产精品手机播放| 天堂网中文字幕| 99精品国产一区二区青青牛奶| 精品国产欧美一区二区五十路| 少妇久久久久久久久久| 久久夜色电影| 亚洲精品在线免费观看视频| 亚洲热在线视频| www.久久99| 欧美区在线观看| xxx国产在线观看| 欧美影视资讯| 色丁香久综合在线久综合在线观看| 亚洲理论电影在线观看| √天堂8在线网| 亚洲色图制服诱惑| 综合色婷婷一区二区亚洲欧美国产| 国产小视频免费在线观看| bt欧美亚洲午夜电影天堂| 国产v亚洲v天堂无码| 亚洲av永久纯肉无码精品动漫| 精品一区二区三区免费观看| 国产美女久久久| 中文字幕人妻一区二区在线视频| 水野朝阳av一区二区三区| 国产91精品在线播放| 中文字幕一区二区三区四区欧美| 天使萌一区二区三区免费观看| 欧洲中文字幕国产精品| 亚洲欧美一二三区| 蜜臂av日日欢夜夜爽一区| 国产一区二区色| 国产精品乱码久久久| 国产精品伊人色| 国产aⅴ精品一区二区三区黄| 成人免费视频国产| 91免费视频网址| 日本精品一区二区三区高清 久久| 全色精品综合影院| 欧美极品另类videosde| 最新av在线免费观看| av大片在线| 无码av免费一区二区三区试看 | 狠狠色狠色综合曰曰| 国产成人a亚洲精v品无码| 吉吉日韩欧美| 欧美精品视频www在线观看| 色欲无码人妻久久精品| 久久精品亚洲成在人线av网址| 亚洲免费av电影| 欧美a级片免费看| 精品电影一区| 国产成人久久久精品一区| 一级黄在线观看| 成人激情免费网站| 日本精品二区| 污污网站在线观看| 日韩欧美中文字幕在线观看 | 国产精品亚洲综合一区在线观看| 成人av蜜桃| 免费人成在线观看网站| 一区二区中文视频| 欧美不卡在线播放| 国内精品伊人| 亚洲国内高清视频| 黄色裸体一级片| 亚洲黄色av| 国产精品狼人色视频一区| 精品人妻一区二区三区换脸明星 | 美女91在线看| 欧美日韩你懂的| 亚洲精品在线视频免费观看| 日韩精品看片| 91sa在线看| 99热这里是精品| 国产校园另类小说区| 狠狠干视频网站| 亚洲不卡系列| 欧美刺激脚交jootjob| 夜夜春很很躁夜夜躁| 亚洲大胆视频| 亚洲精品欧美极品| 成年在线观看免费人视频| 亚洲国产精品一区二区久久| 日韩一区二区三区久久| 天堂资源在线亚洲| 欧美激情久久久| 国产精品视频一区二区三区,| 91女人视频在线观看| 国内少妇毛片视频| 国产精品99久久免费| 亚洲人成在线观| 日韩欧美一区二区一幕| 国产精品亚洲一区二区三区妖精| 视频一区国产精品| 中文日产幕无线码一区二区| 精品播放一区二区| 午夜国产福利一区二区| 奇米影视在线99精品| 欧美日韩亚洲免费| 丝袜老师在线| 日韩成人在线播放| 九热这里只有精品| 豆国产96在线|亚洲| 好吊色视频988gao在线观看| 久久精品黄色| 中文字幕亚洲一区二区三区五十路 | 国产成人精品在线| 黄色在线播放| 色哟哟欧美精品| 37p粉嫩大胆色噜噜噜| 一本色道久久综合亚洲精品高清| 成人永久免费| 国产精品—色呦呦| 精品福利在线导航| 精品无码av在线| 成人h版在线观看| 精品视频在线观看一区| 2023国产精华国产精品| 欧美精品福利视频| 内射后入在线观看一区| 亚洲成人免费视| 六十路息与子猛烈交尾| 美女精品在线观看| 日本免费一区二区三区| 91在线成人| 深夜福利91大全| 91中文字幕在线播放| 亚洲男人天堂一区| 东京热av一区| 久久aⅴ国产紧身牛仔裤| 日本在线观看不卡| 婷婷精品久久久久久久久久不卡| 日韩视频免费观看| 国产自产一区二区| 色欲综合视频天天天| 国产又粗又黄又猛| 国内精品伊人久久久久影院对白| 日本女人高潮视频| 精品av导航| 国产成人中文字幕| 精品国产99久久久久久| 精品国产成人系列| 国产免费一区二区三区四区五区| 欧美国产精品中文字幕| 91免费视频污| 宅男噜噜噜66国产日韩在线观看| 欧美一区国产一区| 国产精品日韩精品在线播放 | 天天操天天射天天爽| 2023国产精品自拍| 日本人69视频| 亚洲久久视频| 一区不卡视频| 人体久久天天| 国产拍精品一二三| 嗯啊主人调教在线播放视频 | 午夜精品视频在线观看一区二区 | 日本成人在线一区| www插插插无码免费视频网站| 亚洲激情77| 亚洲free嫩bbb| 国产精品迅雷| 欧美成人在线影院| 成人在线二区| 欧美精品一区二区三区久久久 | 日韩免费成人网| 亚洲婷婷综合网| 一区二区三区美女| 黄色av免费播放| 不卡在线视频中文字幕| 依人在线免费视频| 麻豆成人精品| 免费看欧美黑人毛片| 欧美午夜精彩| 精选一区二区三区四区五区| 成人自拍视频| 国产精品久久一区| 欧美大片高清| 国外色69视频在线观看| 成人影院在线看| 一区二区亚洲精品国产| 五月婷婷六月丁香综合| 91精品国产91热久久久做人人 | 成人免费观看在线观看| 久久香蕉频线观| 国产九九在线| 日韩精品免费看| 亚洲成人一级片| 欧美疯狂做受xxxx富婆| 亚洲av无码乱码国产精品fc2| 亚洲成人久久影院| 久久久国产成人| 亚洲欧美偷拍另类a∨色屁股| 欧美人与性囗牲恔配| 99久久777色| 亚洲av成人片无码| 丰满放荡岳乱妇91ww| 在线观看视频你懂得| 久久99国内精品| 国产视频1区2区3区| 日韩精品色哟哟| 国产a视频免费观看| 国产精品试看| 国产二区视频在线播放| av成人国产| 777精品久无码人妻蜜桃| 亚洲私人影院| 分分操这里只有精品| 亚洲一级高清| 国产男女免费视频| 亚洲国产高清视频| 久久国产精品网| 亚洲国产午夜| 欧洲黄色一级视频| 久久精品亚洲一区二区| 99久久激情视频| 日本视频中文字幕一区二区三区| 男人女人黄一级| 免费观看一级特黄欧美大片| 婷婷六月天在线| 激情小说亚洲一区| 黄色片子免费看| 丰满亚洲少妇av| 国产激情视频网站| 久久久不卡网国产精品二区| 日本一区二区视频在线播放| 中文av一区二区| 国产一区二区三区在线视频观看| 亚洲另类在线一区| 日韩久久精品视频| 一本一本久久a久久精品综合麻豆| 成人免费视频国产免费| 欧美三级视频在线观看| 国产又爽又黄又嫩又猛又粗| 日韩视频免费观看高清完整版在线观看| 亚洲av无码一区二区乱子伦| 亚洲成在人线av| 国产在线超碰| 欧美成人精品一区| 男女羞羞在线观看| 国产精品视频一| 最新精品在线| 欧美主播一区二区三区美女 久久精品人| 精品国产精品| 国产成人永久免费视频| 久久精品网址| 中文字幕日韩久久| 91麻豆国产自产在线观看| 日韩福利在线视频| 亚洲最新视频在线观看| 成人a v视频| 日韩欧美一区二区久久婷婷| av女名字大全列表| 久久精品国产亚洲一区二区| 阿v视频在线| 国产欧美在线观看| 国产亚洲精品美女久久| 亚洲欧洲日韩综合二区| 亚洲青色在线| 中文字幕在线综合| 99r国产精品| 日韩一区二区不卡视频| 欧美日韩中文字幕在线| 国产女人高潮时对白| 日韩精品久久久久久福利| 九义人在线观看完整免费版电视剧| 久久久久国产精品www| 欧美成人家庭影院| 久久国产精品一区二区三区| 99久久综合| avav在线看| 成人免费高清视频| 色欲一区二区三区精品a片| 黑人精品xxx一区一二区| 国产日产亚洲系列最新| 国产一区二区三区丝袜| av电影免费在线看| 69堂成人精品视频免费| 奇米影视亚洲| 成年人观看网站| 丁香桃色午夜亚洲一区二区三区| 免费黄色国产视频| 欧美最新大片在线看| 天天摸天天干天天操| 欧美另类高清videos| 国产一区二区三区四区五区3d| 久久人人九九| 一本色道久久综合亚洲精品高清| 九九九久久久久久久| 国产精品传媒在线| 又污又黄的网站| 亚洲一区二区久久久| 久久久男人天堂| 国产精品免费视频一区二区| 亚洲色图插插| 图片区乱熟图片区亚洲| 国产精品美女久久久久久久久久久 | 艳妇乳肉亭妇荡乳av| 亚洲成在人线免费| 高清乱码毛片入口| 国模极品一区二区三区| 51亚洲精品| 草b视频在线观看| 成人免费福利片| 日产精品久久久久| 亚洲国产精品va在线观看黑人| 任你弄在线视频免费观看| 99高清视频有精品视频| 欧美黄色一区| 亚洲一区和二区| 午夜影视日本亚洲欧洲精品| 黄色一级a毛片| 亚州成人av在线| 久久男人av| 日韩手机在线观看视频| 国产欧美日产一区| 在线视频1卡二卡三卡| 色偷偷av一区二区三区| 图片一区二区| 欧美高清中文字幕| www.亚洲在线| 天干夜夜爽爽日日日日| 一区二区三区黄色| 日韩成人综合网站| av影院在线播放| 99久久国产综合精品麻豆| 一区二区三区视频免费看| 国产视频丨精品|在线观看| 国产日韩另类视频一区| 亚洲欧美日韩精品在线| 国产一区三区三区| 日韩精品一区二区在线播放| 精品国产91乱码一区二区三区| 国产伦理精品| 三区精品视频| 国产精品中文字幕日韩精品| 日韩精品手机在线| 国产一区二区美女视频| 精品午夜av| 国产精品后入内射日本在线观看| 国产欧美一区在线| av片免费播放| 秋霞av国产精品一区| 日韩电影在线视频| 男人网站在线观看| 欧美四级电影网| 先锋影音在线资源站91| 免费国产在线精品一区二区三区| 日韩福利视频网| 久久国产精品波多野结衣| 亚洲欧美国产日韩中文字幕| 日韩伦理一区二区| 国产原创popny丨九色| 国产精品狼人久久影院观看方式| www久久久久久| 国产精品高潮呻吟久久av野狼 | 国产91免费看| 国产精品久久久亚洲| 最新成人av网站| 亚洲精品久久久久久国| 日韩成人av在线| 精品国产麻豆| 99草草国产熟女视频在线| 亚洲伊人色欲综合网| 幼a在线观看| 久久99导航| 岛国av在线一区|