- Java EE框架開發技術與案例教程
- 張繼軍 董衛
- 3167字
- 2020-05-28 14:20:28
1.1 Java EE簡介
Java EE是由J2EE更名而來的。Sun公司(已被甲骨文公司收購)在1998年發布JDK1.2版本的時候,開始使用Java 2 Platform,即Java 2平臺,修改后的JDK稱為Java 2 Platform Software Developing Kit,即J2SDK,并分為標準版(Standard Edition, J2SE)、企業版(Enterprise Edition, J2EE)和微型版(Micro Edition, J2ME)。2006年5月,Sun公司推出Java SE5,此時,Java的各種版本依次更名為Java EE、Java SE和Java ME。
隨著Java技術的發展,Java EE得到了迅速發展,如今,Java EE不僅僅是指一種標準平臺,更表達了一種軟件架構和設計思想。目前的版本已經發展為Java EE 7。本教材基于Java EE 7介紹其相關的設計思想、開發方法及開發技術。
本節將簡單介紹Java EE平臺,主要內容包括:Java EE應用分層架構、分層模式及Java EE的結構等有關知識。
1.1.1 Java EE組件與應用模型
Java EE 7提供了一套完整、全面、集成的組件幫助用戶構建企業和Web應用程序。圖1-1給出了各組件之間的關系,各組件的功能與特點將在1.1.2節進行詳細說明。

圖1-1 Java EE 7框架組件
Java EE利用這些組件給出了“應用程序的模型框架”,該框架把服務實現為多層應用,從而提供企業級應用開發的可擴展性、可訪問性和管理性。一般分為:Domain Object(領域對象)層、DAO(Data Access Object,數據訪問對象)層、業務邏輯層、控制層和表現層。
1)Domain Object層:領域對象組件抽象了系統的對象模型。該層由“領域對象組件”構成,即由系列的POJO(Plain Old Java Object,即普通的Java對象)組成,往往包含了各自所需要的邏輯方法。
2)DAO層:此層由系列的DAO組件組成,這些DAO實現了對數據庫的查詢、更新、刪除和創建(CRUD)等原子操作。
3)業務邏輯層:此層由系列的業務邏輯對象組成,這些業務邏輯對象實現了系統所需要的業務邏輯方法。
4)控制層:此層由系列控制器組成,這些控制器用于攔截用戶請求,并調用業務邏輯組件的業務邏輯方法,處理用戶請求,并根據處理結果轉發到不同的表現層組件。
5)表現層:該層主要負責收集用戶請求,并顯示處理結果。最常用的技術是JSP技術和JSF技術。
各層之間的關系如圖1-2所示,各層的Java EE組件以松耦合的方式耦合在一起,這種方式方便了應用程序的擴展性,逆著箭頭的方向,前面的組件依賴于后面的組件的功能;順著箭頭的方向,前面的組件支持后面的組件實現。

圖1-2 Java EE應用模型結構框架
1.1.2 Java EE API及主要技術
Java EE以“容器”的形式提供服務,不同的容器由不同的組件構成,主要的服務器和容器有:Java EE服務器、EJB容器、Web容器、應用客戶端容器和Applet容器。
1)Java EE服務器:這是Java EE產品的運行時部分。Java EE服務器提供了EJB容器和Web容器。
2)EJB容器:管理Java EE應用中的企業Bean的執行。企業Bean及其容器在Java EE服務器上運行。
3)Web容器:管理Java EE應用中Web頁面、Servlet和一些EJB組件的執行。Web組件及其容器在Java EE服務器上運行。
4)應用客戶端容器:管理應用客戶端組件的運行。
5)Applet容器:管理Applet的執行。Applet容器包括一個Web瀏覽器和一個Java插件,都在客戶端上運行。
圖1-3給出了Java EE中各容器之間的關系,以及每個容器中可用的Java EE 7的API。其中圖1-3a表示容器之間的關系,圖1-3b顯示應用客戶端容器中可用的API;圖1-3c顯示Web容器中可用的API;圖1-3d顯示EJB容器中可用的API。

圖1-3 Java EE中各容器之間的關系及可用的API
a) 各容器之間的關系b) 應用客戶端容器中可用的API c) Web容器中可用的API d) EJB容器中可用的API
從圖1-3可以看出,Java EE 7涉及的技術有:JDBC、JNDI、EJB、RMI、JSP、Servlet、XML、JMS、Java IDL、JTS、JTA、JavaMail和JAF等,下面對其中的主要技術給出簡單的介紹。
1.JDBC技術
JDBC(Java Database Connectivity)提供連接各種關系數據庫的統一接口,可以為多種關系數據庫提供統一訪問,它由一組用Java語言編寫的類和接口組成。JDBC為數據庫開發人員提供了一個標準的API。具體應用將在第2章給出應用案例。
2.JNDI技術
JNDI(Java Name and Directory Interface, Java命名和目錄接口)被用于執行名稱和目錄服務。它提供了一致的模型來存取和操作企業級的資源,如DNS、LDAP、本地文件和目錄服務。
在JNDI中,其目錄結構中的每一個結點都稱為context。每一個JNDI名稱都是相對于context的。對于一個應用,可通過使用InitialContext類來得到其context。
3.EJB技術
EJB(Enterprise JavaBeans)使得開發者可以方便地創建、部署和管理跨平臺的基于組件的企業應用。它提供了一個框架來開發和實施分布式商務邏輯,顯著地簡化了具有可伸縮性和高度復雜的企業級應用開發。EJB規范定義了EJB組件在何時如何與它們的容器進行交互作用。容器負責提供公用的服務,如目錄服務、事務管理、安全性、資源緩沖池及容錯性。
4.Java RMI技術
Java RMI(Java Remote Method Invocation,遠程方法調用)定義了調用遠程對象方法的標準接口。它通過使用序列化方式在客戶端和服務器端傳遞數據。遠程方法調用可以發生在對等的兩端,也可以發生在客戶端和服務器之間,只要雙方的應用程序都是用Java編寫的。
5.JSP技術
JSP(Java Server Pages)用以創建動態網頁,且只需要相對較少的代碼。JSP頁面由HTML代碼和嵌入其中的Java代碼所組成。服務器在頁面被客戶端所請求后對這些Java代碼進行處理,然后將生成的HTML頁面返回給客戶端的瀏覽器。
6.Java Servlet技術
Servlet提供的功能與JSP類似,不過實現方式不同。JSP通常是在HTML代碼中嵌入少量的Java代碼,而Servlet全部由Java編寫并且生成HTML。
7.XML技術
XML(Extensible Markup Language)是一種可用來定義其他標記語言的語言,它被用來在不同的商務過程中共享數據。XML的發展和Java是相互獨立的,但它和Java具有相同目標,即平臺獨立性。通過將Java和XML相組合,可得到一個完美的具有平臺獨立性的解決方案。
8.JMS技術
JMS(Java Messaging Service)是用于和面向消息的中間件相互通信的應用程序接口(API)。它既支持點對點的域,又支持發布/訂閱(publish/subscribe)類型的域,且提供對下列類型的支持:經認可的消息傳遞、事務型消息的傳遞、一致性消息和具有持久性的訂閱者支持。
9.Java IDL技術與CORBA技術
在Java IDL的支持下,開發人員可以將Java和CORBA集成在一起。它們可創建Java對象并使之可在CORBA ORB中展開,或可創建Java類并作為和其他ORB一起展開的CORBA對象的客戶。后一種方法提供了另外一種途徑,通過它Java可以被用于將新的應用和legacy系統相集成。
10.JTA技術和JTS技術
JTA(Java Transaction Architecture)定義了一種標準的API,應用系統由此可存取各種事務監控。
JTS(Java Transaction Service)是CORBA OTS事務監控的基本的實現,JTS規定了事務管理器的實現方式。該事務管理器是在高層支持Java Transaction API(JTA)規范,且在較低層實現OMG OTS specification的Java映像。JTS事務管理器為應用服務器、資源管理器、獨立的應用及通信資源管理器提供了事務服務。
11.JavaMail技術和JAF技術
JavaMail是用于存取郵件服務器的API,它提供了一套郵件服務器的抽象類。不僅支持SMTP服務器,也支持IMAP服務器。
JavaMail利用JavaBeans Activation Framework(JAF)來處理MIME編碼的郵件附件。MIME的字節流可被轉換成Java對象。由此大多數應用都可不需要直接使用JAF。
12.JMAPI技術
JMAPI(Java Management API)為異構網絡上系統、網絡和服務管理的開發提供一整套豐富的對象和方法。
13.JMF技術
JMF(Java Media Framework API)可以幫助開發者把音頻、視頻和其他一些基于時間的媒體放到Java應用程序或Applet小程序中去,為多媒體開發者提供了捕捉、回放和編解碼等工具,是一個彈性的、跨平臺的多媒體解決方案。
14.Annotation技術
Annotation提供一種機制,將程序的元素,如類、方法、屬性、參數、本地變量、包和元數據聯系起來。這樣編譯器可以將元數據存儲在Class文件中。這樣虛擬機和其他對象可以根據這些元數據來決定如何使用這些程序元素或改變它們的行為。
15.JavaBeans技術
JavaBeans是一個開放的標準的組件體系結構,它獨立于平臺,但使用Java語言。一個JavaBean是一個滿足JavaBeans規范的Java類,通常定義了一個現實世界的事物或概念。一個JavaBean的主要特征包括屬性、方法和事件。
16.JavaFX技術
JavaFX Script編程語言(簡稱JavaFX)是Sun微系統公司開發的一種declarative、staticallytyped(聲明性的、靜態類型)腳本語言。
17.JMX技術
JMX(Java Management Extensions, Java管理擴展)是一個為應用程序、設備及系統等植入管理功能的框架。JMX可以跨越一系列異構操作系統平臺、系統體系結構和網絡傳輸協議,靈活地開發無縫集成的系統、網絡和服務管理應用。
18.JPA技術
JPA(Java Persistence API)通過JDK 5.0注解或XML描述對象-關系表的映射關系,并將運行期的實體對象持久化到數據庫中。
本書利用這些技術,并整合其他通用框架,給出應用程序的開發與設計過程。基于Java EE開發應用程序,首先要搭建開發環境,然后利用其所提供的技術實現應用程序所要求的功能。在下一節將介紹如何搭建Java EE開發環境。
- GraphQL學習指南
- Python網絡爬蟲從入門到實踐(第2版)
- VSTO開發入門教程
- Scratch 3.0少兒編程與邏輯思維訓練
- PostgreSQL 11從入門到精通(視頻教學版)
- Visual C++數字圖像處理技術詳解
- Instant PHP Web Scraping
- Programming with CodeIgniterMVC
- Java Fundamentals
- Windows Embedded CE 6.0程序設計實戰
- 從零開始學Python網絡爬蟲
- 運維前線:一線運維專家的運維方法、技巧與實踐
- Unity Character Animation with Mecanim
- Building Dynamics CRM 2015 Dashboards with Power BI
- Getting Started with Polymer