官术网_书友最值得收藏!

第一部分

第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中各層之間的運行模式

主站蜘蛛池模板: 长兴县| 东光县| 调兵山市| 微山县| 从江县| 铜陵市| 博罗县| 英山县| 临武县| 沙坪坝区| 额尔古纳市| 郑州市| 海盐县| 中阳县| 勃利县| 宜章县| 甘德县| 平山县| 博兴县| 武平县| 黎平县| 琼中| 远安县| 新绛县| 凤翔县| 余江县| 宁化县| 张北县| 增城市| 莱阳市| 阿巴嘎旗| 南投县| 襄垣县| 孙吴县| 股票| 英吉沙县| 衡水市| 伊春市| 静安区| 瓦房店市| 井冈山市|