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

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

圖1.2 JavaEE的服務(wù)和容器示意圖

圖1.3 JavaEE的分層結(jié)構(gòu)
JavaEE中各層之間的運行模式如圖1.4所示。

圖1.4 JavaEE中各層之間的運行模式
- Word 2000、Excel 2000、PowerPoint 2000上機指導(dǎo)與練習
- 大數(shù)據(jù)管理系統(tǒng)
- Seven NoSQL Databases in a Week
- 輕松學PHP
- PIC單片機C語言非常入門與視頻演練
- Security Automation with Ansible 2
- Maya極速引擎:材質(zhì)篇
- 大數(shù)據(jù)技術(shù)與應(yīng)用
- 菜鳥起飛系統(tǒng)安裝與重裝
- 計算機與信息技術(shù)基礎(chǔ)上機指導(dǎo)
- Bayesian Analysis with Python
- 網(wǎng)頁設(shè)計與制作
- 電氣自動化工程師自學寶典(基礎(chǔ)篇)
- Photoshop CS6白金手冊
- 數(shù)據(jù)共享與數(shù)據(jù)整合技術(shù)