JavaEE簡(jiǎn)介_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
在我們深入J2EE之前,先看一下綜述:
多層式應(yīng)用(Multitier Application)——多層式應(yīng)用(或者多層式架構(gòu))分成多個(gè)邏輯部分,大多在多層服務(wù)器上實(shí)現(xiàn)。例如,三層應(yīng)用模型:用戶和瀏覽器,應(yīng)用服務(wù)器,數(shù)據(jù)庫(kù)服務(wù)器。其中應(yīng)用服務(wù)器和數(shù)據(jù)庫(kù)服務(wù)器就是分別在不同的服務(wù)器上來處理應(yīng)用的請(qǐng)求。
多層式服務(wù)(Multitier Service)——以三層架構(gòu)模型的服務(wù)為例,應(yīng)用服務(wù)器響應(yīng)用戶的請(qǐng)求。數(shù)據(jù)庫(kù)服務(wù)器響應(yīng)應(yīng)用服務(wù)器的查詢求情。
Java Bean——由一些包含私有屬性的Java類組成,對(duì)外提供get和set方法。從技術(shù)上講,這些類必須保證有一個(gè)不含參數(shù)的構(gòu)造器并且實(shí)現(xiàn)Serializable接口。
J2EE 5的概念

Java EE應(yīng)用程序模型——這個(gè)模型描述了一個(gè)實(shí)現(xiàn)服務(wù)的多層架構(gòu)?!笆裁词欠?wù)”沒有明確的界限。事實(shí)上,服務(wù)只是一個(gè)邏輯上的概念,它的對(duì)應(yīng)實(shí)體取決于應(yīng)用實(shí)現(xiàn)的概念。例如,客戶端/服務(wù)器模型就是一種服務(wù)。
Java EE 服務(wù)——這是一個(gè)J2EE中三層架構(gòu)的應(yīng)用服務(wù)范例。它是由網(wǎng)頁(yè)層(服務(wù)JSP頁(yè)面)和事務(wù)層(管理企業(yè)的數(shù)據(jù)層)組成的。
Java EE 組件——“組件”是指獨(dú)立的軟件單元,可以和其他的組件組合來建立一個(gè)應(yīng)用。
- Web組件(Web Component)——web端生成的頁(yè)面或者對(duì)用戶請(qǐng)求的返回。代表性的有: Java Servlets, JavaServer Faces 和 Java Server Pages.
- 小程序(Applet)——一個(gè)小型的Java應(yīng)用程序可以作為響應(yīng)的一部分返回給用戶,用戶可以在他們的瀏覽器上運(yùn)行此程序。這種小型的程序是Javascript的競(jìng)爭(zhēng)對(duì)手。
- 客戶端程序(Application Client)——例如,一個(gè)用Java寫的桌面應(yīng)用程序。
- EJB(Enterprise Java Beans)——見下文。
Java EE 客戶端——這個(gè)概念中包含三個(gè)其他的概念:
- 網(wǎng)頁(yè)客戶端(Web Client)或小型客戶端(thin client)——以前(也不是非常久以前),客戶端的請(qǐng)求返回的網(wǎng)頁(yè)會(huì)包含腳本代碼,這些代碼會(huì)在應(yīng)用服務(wù)器上執(zhí)行了再將運(yùn)行結(jié)果返回給客戶端。這就是EE客戶端。比如,用戶可以查詢員工的信息,并且對(duì)不同的結(jié)果按照他們喜歡的方式排列?,F(xiàn)在,大多數(shù)開發(fā)者都不是在網(wǎng)頁(yè)中使用腳本了,因?yàn)檫@不是個(gè)好習(xí)慣。他們更喜歡使用MVC設(shè)計(jì)原則,即禁止在網(wǎng)頁(yè)中使用腳本。
- 小程序(Applet)
- 應(yīng)用客戶端(Application Client)
Java EE 服務(wù)器通信(Java EE Server Communication)——這是指發(fā)生在小型客戶端和應(yīng)用客戶端之間在服務(wù)器上的通信。具有代表性的是,小型客戶端和小程序在Web層通信,但是應(yīng)用客戶端在EJB通信。 你覺得這不夠清晰是嗎?你覺得這很麻煩是嗎?這就對(duì)了!這就是REST以及MVC設(shè)計(jì)原理現(xiàn)在在開發(fā)中流行的緣故。
EJB (企業(yè)級(jí)Java Beans,Enterprise Java Beans)——這是一個(gè)邏輯概念,與傳統(tǒng)的Java Beans無關(guān)。它主要試圖從多重應(yīng)用的后端(也就是服務(wù)器端)來壓縮事務(wù)邏輯。其中一個(gè)它試圖解決的問題是確保數(shù)據(jù)庫(kù)中事務(wù)處理的完整性。警告:EJB有多個(gè)版本,并且3.0版本已經(jīng)從早期的版本分離出來。
JavaBean Component——Java Bean 的同義詞,主要用在JSP范例中。
Java EE容器(Java EE Container)——這是部署組裝Java EE組件的地方(也就是應(yīng)用程序服務(wù)器)。它定義了Web容器(包含servlets和JSP),還定義了EJB容器(包含的企業(yè)級(jí)Java Bean)以及應(yīng)用客戶端容器(運(yùn)行獨(dú)立的應(yīng)用程序)和在瀏覽器上運(yùn)行的小程序容器。
部署描述符(Deployment Descriptor )——這是一個(gè)為打包好的應(yīng)用提供部署信息的XML文件。
SOAP(簡(jiǎn)單對(duì)象訪問協(xié)議,Simple Object Access Protocol)——這是一個(gè)通過網(wǎng)絡(luò)提供的服務(wù)傳輸信息的協(xié)議。信息是通過XML構(gòu)建的,能夠通過多個(gè)傳輸交換層,多數(shù)情況下是HTTP。SOAP是JSON和REST-like服務(wù)的競(jìng)爭(zhēng)對(duì)手。
WSLD(網(wǎng)絡(luò)服務(wù)描述語(yǔ)言,Web Service Description Language)——它用XML文件來描述了網(wǎng)絡(luò)服務(wù)(名字,地點(diǎn),通信模式)。
UDDI(通用描述、發(fā)現(xiàn)與集成服務(wù),Universal Description, Discovery and Integration)——一種ebXML規(guī)范,可以在線發(fā)布有關(guān)產(chǎn)品和服務(wù)的信息。
Java Servlet——是用Java寫的一個(gè)服務(wù)器端小程序,可以處理用戶的HTTP請(qǐng)求,返回結(jié)果。
JSP (JavaServer Page)——一種基于HTML文件(就是一個(gè)模板)處理之后能夠生成靜態(tài)內(nèi)容。可以包含腳本代碼的片段,以在最終生成的腳本靜態(tài)文件中生成。
JSTL (JSP標(biāo)準(zhǔn)標(biāo)簽庫(kù),JavaServer Page Standard Tag Library) ——一組可以模仿腳本代碼功能的用在JSP的標(biāo)準(zhǔn)標(biāo)簽。例如,遍歷客戶端并顯示他們對(duì)應(yīng)的信息?,F(xiàn)在,在JSP中,這樣的標(biāo)簽已經(jīng)已經(jīng)取代了腳本代碼。一般用于生成需要填充信息的頁(yè)面。
JSF (Java Server Face) ——包含JSF標(biāo)簽(類似于LSTL標(biāo)簽)的JSP頁(yè)面。此外,JSF允許在頁(yè)面中定義導(dǎo)航模塊(類似于Spring web flow),包括Facelets。
Facelets——Facelets是JSF的MVC視圖部分。它的主要功能是利用提供的數(shù)據(jù)(例如客戶端列表)將模板轉(zhuǎn)換成HTML文件。它也可以將生成的文件(例如HTML主體)提取出來一部分并到另一個(gè)模板中,相當(dāng)于Sitemesh。
The Java API for XML-based Web Services (Java中用來創(chuàng)建基于XML的Web的API,JAX-WS) ——對(duì)于使用XML通信的Web服務(wù)來說至關(guān)重要。
The Java API for XML Binding (序列化為XML的API,JAXB) ——一種可以在JavaBeans和XML文件之間相互轉(zhuǎn)化的方式。
JTA (Java事務(wù)處理API,Java Transaction API) ——?jiǎng)澢鍞?shù)據(jù)庫(kù)中上行和下行的通信界限。
JMS(Java信息服務(wù),Java Message Service) ——這個(gè)API保證服務(wù)器和應(yīng)用在網(wǎng)絡(luò)上的通信可靠、異步。ActiveMQ實(shí)現(xiàn)了JMS。
JavaMail API——提供通過應(yīng)用程序發(fā)送郵件方式。
JAXP(加工XML文件的API,Java API for XML Processing)——提供了處理XML文件的方式。
JAXR(提供XML注冊(cè)的API,Java API for XML Registries) ——一個(gè)可以注冊(cè)包含了元數(shù)據(jù)的XML的API。
JDBC(Java數(shù)據(jù)庫(kù)連接,Java Database Connectivity) ——這個(gè)API可以使應(yīng)用程序直接通過SQL通信來訪問數(shù)據(jù)庫(kù)。
JCA(J2EE連接器架構(gòu),Java EE Connector Architecture) ——使應(yīng)用程序能和信息系統(tǒng)(通常是數(shù)據(jù)庫(kù))通信。
JPA(Java持久化API,Java Persistence API) ——這是一個(gè)在數(shù)據(jù)庫(kù)中存儲(chǔ)對(duì)象的ORM(對(duì)象關(guān)系表,Object/relational mapping)定義。
JNDI(Java命名和目錄接口) ——一種能存儲(chǔ)和檢索資源或者通過名字查找信息的方式。
JAAS(Java鑒別與授權(quán)服務(wù),Java Authentication and Authorization Service) ——識(shí)別并控制服務(wù)權(quán)限的一張方式。
J2EE 6的概念
在J2EE6中,大量的配置可以在源代碼中執(zhí)行。
JAX-RS ——定義REST(含狀態(tài)傳輸)之類的服務(wù)的API。
Managed Beans ——一個(gè)可以執(zhí)行嵌入代碼的Java對(duì)象。在Sping框架中,這是一些添加了@Autowired注釋的對(duì)象。
CDI(上下文和依賴注入,Contexts and Dependency Injection for Java EE) ——CDI是Java EE整個(gè)下一代類型安全的依賴注入的事實(shí)上的API。在Sping框架中,應(yīng)用程序可以設(shè)計(jì)應(yīng)用的上下文,控制反轉(zhuǎn)(IoC)和依賴注入功能(DI)。
Bean確認(rèn)——通過設(shè)定好的規(guī)則判斷Java Beans的狀態(tài)是有效的。
JACC(Java Authorization Contract for Containers) ——在J2EE應(yīng)用服務(wù)器和特定的授權(quán)認(rèn)證服務(wù)器之間定義的一個(gè)連接的協(xié)約。
JASPIC(Java認(rèn)證服務(wù)提供者接口,Java Authentication Service Provider Interface) ——這是與JACC互補(bǔ)認(rèn)證的SPI(也就是服務(wù)API,Service API)。它定義了應(yīng)用程序如何通過傳統(tǒng)的認(rèn)證服務(wù)。
總體上說,J2EE和Spring框架慢慢的朝著一個(gè)相同的方向發(fā)展。
相關(guān)文章
Mybatis實(shí)現(xiàn)ResultMap結(jié)果集
本文主要介紹了Mybatis實(shí)現(xiàn)ResultMap結(jié)果集,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-04-04
java中Hashtable和HashMap的區(qū)別分析
java中Hashtable和HashMap的區(qū)別分析,需要的朋友可以參考一下2013-04-04
解決redisTemplate向redis中插入String類型數(shù)據(jù)時(shí)出現(xiàn)亂碼問題
這篇文章主要介紹了解決redisTemplate向redis中插入String類型數(shù)據(jù)時(shí)出現(xiàn)亂碼問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-12-12
Java基礎(chǔ)之內(nèi)部類與代理知識(shí)總結(jié)
今天帶大家復(fù)習(xí)Java的基礎(chǔ)知識(shí),文中有非常詳細(xì)的介紹及圖文示例,對(duì)正在學(xué)習(xí)Java的小伙伴們很有幫助,需要的朋友可以參考下2021-06-06
idea中g(shù)it如何刪除commit提交的log信息
這篇文章主要介紹了idea中g(shù)it如何刪除commit提交的log信息問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-07-07
教你利用SpringBoot寫一個(gè)屬于自己的Starter
如果我們將可獨(dú)立于業(yè)務(wù)代碼之外的功配置模塊封裝成一個(gè)個(gè)starter,復(fù)用的時(shí)候只需要將其在pom中引用依賴即可,SpringBoot為我們完成自動(dòng)裝配,簡(jiǎn)直不要太爽,這篇文章主要給大家介紹了關(guān)于如何利用SpringBoot寫一個(gè)屬于自己的Starter,需要的朋友可以參考下2022-03-03
詳解Java如何在CompletableFuture中實(shí)現(xiàn)日志記錄
這篇文章主要為大家詳細(xì)介紹了一種slf4j自帶的MDC類,來記錄完整的請(qǐng)求日志,和在CompletableFuture異步線程中如何保留鏈路id,需要的可以參考一下2023-04-04

