- 搞定J2EE核心技術與企業應用
- 常建功 王向華編著
- 207字
- 2018-12-29 13:49:34
第一部分
第1章 Java Web開發思想
隨著IT技術的發展和企業對信息化需求的日益增加,在軟件開發技術方面逐漸分為了兩個陣營:Java和.NET。因為Java在安全性、跨平臺性及分層次的架構方面有著不可比擬的優勢,所以特別適合大型企業級應用的開發,JavaEE就是Java平臺中專門為企業應用制訂的標準框架。本章將從JavaEE的發展講起,在讀者了解了JavaEE的運行模式后,再逐個講解JavaEE的核心技術,然后通過對MVC模式的講解,使讀者認識到MVC是如何實現JavaEE框架的,最后講解Java Web開發所需的常用技術。
1.1 JavaEE簡介
Java平臺有3個版本,這使得軟件開發人員、服務提供商和設備生產商可以針對特定的市場進行軟件開發。這3個版本分別是JavaSE(Java Platform,Standard Edition)、JavaEE(Java Platform,Enterprise Edition)和JavaME(Java Platform,Micro Edition)。
JavaSE以前稱為J2SE,適用于桌面系統開發,它包含了支持Java Web服務開發的類,并為JavaEE提供基礎。JavaEE以前稱為J2EE,適用于企業級應用開發,它是在JavaSE的基礎上構建的,它提供Web服務、組件模型、管理和通信API,可以用來實現企業級的SOA(面向服務體系結構)和Web 2.0應用程序。JavaME以前稱為J2ME,適用于小型設備和智能卡開發,基于JavaME規范的應用程序只需編寫一次,就可以用于許多設備,而且可以利用每個設備的本機功能。本書主要講解JavaEE。
1.1.1 JavaEE的發展
網絡從根本上改變了人類的生活,也改變了對企業軟件的需求,每天企業都有成千上萬的請求需要處理,這些請求和處理具有如下特點:
● 大部分來自網絡。
● 需要支持并發請求。
● 需要提供事務支持。
● 需要在多個系統之間進行交互。
● 需要提供集群功能。
● 需要提供分布式功能。
● 需要安全性支持。
● 需要持久化數據處理功能。
然而傳統的Client/Server(客戶機/服務器)結構已經不能完全適應新的要求,正是基于這個背景,Sun公司推出了JavaEE,試圖通過構建一個新的架構來滿足互聯網對性能、安全性、易用性、可用性、可擴充性和分布式的需求。
JavaEE通過提供如下的技術來滿足上述需求。
● Servlet/JSP:提供了對網絡請求進行處理的功能。
● JTA/JTS:提供了事務服務和分布式事務管理功能。
● JMS/JDBC/WebSerivce/Mail/RMI/EJB:提供了交互支持,不同系統之間可以通過多種方式交互。
● JAAS:Java認證與授權服務,提供了對Java組件的安全保護功能。
● JPA:提供了O/R Mapping(對象/關系映射)。相對于其他O/R Mapping工具來說,JPA提供了最小的特性。
● JavaEE Application Server:提供了集群、負載平衡支持功能。
當然,JavaEE還提供了其他的技術來滿足企業應用,這里就不一一舉例了。
在1997年,Sun公司發布了Servlet技術和JSP技術;1998年,發布了EJB1.0標準;1999年,Sun正式發布了J2EE的第一個版本;2000年,發布了J2EE1.2;在2001年發布了J2EE 1.3;在2003年發布了J2EE 1.4;在2005年年底又發布了J2EE 1.5,即JavaEE。JavaEE的發展路線圖如圖1.1所示。

圖1.1 JavaEE的發展路線圖
最初,JavaEE叫做J2EE,隨著J2EE 1.5標準的發布,Sun將J2EE正式更名為JavaEE,與此對應,J2SE和J2ME平臺也更名為JavaSE和JavaME。之所以改名,目的還是讓大家清楚J2EE只是Java企業應用,而企業需要一個跨J2SE/Web/EJB的微容器,以保護業務核心組件,延續它的生命力,而不是依賴于J2SE/J2EE版本。
在2007年底,Bill Shannon已經向JCP(Java Community Process)提交了JavaEE 6草案。JavaEE 6主要在擴展性、Profiles、裁減和SOA方面有一些新的改善。
JavaEE 6中新的改善主要表現在:把一些技術以插件的形式而不是以擴展的形式增加到JavaEE應用服務器,通過增加可擴展性的點和更多服務接口,其他技術能夠以插件的形式添加到平臺實現中顯得更加有效和整潔,對開發者來說使用起來更加容易。
JavaEE平臺應該引入JavaEE Platform Profiles,Profiles將參考JavaEE Platform,由JCP定義,包括JavaEE Platform的一些技術,增加一些JCP技術,而這些技術不是基于JavaEE Platform技術的一部分,將那些不太需要的技術以合理的方式從JavaEE中裁減出去。JavaEE 6需要增強對Web Services的支持。
說明:JCP(Java Community Process)是一個開放的國際組織,主要由Java開發者及被授權者組成,職能是發展和更新Java技術規范、參考實現(RI)、技術兼容包(TCK)。JCP維護的規范包括JavaME、JavaSE、JavaEE、XML、OSS、JAIN等。
1.1.2 JavaEE運行模式
JavaEE并非一個產品,而是一系列技術和標準的集合。它為應用Java技術開發服務器端應用提供一個平臺獨立的、可移植的、多用戶的、安全的和基于標準的企業級平臺,從而簡化企業應用的開發、管理和部署。具體的JavaEE平臺產品由各廠商實現并遵循同一個標準。JavaEE平臺繼承了Java語言的安全性和高可靠性,為企業應用的設計、開發、部署和管理提供了一套完善的解決方案,它包括了從前端Web界面到中間件,再到后端數據庫系統的一系列技術和規范。
JavaEE提供了一套標準的API和以組件為基礎的企業架構。尤其值得注意的是,JavaEE提出了一個新的容器概念,通過容器來提供標準的系統底層服務,大大降低了企業級開發的復雜度。JavaEE的服務和容器示意圖如圖1.2所示。
JavaEE的服務包含Web容器和EJB容器,它所提供的Servlet和JSP技術都可以實現Web容器。Servlet是一個Java類,它可以動態地處理請求并做出響應;JSP是在HTML頁面中嵌套Java代碼的文本,它編譯后的源代碼就是Servelt,但它比Servlet提供了更好的展現方式。EJB容器主要用來進行業務邏輯的處理,這種方式能夠提供較好的安全性和可靠性,它由運行在業務邏輯層的Enterprise JavaBean處理。一個Enterprise JavaBean從客戶端接收數據,然后進行業務邏輯處理,還可以將處理后的數據進行存儲,同時它也可以從存儲器獲取數據,處理后將其發送到客戶端。
JavaEE平臺使用了一個多層的分布式應用程序模型。它主要分為客戶端層、Web層、業務層和EIS(企業信息系統)層,JavaEE的分層結構如圖1.3所示。

圖1.2 JavaEE的服務和容器示意圖

圖1.3 JavaEE的分層結構
JavaEE中各層之間的運行模式如圖1.4所示。

圖1.4 JavaEE中各層之間的運行模式