目錄
- 前言
- 一、Java EE平臺說明
- 二、Java EE平臺容器及組件
- 1.平臺容器
- 2.平臺組件
- 三、JavaEE平臺API服務
- 1.API服務概覽
- 2.平臺API
- 總結
前言
📜 本系列教程適用于Java Web初學者、愛好者,小白白。我們的天賦并不高,可貴在努力,堅持不放棄。堅信量最終引發質變,厚積薄發。
🚀 文中白話居多,盡量以小白視角呈現,幫助大家快速入門。
🎅 我是 蝸牛老師,之前網名是 Ongoing蝸牛,人如其名,干啥都慢,所以更新也慢。希望大家多多支持,讓我動力十足!
本文主要是介紹了 Java EE 平臺到底有哪些內容:有容器、組件及眾多 API。API 也就是應用程序接口(英語:Application Programming Interface,簡稱:API),又稱為應用編程接口,就是軟件系統不同組成部分銜接的約定。這些 API 可以幫助我們實現特定功能。在介紹了各種 API 后,我們可以知道 Java EE 中 API 眾多,但是在入門學習階段只有三個就夠了。
一、Java EE平臺說明
我們先來看一下 Java EE 7 平臺架構圖,大家可以從圖中看出什么嗎?
從圖中可以看出,整個平臺分為兩大塊:客戶端系統和 Java EE 服務。客戶端系統有瀏覽器和應用客戶端容器,Java EE 服務有 Web 容器和 EJB 容器。整個流程是通過 EJB 容器與數據庫通信,也就是操作數據庫進行增刪改查數據。EJB 容器可以與 Web 容器協作,EJB 將業務處理的結果通過 Web 容器展示在瀏覽器中。而且 EJB 容器也可以直接與應用客戶端容器協作展示界面。
在容器中有應用組件及眾多的 API 服務,藍色是 Java EE 7 中新增的 API 服務。而這些 API 服務和組件都是以 Java SE 為基礎的。
所以,Java EE 平臺是由一系列容器、應用組件和 API 服務組成的。
二、Java EE平臺容器及組件
1.平臺容器
下圖顯示了 Java EE 容器之間的關系,我們一起來看一下。
Java EE 平臺容器是一種軟件容器,它提供了一種在虛擬機中運行應用程序的方式。Java EE 平臺容器的主要作用是將 Web 組件、企業 Bean 或應用程序客戶端裝配至 Java EE 模塊中,并部署至其容器中。根據組件構成,將 JavaEE 項目開發中的容器分為以下幾類:Applet 容器、(ApplicationClient)應用客戶端容器、Web 容器、EJB 容器 。
Applet 容器: 也就是小程序容器,管理 Applet 的執行。這個小程序并不是我們現在的微信、支付寶小程序。Java Applet(Java 小程序)是指從 Web 層接收的網頁可以包含嵌入式小程序。 用 Java 編程語言編寫,小程序是一個小客戶端安裝在瀏覽器。但是,客戶端系統可能需要 Java 插件以及可能的安全策略文件,以便小程序成功在 Web 瀏覽器中執行。
常見的 Java Applet 應用包括嵌入 Flash、音頻、視頻、動畫等多媒體元素,同時也可用于游戲、表單驗證、圖像處理等。在剛開始有網頁的那個年代,大家學習 Java 的主要目的就是編寫 Applet 程序,許多網站都使用 Java Applet 來實現動態效果、圖形呈現、在線游戲等功能,例如知名的在線游戲“俄羅斯方塊”正是基于 Java Applet 實現的。Flash 逐漸崛起,并取代了 Java Applet 成為 Web 瀏覽器中多媒體和動態效果的主要應用技術。同時,HTML5 和 CSS3 等 Web 技術的不斷發展和完善,為 Web 開發人員提供了更豐富、更靈活的工具和技術方案,包括 canvas、SVG、WebGL 等,這些技術可以取代 Java Applet,實現更先進的圖形和動畫呈現效果。
所以目前,已經沒有人再使用 Java Applet,大家知道有就行了。
應用客戶端容器: 管理應用程序客戶端組件的執行。應用程序客戶端在用戶的機器上運行,并提供一種處理需要比標記語言更豐富的界面的任務的方法。它通常具有由 Swing API 或 AWT API 創建的圖形用戶界面(GUI),但也可以使用命令行界面。大家不要忘記,Java 是可以開發桌面應用程序的。
應用程序客戶端直接訪問在業務層運行的企業 Bean。然而,如果應用程序需求允許,應用程序客戶端可以打開 HTTP 連接,與運行在 Web 層的 Servlet 建立通信。用 Java 以外的語言編寫的應用程序客戶機可以與 Java EE 服務器交互,從而使 Java EE 平臺能夠與遺留系統、客戶端和非 Java 語言進行互操作。
這個容器大家能懂則懂,理解不了,暫時也沒啥關系。
Web 容器: 管理網頁、Servlet 和一些的執行用于 Java EE 應用程序的 EJB 組件。Web 組件及其 容器在 Java EE 服務器上運行。Web 容器是給處于其中的應用程序組件(JSP、Servlet)提供一個環境,使得 JSP,Servlet 能直接和容器中的環境變量、接口交互而不必關注其他系統問題。主要是由 Web 服務器來實現,例如 Tomcat、WebLogic 和 Websphere 等。該容器提供的接口嚴格遵守 J2EE 規范中的 Web Application 標準 。
Web 容器是重點,我們需要將 Web 項目部署至 Web 容器中,這樣才能進行訪問。
EJB 容器: 管理 Java EE 企業 Bean 的執行應用。企業 Bean 及其容器在 Java EE 上運行服務器。
這個 EJB 容器,了解即可。
上述4個容器中我們要重點關注 Web 容器。
2.平臺組件
Java EE 應用程序由組件組成。Java EE 組件是一個自包含的功能軟件單元,它與相關的類和文件一起組裝到 Java EE 應用程序中,并與其他組件通信。
Java EE 規范定義了以下 Java EE 組件:
- 應用程序客戶端和 Applet 是在客戶機上運行的組件。
- Java Servlet、JavaServer Faces 和 JavaServer Pages (JSP) 技術組件是運行在服務器端的 Web 組件。
- EJB 組件(企業 Bean)是運行在服務器上的業務組件。
Java EE 組件也是用 Java 編程語言編寫的,并以與該語言中的任何程序相同的方式進行編譯。Java EE 組件和“標準” Java 類之間的區別在于,Java EE 組件被組裝到 Java EE 應用程序中,它們被驗證為結構良好且符合 Java EE 規范,并且它們被部署到生產環境中,在生產環境中由 Java EE 服務器運行和管理。
這里我們關注 Java Servlet 和 JSP 組件。
三、JavaEE平臺API服務
1.API服務概覽
在 Web 容器、EJB 容器和應用程序客戶端容器中有眾多 API 服務。這些 API 服務可以幫助我們解決更加實際的一些問題。
(1)Web容器中 Java EE API
(2)EJB 容器中 Java EE API
(3)應用程序客戶端容器中的 Java EE API
2.平臺API
(1) Enterprise JavaBeans(了解即可)
Enterprise JavaBeans (EJB) 組件或企業 Bean 是一個代碼體,它具有實現業務邏輯模塊的字段和方法。您可以將企業 Bean 視為一個構建塊,它可以單獨使用,也可以與其他企業 Bean 一起使用,在 Java EE 服務器上執行業務邏輯。
企業 Bean 要么是會話 Bean,要么是消息驅動的 Bean。
- 會話 Bean表示與客戶端的短暫對話。當客戶端完成執行時,會話 Bean 及其數據將消失。
- 消息驅動 Bean 結合了會話 Bean 和消息偵聽器的特性,允許業務組件異步接收消息。通常,這些消息是 Java 消息服務(JMS)消息。
Java EE 8 平臺需要 Enterprise JavaBeans 3.2 和 Interceptors 1.2。攔截器規范是 EJB 規范的一部分。
(2) Java Servlet(非常重要)
Java Servlet 技術允許定義特定于 Http 的 Servlet 類。Servlet 類擴展了服務器的功能,這些服務器承載通過 請求-響應 編程模型訪問的應用程序。雖然 Servlet 可以響應任何類型的請求,但它們通常用于擴展由 Web 服務器托管的應用程序。
在 Java EE 8 平臺中,新的 Java Servlet 技術特性包括:
- 服務器推送
- HTTP Trailer
Java EE 8 平臺需要 Servlet 4.0。
(3) JavaServer Faces(了解即可)
JavaServer Faces 技術是一個用于構建 Web 應用程序的用戶界面框架。JavaServer Faces 技術的主要組成部分如下:
- GUI 組件框架。
- 用于以不同類型的 HTML 或不同標記語言和技術呈現組件的靈活模型。對象生成標記以呈現組件,并將存儲在模型對象中的數據轉換為可以在視圖中表示的類型。渲染器
- 生成 HTML 4.01 標記的標準。
Java EE 8 平臺需要 JavaServer Faces 2.3 和 Expression Language 3.0。
(4) JavaServer Pages(基本使用)
JavaServer Pages (JSP) 技術允許您將 Servlet 代碼片段直接放入基于文本的文檔中。JSP 頁面是基于文本的文檔,包含兩種類型的文本:
- 靜態數據,可以用任何基于文本的格式表示,例如 HTML 或 XML
- JSP 元素,它決定了頁面如何構造動態內容
Java EE 8 平臺要求 JavaServer Pages 2.3 與早期版本兼容,但建議在新應用程序中使用 Facelets 作為顯示技術。
(5) JavaServer Pages Standard Tag Library(按需使用)
JavaServer Pages 標準標記庫(JSTL)封裝了許多 JSP 應用程序通用的核心功能。不用在 JSP 應用程序中混合使用來自眾多供應商的標記,而是使用單一的標準標記集。這種標準化允許您在任何支持 JSTL 的 JSP 容器上部署應用程序,并使標記的實現更有可能得到優化。
JSTL 具有用于處理流控制的迭代器和條件標記、用于操作 XML 文檔的標記、國際化標記、用于使用 SQL 訪問數據庫的標記以及用于常用函數的標記。
Java EE 8 平臺需要 JSTL 1.2。
(6) Java Persistence API(了解即可)
Java Persistence API (JPA) 是一種基于 Java 標準的持久性解決方案。持久性使用對象/關系映射方法來彌合面向對象模型和關系數據庫之間的差距。Java Persistence API 還可以在 Java EE 環境之外的 Java SE 應用程序中使用。Java 持久化包括以下幾個方面:
- Java 持久性 API
- 查詢語言
- 對象/關系映射元數據
Java EE 8 平臺需要 Java Persistence API 2.2。
(7) Java Transaction API(了解即可)
Java 事務 API (JTA) 為劃分事務提供了一個標準接口。Java EE 體系結構提供了默認的自動提交來處理事務提交和回滾。自動提交意味著任何其他正在查看數據的應用程序將在每次數據庫讀寫操作之后看到更新的數據。但是,如果應用程序執行兩個相互依賴的獨立數據庫訪問操作,您將希望使用 JTA API 來界定整個事務(包括這兩個操作)開始、回滾和提交的位置。
Java EE 8 平臺需要 Java Transaction API 1.2。
(8) Bean Validation(了解即可)
Bean 驗證規范定義了用于驗證 JavaBeans 組件中的數據的元數據模型和 API。可以在一個地方定義驗證約束,并在不同的層之間共享它們,而不是在多個層(如瀏覽器和服務器端)上分布數據驗證。
在 Java EE 8 平臺中,新的 Bean 驗證特性包括以下內容:
- 支持 Java SE 8 中的新特性,例如 Date-Time API
- 增加了新的內置 Bean 驗證約束
Java EE 8 平臺需要 Bean Validation 2.0。
(9) JavaMail(了解即可)
Java EE 應用程序使用 JavaMail API 發送電子郵件通知。JavaMail API 有兩個部分:
- 應用程序組件用于發送郵件的應用程序級接口
- 服務提供者接口
Java EE 平臺包括帶有服務提供者的 JavaMail API,該服務提供者允許應用程序組件發送 Internet 郵件。
Java EE 8 平臺需要 JavaMail 1.6。
(10) WebSocket 的 Java API(目前了解)
WebSocket 是一種應用協議,它通過 TCP 在兩個對等體之間提供全雙工通信。用于 WebSocket 的 Java API 使 Java EE 應用程序能夠使用注釋創建端點,這些注釋指定端點的配置參數并指定其生命周期回調方法。
Java EE 8 平臺需要 WebSocket 1.1 的 Java API。
(11) Java數據庫連接API(基本使用)
Java 數據庫連接 (JDBC) API 允許您從Java編程語言方法調用 SQL 命令。當您使用會話 Bean 訪問數據庫時,您可以在企業 Bean 中使用 JDBC API。還可以使用來自 Servlet 或 JSP 頁面的 JDBC API 直接訪問數據庫,而無需通過企業 Bean。
JDBC API 有兩個部分:
- 應用程序組件用來訪問數據庫的應用程序級接口
- 將 JDBC 驅動程序附加到 Java EE 平臺的服務提供程序接口
Java EE 8 平臺需要 JDBC 4.1。
(12) Java Naming and Directory Interface API(了解即可)
Java 命名和目錄接口(JNDI) API 提供了命名和目錄功能,使應用程序能夠訪問多個命名和目錄服務,如 LDAP、DNS 和 NIS。JNDI API 為應用程序提供了執行標準目錄操作的方法,例如將屬性與對象關聯以及使用其屬性搜索對象。使用 JNDI, Java EE 應用程序可以存儲和檢索任何類型的命名 Java 對象,從而允許 Java EE 應用程序與許多遺留應用程序和系統共存。
平臺有眾多 API,這里只介紹了部分,大家有個基本印象就可以了。在入門階段需要掌握的 API 是Servlet、JDBC、JSP。
總結
Java EE 平臺是由一系列容器、應用組件和API服務組成的。
Java EE 平臺有 Applet 容器、(ApplicationClient)應用客戶端容器、Web 容器、EJB 容器。
JavaEE 平臺組件有:
- 應用程序客戶機和 applet 是在客戶機上運行的組件。
- Java Servlet、JavaServer Faces 和 JavaServer Pages (JSP) 技術組件是運行在服務器端的 Web 組件。
- EJB 組件(企業 Bean)是運行在服務器上的業務組件。
Java EE 平臺有眾多 API,這里我們要重點學習和掌握 Servlet、JDBC、JSP 即可。