分享J2EE的13種核心技術(shù)
Java最初是在瀏覽器和客戶端機(jī)器中粉墨登場的。當(dāng)時,很多人質(zhì)疑它是否適合做服務(wù)器端的開發(fā)。現(xiàn)在,隨著對Java2平臺企業(yè)版(J2EE)第三方支持的增多,Java被廣泛接納為開發(fā)企業(yè)級服務(wù)器端解決方案的首選平臺之一。
在本文中我將解釋支撐J2EE的13種核心技術(shù):JDBC, JNDI, EJBs, RMI, JSP, Java servlets, XML, JMS, Java IDL, JTS, JTA, JavaMail 和 JAF。
J2EE平臺由一整套服務(wù)(Services)、應(yīng)用程序接口(APIs)和協(xié)議構(gòu)成,它對開發(fā)基于Web的多層應(yīng)用提供了功能支持。
一、JDBC(Java Database Connectivity)
JDBC API為訪問不同的數(shù)據(jù)庫提供了一種統(tǒng)一的途徑,象ODBC一樣,JDBC對開發(fā)者屏蔽了一些細(xì)節(jié)問題,另外,JDBC對數(shù)據(jù)庫的訪問也具有平臺無關(guān)性。
二、JNDI(Java Name and Directory Interface)
JNDI API被用于執(zhí)行名字和目錄服務(wù)。它提供了一致的模型來存取和操作企業(yè)級的資源如DNS和LDAP,本地文件系統(tǒng),或應(yīng)用服務(wù)器中的對象。
三、EJB(Enterprise JavaBean)
J2EE技術(shù)之所以贏得媒體廣泛重視的原因之一就是EJB。它們提供了一個框架來開發(fā)和實(shí)施分布式商務(wù)邏輯,由此很顯著地簡化了具有可伸縮性和高度復(fù)雜的企業(yè)級應(yīng)用的開發(fā)。EJB規(guī)范定義了EJB組件在何時如何與它們的容器進(jìn)行交互作用。容器負(fù)責(zé)提供公用的服務(wù),例如目錄服務(wù)、事務(wù)管理、安全性、資源緩沖池以及容錯性。但這里值得注意的是,EJB并不是實(shí)現(xiàn)J2EE的唯一途徑。正是由于J2EE的開放性,使得有的廠商能夠以一種和EJB平行的方式來達(dá)到同樣的目的。
四、RMI(Remote Method Invoke)
調(diào)用遠(yuǎn)程對象上的方法。它使用了序列化方式在客戶端和服務(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)用和舊的系統(tǒng)相集成。
六、JSP(Java Server Pages)
JSP頁面由HTML代碼和嵌入其中的Java代碼所組成。服務(wù)器在頁面被客戶端所請求以后對這些Java代碼進(jìn)行處理,然后將生成的HTML頁面返回給客戶端的瀏覽器。
七、Java Servlet
Servlet是一種小型的Java程序,它擴(kuò)展了Web服務(wù)器的功能。作為一種服務(wù)器端的應(yīng)用,當(dāng)被請求時開始執(zhí)行,這和CGI Perl腳本很相似。Servlet提供的功能大多與JSP類似,不過實(shí)現(xiàn)的方式不同。JSP通常是大多數(shù)HTML代碼中嵌入少量的Java代碼,而servlets全部由Java寫成并且生成HTML。
八、XML(Extensible Markup Language)
XML是一種可以用來定義其它標(biāo)記語言的語言。它被用來在不同的商務(wù)過程中共享數(shù)據(jù)。
XML的發(fā)展和Java是相互獨(dú)立的,但是,它和Java具有的相同目標(biāo)正是平臺獨(dú)立性。通過將Java和XML的組合,您可以得到一個完美的具有平臺獨(dú)立性的解決方案。
九、JMS(Java Message Service)
JMS是用于和面向消息的中間件相互通信的應(yīng)用程序接口(API)。它既支持點(diǎn)對點(diǎn)的域,又支持發(fā)布/訂閱(publish/subscribe)類型的域,并且提供對下列類型的支持:經(jīng)認(rèn)可的消息傳遞,事務(wù)型消息的傳遞,一致性消息和具有持久性的訂閱者支持。JMS還提供了另一種方式來對您的應(yīng)用與舊的后臺系統(tǒng)相集成。
十、JTA(Java Transaction Architecture)
JTA定義了一種標(biāo)準(zhǔn)的API,應(yīng)用系統(tǒng)由此可以訪問各種事務(wù)監(jiān)控。
十一、JTS(Java Transaction Service)
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ù)。
十二、JavaMail
JavaMail是用于存取郵件服務(wù)器的API,它提供了一套郵件服務(wù)器的抽象類。不僅支持SMTP服務(wù)器,也支持IMAP服務(wù)器。
十三、JAF(JavaBeans Activation Framework)
JavaMail利用JAF來處理MIME編碼的郵件附件。MIME的字節(jié)流可以被轉(zhuǎn)換成Java對象,或者轉(zhuǎn)換自Java對象。大多數(shù)應(yīng)用都可以不需要直接使用JAF。
接著我們來看一看JDBC是如何在企業(yè)應(yīng)用中的進(jìn)行使用。
JDBC在企業(yè)級應(yīng)用中的應(yīng)用
以上實(shí)例其實(shí)是很基本的,可能有些微不足道。它假定了一個2層結(jié)構(gòu)。在一個多層的企業(yè)級應(yīng)用中,更大的可能是在客戶端和一個EJB進(jìn)行通信,該EJB將建立數(shù)據(jù)庫連接。為了實(shí)現(xiàn)和改進(jì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 文件中進(jìn)行定義。(可參考 weblogic.properties 文件中的例子,WebLogic服務(wù)器的文檔中還有更詳細(xì)的參考信息)
在企業(yè)級應(yīng)用的另一個常見的數(shù)據(jù)庫特性是事務(wù)處理。事務(wù)是一組申明statement,它們必須做為同一個statement來處理以保證數(shù)據(jù)完整性。缺省情況下JDBC使用 auto-commit 事務(wù)模式。這可以通過使用Connection類的 setAutoCommit() 方法來實(shí)現(xiàn)。
現(xiàn)在我們已經(jīng)對JDBC有了一些認(rèn)識,下面該轉(zhuǎn)向JNDI了。
Java Naming and Directory Interface (JNDI)
JNDI API被用于執(zhí)行名字和目錄服務(wù)。它提供了一致的模型來存取和操作企業(yè)
- J2EE驗(yàn)證碼圖片如何生成和點(diǎn)擊刷新驗(yàn)證碼
- JDK、J2EE、J2SE、J2ME四個易混淆概念區(qū)分
- 圖解Eclipse j2ee開發(fā)環(huán)境的搭建過程
- 經(jīng)常聽朋友說什么J2EE,終于知道點(diǎn)什么是J2EE了,汗一個
- MyEclipse5.0M1注冊碼+eclipse3.2[J2EE]
- J2EE 開發(fā)購物網(wǎng)站 經(jīng)驗(yàn)篇 - 建表
- 實(shí)戰(zhàn) J2EE 開發(fā)購物網(wǎng)站 - 創(chuàng)建數(shù)據(jù)庫
- J2ee 高并發(fā)情況下監(jiān)聽器實(shí)例詳解
相關(guān)文章
Java基礎(chǔ)教程之理解Annotation詳細(xì)介紹
這篇文章主要介紹了Java基礎(chǔ)教程之理解Annotation詳細(xì)介紹的相關(guān)資料,需要的朋友可以參考下2017-01-01Java手動實(shí)現(xiàn)Redis的LRU緩存機(jī)制
在Java中LRU的實(shí)現(xiàn)方式是使用HashMap結(jié)合雙向鏈表,HashMap的值是雙向鏈表的節(jié)點(diǎn),雙向鏈表的節(jié)點(diǎn)也保存一份key value。2021-05-05SpringBoot項目鑒權(quán)的4種方式小結(jié)
本文主要介紹了SpringBoot項目鑒權(quán)的4種方式小結(jié),包括傳統(tǒng)AOP、攔截器、參數(shù)解析器和過濾器,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-12-12Java swing讀取txt文件實(shí)現(xiàn)學(xué)生考試系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了Java swing讀取txt文件實(shí)現(xiàn)學(xué)生考試系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2020-06-06淺析Java中Apache BeanUtils和Spring BeanUtils的用法
這篇文章主要介紹了Java中Apache BeanUtils和Spring BeanUtils的用法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-11-11Java?深入學(xué)習(xí)static關(guān)鍵字和靜態(tài)屬性及方法
這篇文章主要介紹了Java?深入學(xué)習(xí)static關(guān)鍵字和靜態(tài)屬性及方法,文章通過圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下2022-09-09SpringBoot+aop實(shí)現(xiàn)主從數(shù)據(jù)庫的讀寫分離操作
讀寫分離的作用是為了緩解寫庫,也就是主庫的壓力,但一定要基于數(shù)據(jù)一致性的原則,就是保證主從庫之間的數(shù)據(jù)一定要一致,這篇文章給大家介紹SpringBoot+aop實(shí)現(xiàn)主從數(shù)據(jù)庫的讀寫分離操作,感興趣的朋友跟隨小編一起看看吧2024-03-03