版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、JavaEE體系概述內(nèi)容提要Java EE概述Java EE體系架構(gòu)Java EE技術(shù)標(biāo)準(zhǔn)Java EE服務(wù)器簡(jiǎn)介輕量級(jí)開發(fā)框架當(dāng)今軟件開發(fā)現(xiàn)狀面向Internet:開發(fā)企業(yè)級(jí)Web應(yīng)用。面向?qū)ο?OO)OOA/OOD/OOP:Java,C#,Swift,Object-C面向組件(Component):軟件系統(tǒng)是由許多小的組件構(gòu)建和裝配起來的采用標(biāo)準(zhǔn)規(guī)范開發(fā):Java EE, MS.NET全面采用框架技術(shù)(Framework): Struts, Spring,Hibernate,AJAX,WebWork 軟件系統(tǒng)采用分層結(jié)構(gòu)和設(shè)計(jì)模式:多層(客戶層,中間層,數(shù)據(jù)層),MVC工廠化流水線開發(fā)模式
2、:CVS, SVN可視化軟件建模:UML, RUP, ROSE編程語(yǔ)言排行榜2011年12月2012年11月編程語(yǔ)言排行榜(2015,2014)/index.php/content/paperinfo/tpci/index.html編程語(yǔ)言排行榜(Long Term)/index.php/content/paperinfo/tpci/index.html前10名編程語(yǔ)言趨勢(shì)圖/index.php/content/paperinfo/tpci/index.htmlJava語(yǔ)言的發(fā)展1995年,Sun公司推出Java技術(shù)。特點(diǎn):跨平臺(tái)、面向?qū)ο?、多線程、半編譯半解釋等1999年,Java從一種語(yǔ)言
3、發(fā)展成為一種開發(fā)平臺(tái),出現(xiàn)Sun ONE體系結(jié)構(gòu),以Java語(yǔ)言為核心,包括以下三個(gè)版本:J2SE StandardJ2ME MicroJ2EE Enterprise 2005年6月,JavaOne大會(huì)上,Sun公開了JavaSE6,從此Java版本取消了數(shù)字2.J2EE更名為JavaEE。Java平臺(tái)的三個(gè)版本Java SE:是(Java Platform,Standard Edition 標(biāo)準(zhǔn)版)的簡(jiǎn)稱,即是以前的J2SE。標(biāo)準(zhǔn)版本開發(fā)桌面應(yīng)用程序Java EE:是(Java Platform,Enterprise Edition 企業(yè)版)的簡(jiǎn)稱,即是以前的J2EE。企業(yè)版本開發(fā)和部署服務(wù)
4、器端應(yīng)用程序Java ME:是(Java Platform,Micro Edition 微型版)的簡(jiǎn)稱,即是以前的J2ME。微型版本開發(fā)在移動(dòng)設(shè)備和嵌入式設(shè)備(比如手機(jī)、PDA、電視機(jī)頂盒)上運(yùn)行的應(yīng)用程序J2SE包含于J2EE中,J2ME包含了J2SE的核心,又添加了一些專有類Java EE概述Java ME SE EE?High-EndServerJava Technology Enabled DesktopWorkgroupServer客戶層(人機(jī)交互/應(yīng)用邏輯/數(shù)據(jù)訪問)服務(wù)層(數(shù)據(jù)服務(wù))客戶端應(yīng)用程序數(shù)據(jù)庫(kù)服務(wù)器企業(yè)級(jí)應(yīng)用程序體系結(jié)構(gòu)C/S單層結(jié)構(gòu)客戶層(表示邏輯)數(shù)據(jù)層(數(shù)據(jù)服務(wù))
5、數(shù)據(jù)庫(kù)服務(wù)器瀏覽器 應(yīng)用服務(wù)層(業(yè)務(wù)邏輯)應(yīng)用服務(wù)器數(shù)據(jù)庫(kù)服務(wù)器企業(yè)級(jí)應(yīng)用程序體系結(jié)構(gòu)B/S兩層結(jié)構(gòu)企業(yè)級(jí)應(yīng)用程序體系結(jié)構(gòu)多層結(jié)構(gòu)中間服務(wù)器又按應(yīng)用邏輯劃分成若干子層 應(yīng)用服務(wù)器Web表示層客戶層數(shù)據(jù)層(數(shù)據(jù)服務(wù))數(shù)據(jù)庫(kù)服務(wù)器瀏覽器業(yè)務(wù)邏輯層.什么是JAVA EEJAVA EE平臺(tái)是一種利用Java平臺(tái)來簡(jiǎn)化企業(yè)解決方案中開發(fā),部署和管理等復(fù)雜問題的體系結(jié)構(gòu).JAVA EE在JAVA SE的基礎(chǔ)上,針對(duì)企業(yè)級(jí)應(yīng)用的各種需求,主導(dǎo)并創(chuàng)造的一組規(guī)范API.JAVA EE是通過基于組件的應(yīng)用程序模型來開發(fā)分布式企業(yè)應(yīng)用程序的統(tǒng)一標(biāo)準(zhǔn).因此,使用JAVA EE規(guī)范開發(fā)的應(yīng)用程序就可以實(shí)現(xiàn)無需任何更改即
6、可彼此交互.JAVA EE是一個(gè)標(biāo)準(zhǔn),而不是一個(gè)產(chǎn)品. 各平臺(tái)開發(fā)商按照J(rèn)AVA EE規(guī)范開發(fā)不同的JAVA EE應(yīng)用服務(wù)器,因此,使用JAVA EE技術(shù)開發(fā)的企業(yè)級(jí)應(yīng)用都可部署到各種JAVA EE應(yīng)用服務(wù)器上.History of Java Enterprise PlatformMay 1998Dec 1999Sept. 2001Nov. 2003May 2006JPEProjectJ2EE 1.2Servlet,JSP, EJB, JMS, JTA,JNDI, RMI/IIOPJ2EE 1.3EJB 2.0,ConnectorArchitectureJ2EE 1.4Web Services
7、,Management,Deployment, Async.ConnectorJava EE5Annotations,EJB 3.0,PersistanceAPI,JSF, Renewed WebServicesEnterpriseJava PlatformRobustnessWeb ServicesEase ofDevelopmentJava EE發(fā)展歷史Java發(fā)展趨勢(shì)JavaEE不僅僅指一種標(biāo)準(zhǔn)平臺(tái),更多的表達(dá)以一種軟件架構(gòu)設(shè)計(jì)思想。Java2:面向?qū)ο驤ava5:面向構(gòu)件Java6:面向服務(wù)Java7:云計(jì)算Java SE平臺(tái)18Java EE平臺(tái)Java EE能夠開發(fā)和部署可移植、健
8、壯、可伸縮且安全的服務(wù)器端 Java 應(yīng)用程序。在 Java SE 的基礎(chǔ)上構(gòu)建的,它提供 Web 服務(wù)、組件模型、管理和通信 API,可以用來實(shí)現(xiàn)企業(yè)級(jí)的面向服務(wù)體系架構(gòu)(service-oriented architecture,SOA)和 Web 2.0 應(yīng)用程序。JAVA EE架構(gòu)JavaEE架構(gòu)Java EE平臺(tái)解決方案多層Java EE應(yīng)用架構(gòu)2223多層Java EE應(yīng)用架構(gòu)客戶層24多層Java EE應(yīng)用架構(gòu)Web層25多層Java EE應(yīng)用架構(gòu)業(yè)務(wù)層、信息系統(tǒng)層Java EE的體系結(jié)構(gòu)27N層的Java EE體系結(jié)構(gòu) Web 服務(wù)器客戶客戶層業(yè)務(wù)邏輯層企業(yè)信息系統(tǒng)層數(shù)據(jù)層數(shù)據(jù)
9、庫(kù)服務(wù)器郵件服務(wù)器瀏覽器HtmlApplet Web 服務(wù)器表示層(web層)客戶端應(yīng)用程序EJB 容器JSPServlet會(huì)話Bean實(shí)體Bean消息Bean應(yīng)用服務(wù)器數(shù)據(jù)庫(kù)服務(wù)器ServletJava EE體系結(jié)構(gòu) Java EE的多層架構(gòu)的實(shí)現(xiàn)JavaEE架構(gòu)應(yīng)用舉例JavaEE架構(gòu)應(yīng)用舉例Java EE的應(yīng)用程序模型多層模型應(yīng)用程序客戶端動(dòng)態(tài)HTML頁(yè)面JAVA EE應(yīng)用程序 1JAVA EE應(yīng)用程序 2JSP頁(yè)面企業(yè)Bean企業(yè)Bean數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)客戶層Web層業(yè)務(wù)層EIS 層JAVA EE 服務(wù)器機(jī)客戶機(jī)數(shù)據(jù)庫(kù)服務(wù)器機(jī)客戶層客戶層的組件在客戶機(jī)上運(yùn)行,客戶機(jī)可以是筆記本電腦、臺(tái)式電
10、腦、掌上電腦和移動(dòng)電話等Web層Web層組件在JAVA EE 服務(wù)器上運(yùn)行。Web 層對(duì)客戶層的請(qǐng)求做出處理及響應(yīng)業(yè)務(wù)層在JAVA EE 服務(wù)器上運(yùn)行。 業(yè)務(wù)層實(shí)現(xiàn)了應(yīng)用程序的業(yè)務(wù)邏輯.服務(wù)器提供系統(tǒng)級(jí)服務(wù),如事務(wù)管理、安全性和并發(fā)控制EIS 層組件在 EIS 服務(wù)器上運(yùn)行,表示企業(yè)數(shù)據(jù)信息EIS層一個(gè)典型Java EE應(yīng)用結(jié)構(gòu)圖Java EE平臺(tái)的四大組成部分容器Application Client ContainerApplet ContainerWeb ContainerEJB Container組件客戶端組件,Web層組件,EJB組件服務(wù)數(shù)據(jù)庫(kù)服務(wù),事務(wù)處理服務(wù),命名目錄服務(wù),安全服務(wù)
11、,部署服務(wù)等。通訊協(xié)議Java EE的平臺(tái)技術(shù)組件技術(shù)由開發(fā)人員用來創(chuàng)建企業(yè)應(yīng)用程序的主要部分,即用戶界面和業(yè)務(wù)邏輯。服務(wù)技術(shù)支持提供對(duì)數(shù)據(jù)庫(kù)訪問、事務(wù)服務(wù)和JNDI服務(wù)的訪問權(quán)的API。通信技術(shù)提供在客戶端與服務(wù)器之間以及不同服務(wù)器托管的協(xié)作對(duì)象之間進(jìn)行通信的機(jī)制。架構(gòu)技術(shù)從系統(tǒng)高度為Java EE開發(fā)中的共性問題提供一個(gè)標(biāo)準(zhǔn)解決方案組件的內(nèi)涵組件是一個(gè)自包含的功能單元,它使用與它有關(guān)聯(lián)的類和文件構(gòu)成Java EE應(yīng)用程序,并且可以和其他組件進(jìn)行通信。 Java EE的組件是用Java語(yǔ)言編寫的,所以和Java的類具有相同的編譯方式。Java EE的組件和標(biāo)準(zhǔn)的Java 類的不同在于構(gòu)成Ja
12、va EE的組件必須被驗(yàn)證是結(jié)構(gòu)(該結(jié)構(gòu)是由Java EE規(guī)范定義的)良好的,并且可以在服務(wù)器上進(jìn)行部署并由服務(wù)器運(yùn)行和管理。Application clients、applets、Java Servlet、JavaServer Faces、JavaServer Pages、Enterprise JavaBeans等都是Java EE定義的組件。36Java EE組件Application Client Component Applet ComponentWeb Component: Servlet JSP JSF Filter Event LinstenerEJB Component: Se
13、ssion Bean Entity Bean Message Drivern Bean38Java EE應(yīng)用組件組件技術(shù)規(guī)范JAVA EE 規(guī)范定義了以下組件:JSPHTML客戶端服務(wù)器端Java EE組件類型WEB 組件Web 組件提供了對(duì)請(qǐng)求的響應(yīng)它包含Servlet 和 JSP 兩個(gè) Web 組件,它們?cè)?Web 服務(wù)器上運(yùn)行容器的內(nèi)涵容器是組件與支撐該組件的底層指定平臺(tái)的功能之間的接口。在組件被執(zhí)行之前,必須將其構(gòu)成Java EE的module并部署在相應(yīng)的容器當(dāng)中。容器能夠管理可配置的服務(wù)(安全、事務(wù)管理、JNDI以及遠(yuǎn)程連接等)和不可配置的服務(wù)(生命周期、數(shù)據(jù)庫(kù)連接池、數(shù)據(jù)持久化以
14、及訪問Java EE的API等)。容器包括Enterprise JavaBeans (EJB)容器、 Web容器、 Application client容器、 Applet容器。42Java EE容器Applet Container 小程序容器Client Container 客戶容器管理普通Java類的運(yùn)行,既是JVM虛擬機(jī)。Web Container Web容器管理Web組件的生命周期,安全性,并發(fā)性,提供對(duì)服務(wù)的接口。EJB Container EJB容器提供EJB組件的運(yùn)行環(huán)境,管理EJB組件的生命周期,提供調(diào)用服務(wù)的接口等。44Java EE ContainersJava EE的容器
15、容器是Java EE的運(yùn)行環(huán)境,這種環(huán)境是為應(yīng)用組件服務(wù)的一個(gè)JavaEE服務(wù)器應(yīng)提供EJB容器(EJB Container)和Web容器(Web Container)JavaEE容器類型如何理解 Java EE的組件和容器組件:JavaEE基本的軟件單元面包容器:分布式組件的運(yùn)行環(huán)境 烤箱容器為組件提供必需的底層基礎(chǔ)功能服務(wù)JavaEE的容器由廠商實(shí)現(xiàn),JavaEE服務(wù)器中均包含Web容器和EJB容器的實(shí)現(xiàn)如JDNI服務(wù)、JDBC、JMS、持久化、事務(wù)支持、并發(fā)、安全性、資源和生命周期管理 程序員根據(jù)特定應(yīng)用需求編寫組件,專注于業(yè)務(wù)邏輯而不必困擾在復(fù)雜的企業(yè)應(yīng)用環(huán)境這些由容器實(shí)現(xiàn)了面包師:面
16、包是什么配比,什么餡的,什么形狀的,口味如何,多高溫度,多久不用管烤箱的安全防護(hù)機(jī)制、容量,電、溫度的轉(zhuǎn)換、定時(shí)器的控制都是烤箱的事,而烤箱的控制是廠家實(shí)現(xiàn)的Java EE的服務(wù)APIJDBC 數(shù)據(jù)庫(kù)服務(wù)JNDI 目錄服務(wù)JMS 消息服務(wù)Java Mail 郵件服務(wù)JTA 事務(wù)服務(wù)JAAS 安全服務(wù)49Java EE Standard Services50Java EE Application Scenarios 51Multitier Application Scenario 52EJB-Centric Application Scenario 53Web-Centric Applicati
17、on Scenario Java EE的通訊協(xié)議HTTP:Web通訊協(xié)議HTTPS:加密的Web通訊協(xié)議RMI:遠(yuǎn)程方法調(diào)用協(xié)議RMI-IIOP:通過Internet的遠(yuǎn)程方法調(diào)用協(xié)議。SOAP:Web服務(wù)的通訊協(xié)議Java EE通訊協(xié)議標(biāo)準(zhǔn)Java EE應(yīng)用的構(gòu)成Java EE應(yīng)用程序由一個(gè)或多個(gè)標(biāo)準(zhǔn)的module構(gòu)成,每一個(gè)module包都包含一個(gè)或多個(gè)組件和一個(gè)可選的部署描述符。Java EE包括EJB modules、Web modules、Application client modules、Resource adapter modules 4類module56Java EE App
18、lication Construction Component ProviderIDEAuthoringClass JSP Java HTML StaticCreateJavaCodeCreateWebContentsAssemblerPackagingToolComponentProvidercreatescompo-nents AssemblercreatesportablepackagesDeployerDeploy ToolDeployercreatesdeployableunitsanddeploysthemintoservers EJB.JAR Client.JAR Web.WAR
19、 Appl.EAR Portable EJB.JAR Client.JAR Web.WAR Appl.EAR DeployableJava EE ServerJava EE ServerPackagingPortability LimitJava EE JAR filesJava ARchive file containing a Java EE module or applicationEJB.JAR contains an EJB moduleWeb.WAR contains a Web moduleClient.JAR contains a Client moduleApplicatio
20、n.EAR contains a Java EE application of one or more modulesJava EE應(yīng)用的部署Java EE應(yīng)用程序可以部署一個(gè)未打包的文件結(jié)構(gòu)或者是一個(gè)打包的文件enterprise archive file(EAR)web archive file(WAR) 。Deployment ToolVendorDeploymentDescriptorPortablePackagesApplication.EAREJB.JARWeb.WARClientt.JAREJB ServerJava EE ServerWEB ServerClientDeploy
21、mentDeployable Web.WARDeployable CLient.JARDeployableApplication.EARDeployableEJB.JARJava EE企業(yè)級(jí)應(yīng)用的角色Java EE根據(jù)開發(fā)的周期定義了不同的角色,不同的角色負(fù)責(zé)不同的工作。Java EE Product ProviderTool ProviderApplication Component ProviderEnterprise Bean DeveloperWeb Component DeveloperApplication Client DeveloperApplication Assembler
22、Application Deployer and Administrator理解Java EE的內(nèi)涵Java EE不是編程語(yǔ)言Java EE是一個(gè)標(biāo)準(zhǔn)中間件體系結(jié)構(gòu)Java EE是企業(yè)級(jí)分布式應(yīng)用開發(fā)標(biāo)準(zhǔn) 在傳統(tǒng)的開發(fā)模式(單層應(yīng)用結(jié)構(gòu))下,應(yīng)用普遍存在以下致命缺點(diǎn):- 數(shù)據(jù)、頁(yè)面和業(yè)務(wù)邏輯在一個(gè)邏輯層次中,功能緊密耦合;- 代碼重用性極低,可維護(hù)性差;- 應(yīng)用耦合度高,完全沒有可擴(kuò)展性;- 任何一個(gè)細(xì)小功能的更新,需要對(duì)整個(gè)應(yīng)用進(jìn)行重新部署;- 后臺(tái)數(shù)據(jù)結(jié)構(gòu)的改動(dòng),將導(dǎo)致所有相關(guān)代碼的改動(dòng);- 數(shù)據(jù)庫(kù)連接管理是個(gè)很大的瓶頸;JavaEE的意義解決企業(yè)級(jí)應(yīng)用開發(fā)過程存在的瓶頸:應(yīng)用與功能的分布
23、式;功能模塊的可移值性與可重用性;快速的WEB頁(yè)面的開發(fā);應(yīng)用邏輯層次的分離,避免耦合;功能的安全性與事務(wù)性;可擴(kuò)展與可維護(hù)性。優(yōu)勢(shì):聚焦企業(yè)應(yīng)用:分布式、面向web、集成的、可移植、易于擴(kuò)展和維護(hù),企業(yè)計(jì)算具有一致性、事務(wù)性、安全性等分布式的、可移植組件的框架與結(jié)構(gòu);簡(jiǎn)化服務(wù)端中間件的設(shè)計(jì)(包括事務(wù)處理,安全性等等);為組件、應(yīng)用、以及服務(wù)端提供標(biāo)準(zhǔn)、開放的API和平臺(tái); 開發(fā)、部署與管理N層結(jié)構(gòu)、面向WEB、以服務(wù)器為中心的企業(yè)級(jí)應(yīng)用體系。應(yīng)用服務(wù)器應(yīng)用服務(wù)器是用于創(chuàng)建、部署、運(yùn)行和管理分布式企業(yè)級(jí)應(yīng)用的軟件服務(wù)器。它管理用戶請(qǐng)求,為業(yè)務(wù)邏輯提供宿主環(huán)境、數(shù)據(jù)連接、事務(wù)處理、目錄服務(wù)等后端
24、計(jì)算資源。包含web服務(wù)器功能的應(yīng)用服務(wù)器叫做web應(yīng)用服務(wù)器。Java EE應(yīng)用服務(wù)器=Web服務(wù)器+EJB容器。Java EE服務(wù)器提供了企業(yè)應(yīng)用中包含的所有網(wǎng)絡(luò)服務(wù)和商業(yè)邏輯服務(wù)應(yīng)用服務(wù)器的作用安全服務(wù)(Security Services)狀態(tài)和會(huì)話管理(State and Session Management)負(fù)載平衡和失敗恢復(fù)(Load Balancing and Fail-Over)業(yè)務(wù)和處理邏輯(Business and Processing Logic)胖客戶訪問服務(wù)器組件(Rich-Client Access to Server Components)HTML生成數(shù)據(jù)訪問事務(wù)
25、管理(Transaction Management)線程池和實(shí)例池(Thread Pooling and Instance Pooling)連接池(Connection Pooling)EJBJTAJMSJAASWebService其他技術(shù)標(biāo)準(zhǔn)Servlet / JSPJAFJavaMailJavaBEANJDBCJNDIRMIJava EE技術(shù)標(biāo)準(zhǔn)嚴(yán)格的說,JavaBEAN與JDBC,是J2SE的規(guī)范與標(biāo)準(zhǔn),在Java EE中得到了更好的擴(kuò)展;JavaBean技術(shù)JavaBean是基于Java的組件模型,有點(diǎn)類似于Microsoft的COM組件。在Java平臺(tái)中,通過JavaBean可以無限
26、擴(kuò)充Java程序的功能,通過JavaBean的組合可以快速的生成新的應(yīng)用程序。對(duì)于程序員來說,最好的一點(diǎn)就是JavaBean可以實(shí)現(xiàn)代碼的重復(fù)利用,另外對(duì)于程序的易維護(hù)性等等也有很重大的意義。JavaBean通過Java虛擬機(jī)(Java Virtual Machine)執(zhí)行,運(yùn)行JavaBean最小的需求是JDK1.1或者以上的版本。JavaBean傳統(tǒng)的應(yīng)用在于可視化的領(lǐng)域,如AWT下的應(yīng)用。自從Jsp誕生后,JavaBean更多的應(yīng)用在了非可視化領(lǐng)域,在服務(wù)器端應(yīng)用方面表現(xiàn)出來了越來越強(qiáng)的生命力。 JDBC技術(shù)JDBC是一組API,定義了用來訪問數(shù)據(jù)源的標(biāo)準(zhǔn)Java類庫(kù),使用這個(gè)類庫(kù)可以以
27、一種標(biāo)準(zhǔn)的方法、方便地訪問數(shù)據(jù)庫(kù)資源。JDBC的目標(biāo)是使應(yīng)用程序開發(fā)人員使用JDBC可以連接任何提供了JDBC驅(qū)動(dòng)程序的數(shù)據(jù)庫(kù)系統(tǒng),這樣就使得程序員無需對(duì)特定的數(shù)據(jù)庫(kù)系統(tǒng)的特點(diǎn)有過多的了解,從而大大簡(jiǎn)化和加快了開發(fā)過程。JDBC API為訪問不同的數(shù)據(jù)庫(kù)提供了一種統(tǒng)一的途徑,象ODBC一樣,JDBC對(duì)開發(fā)者屏蔽了一些細(xì)節(jié)問題,JDBC對(duì)數(shù)據(jù)庫(kù)的訪問也具有平臺(tái)無關(guān)性。Servlet / JSPServlet的定義: - 是部署在Java的Web服務(wù)器上的組件,整個(gè)Java服務(wù)端程序都構(gòu)建在Servlet之上,以多線程方式提供服務(wù),具有效率高,可擴(kuò)展,可移植的特點(diǎn);JSP的定義: - Java S
28、erver Page,所有JSP頁(yè)面在執(zhí)行時(shí)都會(huì)被編譯成Servlet,由JSP頁(yè)面生成的Serlvet叫作“JSP頁(yè)面實(shí)現(xiàn)類”,甚至可以把JSP認(rèn)為是嵌入了Java語(yǔ)句的HTML頁(yè)面文件;Servlet / JSP的關(guān)系: - 在頁(yè)面展現(xiàn)上,Servlet通過輸出HTML語(yǔ)句來實(shí)現(xiàn)動(dòng)態(tài)頁(yè)面,如果SUN不推出JSP標(biāo)準(zhǔn),那么Java的Web頁(yè)面開發(fā)(動(dòng)態(tài)頁(yè)面的交互過程)將會(huì)十分痛苦;JSP技術(shù)JSP是服務(wù)器端的腳本語(yǔ)言,是以Java和Servlet為基礎(chǔ)開發(fā)而成的動(dòng)態(tài)網(wǎng)頁(yè)生成技術(shù),它的底層實(shí)現(xiàn)是Java Servlet。JSP(Java Server Pages)頁(yè)面由HTML代碼和嵌入其中的
29、Java代碼所組成。服務(wù)器在頁(yè)面被客戶端所請(qǐng)求以后對(duì)這些Java代碼進(jìn)行處理,然后將生成的HTML頁(yè)面返回給客戶端的瀏覽器。特點(diǎn):面向?qū)ο?,跨平臺(tái),和Servlet一樣穩(wěn)定,可以使用Servlet提供的API,克服了Servlet的缺點(diǎn)。應(yīng)用:一般和JavaBeans結(jié)合使用,從而將界面表現(xiàn)和業(yè)務(wù)邏輯分離。JSP和ASP的比較相似:都是運(yùn)行于服務(wù)器端的腳本語(yǔ)言,兩者都是動(dòng)態(tài)網(wǎng)頁(yè)生成技術(shù)。這兩項(xiàng)技術(shù)都使用HTML來決定網(wǎng)頁(yè)的版面,都是在HTML 代碼中混合某種程序代碼,由語(yǔ)言引擎解釋執(zhí)行程序代碼。HTML代碼主要負(fù)責(zé)描述信息的顯示樣式,而程序代碼則用來描述處理邏輯。不同:JSP是由Sun推出的一
30、項(xiàng)技術(shù),是基于JavaServlet以及整個(gè)java體系的Web開發(fā)技術(shù),利用這一技術(shù)可以建立先進(jìn)、安全和跨平臺(tái)的動(dòng)態(tài)網(wǎng)站。ASP是MS公司推出的技術(shù),只能在MS的平臺(tái)上運(yùn)行,無法實(shí)現(xiàn)跨平臺(tái),也無安全性保障。ASP下的編程語(yǔ)言是 VBScript 之類的腳本語(yǔ)言,而JSP 使用的是Java。ASP 與 JSP 還有一個(gè)更為本質(zhì)的區(qū)別:兩種語(yǔ)言引擎用完全不同的方式處理頁(yè)面中嵌入的程序代碼。在 ASP 下, VBScript 代碼被 ASP 引擎解釋執(zhí)行;在 JSP 下,代碼被編譯成 Servlet 并由 Java 虛擬機(jī)執(zhí)行,這種編譯操作僅在對(duì) JSP 頁(yè)面的第一次請(qǐng)求時(shí)發(fā)生。 Java Ser
31、vlet技術(shù)Servlets(Server Applet):是一些運(yùn)行于Web服務(wù)器端的Java小程序,用來擴(kuò)展Web服務(wù)器的功能。Servlets用特定的Java解決方案替代了其它的Web服務(wù)器方編程模式(如:CGI,ISAPI等),因而繼承了Java的所有特性(跨平臺(tái)、多線程、OO)。Servlets可以嵌入在不同的Java Web服務(wù)器之中,因?yàn)橛脕砭帉慡ervlets的Servlet API對(duì)于服務(wù)器環(huán)境和協(xié)議沒有任何特殊的要求,所以Servlets具有很強(qiáng)的可移植性,也不像利用CGI程序等其它方式那樣具有性能局限。Servlets也同樣使用HTTP協(xié)議與客戶端進(jìn)行通訊,所以有時(shí)也稱S
32、evlets為“HTTP Servlets”。Servlet是一種擴(kuò)展Web服務(wù)器功能的簡(jiǎn)單而相似的技巧,而且由于它是用Java編寫的,所以能夠訪問整個(gè)Java API庫(kù),包括用于訪問企業(yè)數(shù)據(jù)庫(kù)的JDBC API。Java Servlet和JSP的比較相同兩者都是基于Java的技術(shù),所以都繼承了Java的所有特性(跨平臺(tái)、多線程、OO ),都可以使用Java強(qiáng)大的API。兩者工作方式相似:JSP代碼先被JSP容器轉(zhuǎn)換為Servlet代碼再編譯為類。兩者在JavaEE體系結(jié)構(gòu)中的工作層次相同,都負(fù)責(zé)與客戶端的連接。不同Servlets是一些運(yùn)行于Web服務(wù)器端的Java小程序;而JSP是腳本,編
33、寫起來更簡(jiǎn)單容易。Servlet主要用于從客戶端接收請(qǐng)求信息,而JSP主要負(fù)責(zé)將服務(wù)器端信息傳送到客戶端。使用Servlet的真正意義在于:可以將界面設(shè)計(jì)和業(yè)務(wù)邏輯設(shè)計(jì)分離。Servlet請(qǐng)求處理過程:當(dāng)請(qǐng)求并發(fā)時(shí),Servlet以多線程方式提供服務(wù):Servlet / JSPCORBA技術(shù)CORBA(Common Object Request Broker Architecture)是一個(gè)開發(fā)分布式對(duì)象系統(tǒng)標(biāo)準(zhǔn)(規(guī)范),它獨(dú)立于平臺(tái),也獨(dú)立于語(yǔ)言。由OMG制定。在這個(gè)體系結(jié)構(gòu)中,一個(gè)對(duì)象可以被本機(jī)上的客戶或遠(yuǎn)程客戶通過方法激活來訪問??蛻簦ㄒ粋€(gè)對(duì)象或應(yīng)用)無須知道被調(diào)用對(duì)象(稱為服務(wù)對(duì)象)的
34、運(yùn)行環(huán)境,也無須知道實(shí)現(xiàn)這個(gè)對(duì)象的編程語(yǔ)言,客戶只要知道服務(wù)對(duì)象的邏輯地址和提供的接口。這種互操作性的關(guān)鍵是IDL(Interface Definition Language、接口定義語(yǔ)言),IDL說明對(duì)象接口中的方法,這些方法可以被其它對(duì)象(或應(yīng)用)激活。CORBA體系結(jié)構(gòu):核心ORBRMI技術(shù)RMI(Remote Method Invoke)是一種被EJB使用的更底層的協(xié)議,正如其名字所表示的那樣,RMI協(xié)議調(diào)用遠(yuǎn)程對(duì)象上方法,使用序列化方式在客戶端和服務(wù)器端的對(duì)象之間傳遞數(shù)據(jù)。RMI和CORBA相比:兩者的關(guān)鍵差別在于語(yǔ)言環(huán)境,Java RMI是一個(gè)分布式對(duì)象計(jì)算的純Java解決方案(如
35、,在Java RMI中,對(duì)象的接口用Java定義,而不是用IDL);其次,CORBA沒有定義安全服務(wù),而Java RMI繼承了Java的安全性;再者,CORBA有不同的實(shí)現(xiàn),不同的獨(dú)立軟件開發(fā)商的不同實(shí)現(xiàn)均有獨(dú)特性,這使得在不同平臺(tái)上的匹配比較困難,而且不是所有CORBA產(chǎn)品開發(fā)商都支持所有平臺(tái),而幾乎所有平臺(tái)都支持Java虛擬機(jī),因此Java RMI具有更高的可移植性。如果客戶對(duì)象和服務(wù)對(duì)象都基于Java虛擬機(jī),那么Java RMI是分布對(duì)象計(jì)算的最好選擇。當(dāng)然,IIOP(Internet Inter-ORB Protocol)已經(jīng)提供了Java RMI和CORBA的互操作能力,而且兩者的發(fā)
36、展有互相借鑒的趨勢(shì)。JavaEE核心技術(shù)中最常用的技術(shù)EJB、 CORBA、 RMI、JSP、Java Servlet、JavaBean、JDBC、XML、開發(fā)大型應(yīng)用:異構(gòu)、分布、數(shù)據(jù)交換 JNDI(Java Naming and Directory Interface)、 JMAPI(Java Management API)、 JTS/JTA(Java Transaction Service/API)、 JMS( Java Messaging Service)、 Java Security API。EJB JavaEE的基石EJB (Enterprise JavaBeans) 是一個(gè)Jav
37、a服務(wù)器端組件開發(fā)的規(guī)范,定義了一個(gè)用來開發(fā)面向?qū)ο蠓植际綉?yīng)用組件的標(biāo)準(zhǔn)方法,軟件廠商根據(jù)它來實(shí)現(xiàn)EJB服務(wù)器。Java程序員可以將一些EJB組件組合起來,從而方便、快捷地建構(gòu)起分布式應(yīng)用程序。EJB程序員不必太擔(dān)心事務(wù)處理、多線程、資源管理等方面的問題,可以專注于支持應(yīng)用所需的商業(yè)邏輯,而不用擔(dān)心周圍框架的實(shí)現(xiàn)問題。使用EJB可以使整個(gè)程序分塊明確,增強(qiáng)了分布式應(yīng)用程序的可擴(kuò)展性和性能;另外,EJB的使用增強(qiáng)了整個(gè)系統(tǒng)程序的可靠性、可管理性和可移植性。EJB目標(biāo)分布式應(yīng)用標(biāo)準(zhǔn)組件面向?qū)ο髽?biāo)準(zhǔn)組件滿足Java的核心特性:一次編譯,到處運(yùn)行減少重復(fù)開發(fā)與其他Java API兼容EJB組件EJB分
38、為三種:會(huì)話EJB、實(shí)體EJB和消息驅(qū)動(dòng)EJBEJB容器是EJB組件的運(yùn)行環(huán)境,為部署的EJB組件提供各種服務(wù)(事務(wù)、安全、遠(yuǎn)程客戶端的網(wǎng)絡(luò)發(fā)布、資源管理等)。容器廠商也可以在容器或服務(wù)器中提供額外服務(wù)的接口。EJB服務(wù)器管理EJB容器的高端進(jìn)程或應(yīng)用程序,并提供對(duì)系統(tǒng)服務(wù)的訪問。EJB服務(wù)器也可以提供廠商自己的特性,如優(yōu)化的數(shù)據(jù)庫(kù)訪問接口,對(duì)其他服務(wù)(如CORBA服務(wù))的訪問等。 EJB JavaEE的基石EJB3的分布式特點(diǎn)EJB的作用示意圖如下:EJBEJB3的分布式特點(diǎn)EJB的應(yīng)用對(duì)象應(yīng)用的規(guī)模較大、而且增長(zhǎng)速度快速應(yīng)用的伸縮性要求很高應(yīng)用可能需要除JSP以外的客戶端訪問EJB3的運(yùn)行
39、環(huán)境EJB3.0應(yīng)用需要運(yùn)行在JDK1.6以上版本。EJB3.0應(yīng)用需要運(yùn)行在EJB容器里,下面是一些JavaEE應(yīng)用服務(wù)器,JavaEE應(yīng)用服務(wù)器包含Web容器和EJB容器。 JBoss Glassfish Weblogic WebsphereEJB的新生簡(jiǎn)化的程序設(shè)計(jì)模型用注解而不是描述文件依賴注入與JNDI查找標(biāo)準(zhǔn)、獨(dú)立、OO的JPA可單元測(cè)試的POJO組件EJB3與Spring整合潛力EJB的種類EJB包括3種類型的Bean:會(huì)話Bean(Session):用于描述業(yè)務(wù)處理過程,可以作為其他Bean的客戶端,用來調(diào)用其他Bean;實(shí)體Bean(Entity):用于描述數(shù)據(jù),提供了持久數(shù)
40、據(jù)的操作與表示,可同時(shí)與多個(gè)客戶機(jī)進(jìn)行交互,運(yùn)行結(jié)束后,其狀態(tài)仍能保留;剛才已提到過,有2種類型的實(shí)體Bean,CMP與BMP;消息驅(qū)動(dòng)Bean(Message-Driven):集成了JMS和EJB的功能,不向客戶端開放,只用于系統(tǒng)內(nèi)部的交互;EJB的分類在EJB2.X中分4種類型的EJB:會(huì)話Bean(有狀態(tài)會(huì)話Bean和無狀態(tài)會(huì)話Bean);實(shí)體Bean;消息驅(qū)動(dòng)Bean。EJB3中:取消了實(shí)體Bean,另外單獨(dú)提出了JPA;會(huì)話Bean(有狀態(tài)會(huì)話Bean和無狀態(tài)會(huì)話Bean);消息驅(qū)動(dòng)Bean。一個(gè)實(shí)際的業(yè)務(wù)例子來描述3種Bean的關(guān)系通過網(wǎng)上銀行查詢余額:EJB的Java EE容器什
41、么是JPAJava持久API JPA (Java Persistence API)是提供給Java應(yīng)用通過持久提供者訪問數(shù)據(jù)庫(kù)的一組標(biāo)準(zhǔn)的API。用戶與數(shù)據(jù)庫(kù)的交互是通過處于中間層的持久提供者來轉(zhuǎn)發(fā):用戶首先把對(duì)數(shù)據(jù)庫(kù)的操作請(qǐng)求提交給持久提供者;持久提供者使用相應(yīng)的JDBC驅(qū)動(dòng)將請(qǐng)求發(fā)送給DBMS;DBMS執(zhí)行相應(yīng)操作并返回結(jié)果給持久提供者;持久提供者把結(jié)果再返回給用戶。JPA規(guī)范JPA只是一種規(guī)范,它沒有具體的實(shí)現(xiàn),只是屏蔽下層不同ORM的差異,對(duì)上層應(yīng)用一個(gè)統(tǒng)一的接口。HibernateJPA規(guī)范TopLink數(shù)據(jù)庫(kù)應(yīng)用ORM示例ORM示意一個(gè)簡(jiǎn)單的實(shí)體類Entitypublic clas
42、s Student implements java.io.Serializable Idprivate int id;private String stuName;private String stuClass;實(shí)體類注解主鍵注解JTAJTA(Java Transaction API),Java事務(wù)API,其定義為: - 是一組事務(wù)接口定義,描述了對(duì)于不同資源(包括數(shù)據(jù)庫(kù),EJB,服務(wù)通訊等)的事務(wù)處理規(guī)范;需要注意的是: - JTA只提供了接口,并沒有提供實(shí)現(xiàn)類,完全需要自行實(shí)現(xiàn); - JTA可以實(shí)現(xiàn)同一事務(wù)對(duì)應(yīng)不同的資源,但是不能實(shí)際事務(wù)的嵌套;JMSJMS(Java Message Se
43、rvice)的定義:提供了一系統(tǒng)創(chuàng)建、發(fā)送、接收、和讀取企業(yè)消息的通用方法;JMS中的消息通訊都是異步方式的;JMS可以處理由其他類型客戶端所發(fā)消息;具體JMS應(yīng)用的組成:客戶端:用來處理消息的應(yīng)用,分為JMS客戶與非JSM客戶端,區(qū)別在于實(shí)現(xiàn)的技術(shù)有所不同;消息(Message):在不同應(yīng)用或組件中進(jìn)行異常通訊的請(qǐng)求、事件或報(bào)告;JMS Provider:實(shí)現(xiàn)了JMS標(biāo)準(zhǔn)的應(yīng)用服務(wù);被管理對(duì)象:事先配置的JMS對(duì)象,由管理員為使用JMS的客戶端所創(chuàng)建;JAASJAAS定義:Java Authentication Authorization Service,Java驗(yàn)證授權(quán)API;是JCE安全
44、框架的補(bǔ)充標(biāo)準(zhǔn),通過驗(yàn)證代碼運(yùn)行者的身份及其權(quán)限來保護(hù)應(yīng)用系統(tǒng)免受攻擊;JAAS采用PlugIn方式運(yùn)行,支持可插拔方式,只要對(duì)JAAS配置就可以實(shí)現(xiàn)JAAS的部署與卸載;JAAS提供一組身份驗(yàn)證,以及權(quán)限校驗(yàn)的接口。XML技術(shù)XML(Extensible Markup Language)是一種可以用來定義其它標(biāo)記語(yǔ)言的語(yǔ)言,被用來在不同的商務(wù)過程中共享數(shù)據(jù)。XML的發(fā)展和Java是相互獨(dú)立的,但是它和Java具有的相同目標(biāo)即平臺(tái)獨(dú)立性。通過將Java和XML的組合,可以得到一個(gè)完美的具有平臺(tái)獨(dú)立性的解決方案。JavaEE平臺(tái)全面支持和實(shí)施XML,這種強(qiáng)大的組合可使XML具備跨平臺(tái)的兼容性,甚
45、至用于對(duì)XML代碼進(jìn)行語(yǔ)法檢查和調(diào)試的工具也可與平臺(tái)無關(guān)。因?yàn)閄ML可實(shí)施獨(dú)立于平臺(tái)的數(shù)據(jù),而JavaEE平臺(tái)則可實(shí)施獨(dú)立于平臺(tái)的解決方案,所以JavaEE技術(shù)和XML技術(shù)分別是企業(yè)開發(fā)的陰陽(yáng)兩極。XML可通過移植的方式表現(xiàn)數(shù)據(jù),因此就對(duì)Java技術(shù)的可移植性構(gòu)成了補(bǔ)充。 WebServiceWebService的定義: - 為集成各相對(duì)獨(dú)立的應(yīng)用,而提出開放標(biāo)準(zhǔn)的,且與平臺(tái)無關(guān)的服務(wù)標(biāo)準(zhǔn); - 基于SOAP,WSDL,XSD,XML,HTTP等一系統(tǒng)標(biāo)準(zhǔn)協(xié)議實(shí)現(xiàn);為什么需要使用WebService: - 能夠跨防火墻進(jìn)行通訊,因?yàn)槭腔贖TTP; - 應(yīng)用的集成性高,與平臺(tái)無關(guān); - 易于功
46、能的擴(kuò)展;WebServiceWebService與客戶端的交互過程如下:什么是JNDIJNDI為各種現(xiàn)有的命名和目錄服務(wù)提供了通用接口:DNS、LDAP、活動(dòng)目錄(Active Directory)、RMI 注冊(cè)器、COS 注冊(cè)器、NIS 及文件系統(tǒng)。在結(jié)構(gòu)上,JNDI 由兩部分組成:客戶API 和服務(wù)提供商接口(Service Provider Intergace,SPI),應(yīng)用程序通過客戶API 訪問命名和目錄服務(wù);服務(wù)提供商接口用于供廠商創(chuàng)建命名和目錄服務(wù)的JNDI 實(shí)現(xiàn)。下面是JNDI 的結(jié)構(gòu)圖:JNDIJNDI的定義: - Java Naming and Directory Int
47、erface(Java命名目錄服務(wù)接口),是命名目錄 服務(wù)的抽象接口集合,為企業(yè)級(jí)應(yīng)用提供了統(tǒng)一的標(biāo)準(zhǔn)化連接,使Java能夠無 縫的獲取任何可目錄化的企業(yè)信息; - 是數(shù)據(jù)的最基本服務(wù)之一,常見的目錄服務(wù)有LDAP Server、RMI等; - 通過names與objects的綁定,形成唯一的描述字符串,以此獲得目錄條目,類 似于DNS通過主機(jī)名來獲得IP; - JNDI包含API與SPI(服務(wù)提供接口),JNDI SPI用于命名目錄服務(wù)的設(shè)計(jì)與實(shí) 現(xiàn),使各類數(shù)據(jù)服務(wù)標(biāo)準(zhǔn)化;因此Java能夠通過JNDI API快速方便的訪問任何 目錄服務(wù);Java應(yīng)用與JNID API、JNDI SPI,以及
48、各類目錄服務(wù)的關(guān)系結(jié)構(gòu)圖其他技術(shù)標(biāo)準(zhǔn)Java EE還包括以下一系列技術(shù)標(biāo)準(zhǔn),可以從SUN的官網(wǎng)上獲得以下技術(shù)標(biāo)準(zhǔn)的詳細(xì)說明:JACC:Java Authorization Contract for Containers,用于將外部安全管理器與應(yīng)用系統(tǒng)進(jìn)行集成,提供了安全授權(quán)檢查委托給外部應(yīng)用程序;JAX-RPC:Java API for XML-Based Remote Procedure Calls,顧名思義,即是提供了基于XML標(biāo)準(zhǔn)的遠(yuǎn)程過程調(diào)用接口;JAX-WS:Java API for XML Web Service;JAXP:Java API for XML Processing,是
49、XML解析算法的API,同時(shí)具有DOM與SAX的解析能力;JAXR:Java API for XML Registries,是為Java應(yīng)用所定義的API,用于訪問不同類型數(shù)據(jù)注冊(cè)中心,并進(jìn)行交互;其他技術(shù)標(biāo)準(zhǔn)JCA:Java EE的連接器架構(gòu),提供了與外部應(yīng)用進(jìn)行無縫連接的標(biāo)準(zhǔn)規(guī)范;JDO:Java Data Objects,目的是向Java開發(fā)者提供面向?qū)ο蟮妮p量級(jí)視圖;JMX:Java Management Extersion,簡(jiǎn)單來說,就是對(duì)Java目前所有技術(shù)的統(tǒng)一管理與框架;JSF:Java Server Faces,試圖在不同的角度上提供網(wǎng)頁(yè)設(shè)計(jì)人員、應(yīng)用程序設(shè)計(jì)人員、組件開發(fā)人
50、員解決方案,讓不同技術(shù)的人員可以彼此合作又不互相干擾;JSTL:Java服務(wù)頁(yè)面標(biāo)簽庫(kù),提供了一堆用于JSP頁(yè)面開發(fā)的標(biāo)簽,包括各類HTML以及Web開發(fā)所需的元素;StAX:Streaming APIs for XML Parsers,顧名思義,是其于流的XML解析API,相對(duì)DOM與SAX,性能上有很大提高; 當(dāng)前流行的JavaEE平臺(tái)目前市場(chǎng)上已經(jīng)有許多成熟的實(shí)現(xiàn)JavaEE規(guī)范的產(chǎn)品,其中有的是商業(yè)公司的產(chǎn)品,而有的是開放源代碼的免費(fèi)產(chǎn)品。商業(yè)公司的產(chǎn)品除Interstage外,另外主要還有BEA WebLogic、IBM WebSphere、Oracle Application Se
51、rver、Borland Enterprise Server、SUN iPlanet Application Server等。這些產(chǎn)品一般都包括一組完整的產(chǎn)品線,用來支持JavaEE應(yīng)用從開發(fā)、組裝、發(fā)布及管理的整個(gè)過程。 產(chǎn)品的組成商業(yè)公司的產(chǎn)品一般都包括一組完整的產(chǎn)品線,用來支持JavaEE應(yīng)用從開發(fā)、組裝、發(fā)布及管理的整個(gè)過程1)應(yīng)用服務(wù)器商業(yè)公司產(chǎn)品中的應(yīng)用服務(wù)器一般都完全支持JavaEE規(guī)范的應(yīng)用服務(wù)器,除包括Servlet容器、EJB容器外,還提供WEB Services、CORBA等服務(wù)。2)應(yīng)用集成化開發(fā)環(huán)境商業(yè)公司的產(chǎn)品提供支持開發(fā)JavaEE應(yīng)用的集成開發(fā)環(huán)境,可以大大提高
52、應(yīng)用開發(fā)、調(diào)試的效率。3)JavaEE規(guī)范之外的工具除了在JavaEE規(guī)范中規(guī)定的部分外,商業(yè)公司的產(chǎn)品一般還包括提供服務(wù)器負(fù)載均衡、安全控制、開發(fā)企業(yè)門戶等功能在內(nèi)的工具。Java EE服務(wù)器Web服務(wù)器: TomcatTomcat 服務(wù)器是一個(gè)免費(fèi)的開放源代碼的Web 應(yīng)用服務(wù)器,它是Apache 軟件基金會(huì)(Apache Software Foundation)的Jakarta 項(xiàng)目中的一個(gè)核心項(xiàng)目,由Apache、Sun 和其他一些公司及個(gè)人共同開發(fā)而成。因?yàn)門omcat 技術(shù)先進(jìn)、性能穩(wěn)定,而且免費(fèi),因而深受Java 愛好者的喜愛并得到了部分軟件開發(fā)商的認(rèn)可,成為目前比較流行的Web
53、 應(yīng)用服務(wù)器。Tomcat 運(yùn)行時(shí)占用的系統(tǒng)資源小,擴(kuò)展性好,支持負(fù)載平衡與郵件服務(wù)等開發(fā)應(yīng)用系統(tǒng)常用的功能。Tomcat 是一個(gè)小型的輕量級(jí)應(yīng)用服務(wù)器,在中小型系統(tǒng)和并發(fā)訪問用戶不是很多的場(chǎng)合下被普遍使用,是開發(fā)和調(diào)試JSP 程序的首選。Java EE服務(wù)器應(yīng)用服務(wù)器: JBossJBoss是全世界開發(fā)者共同努力的成果,一個(gè)基于Java EE的開放源代碼的應(yīng)用服務(wù)器。 因?yàn)镴Boss代碼遵循LGPL許可,可以在任何商業(yè)應(yīng)用中免費(fèi)使用它,而不用支付費(fèi)用。JBoss支持EJB 1.1和EJB 2.0 、EJB3.0的規(guī)范,它是一個(gè)管理EJB的容器和服務(wù)器。JBoss的目標(biāo)是一個(gè)源代碼開放的Jav
54、a EE環(huán)境。但是JBoss核心服務(wù)僅是提供EJB服務(wù)器。JBoss不包括servlet/JSP page 的WEB容器,當(dāng)然可以和Tomcat或Jetty綁定使用。Java EE服務(wù)器服務(wù)器: WebLogicWebLogic是美國(guó)bea公司出品的一個(gè)application server,它是用純java開發(fā)的。目前weblogic在世界application server市場(chǎng)上占有最大的份額。BEA WebLogic是用于開發(fā)、集成、部署和管理大型分布式Web應(yīng)用、網(wǎng)絡(luò)應(yīng)用和數(shù)據(jù)庫(kù)應(yīng)用的Java應(yīng)用服務(wù)器。將Java的動(dòng)態(tài)功能和Java Enterprise標(biāo)準(zhǔn)的安全性引入大型網(wǎng)絡(luò)應(yīng)用的開
55、發(fā)、集成、部署和管理之中。 BEA WebLogic Server擁有處理關(guān)鍵Web應(yīng)用系統(tǒng)問題所需的性能 、可擴(kuò)展性和高可用性。 與BEA WebLogic Commerce Server 配合使用, BEA WebLogic Server可為部署適應(yīng)性個(gè)性化電子商務(wù)應(yīng)用系統(tǒng)提供完善的解決方案。Java EE服務(wù)器服務(wù)器: WebsphereIBM公司的重量級(jí)商業(yè)用Java EE平臺(tái)服務(wù)器(Server)。它包含了編寫、運(yùn)行和監(jiān)視全天候的工業(yè)強(qiáng)度的隨需應(yīng)變 Web 應(yīng)用程序和跨平臺(tái)、跨產(chǎn)品解決方案所需要的整個(gè)中間件基礎(chǔ)設(shè)施,如服務(wù)器、服務(wù)和工具。與weblogic類似,都提供更安全,穩(wěn)定的,
56、可以進(jìn)行大量操作的服務(wù)平臺(tái),自身帶有的特色功能也比較多。與weblogic相比,由于是不同公司的產(chǎn)品,提供的平臺(tái)功能差不多,但基于這兩個(gè)平臺(tái)開發(fā)的開發(fā)環(huán)境不同,自帶的java包也不同,基于weblogic或websphere開發(fā)的web應(yīng)用程序基本不能互用。Java EE服務(wù)器服務(wù)器: Glassfishglassfish是Sun公司推出的Java EE服務(wù)器,一個(gè)比較活躍的開源社區(qū),不斷的通過社區(qū)的反饋來提高其的可用性. Glassfish是一個(gè)免費(fèi)、開放源代碼的應(yīng)用服務(wù),它實(shí)現(xiàn)了Java EE平臺(tái)包括的最新技術(shù):EJB 3.0、JSF 1.2、Servlet 2.5、JSP 2.1、JAX-WS 2.0、JAXB 2.0、 Java Persistence 1.0、Common Annonations 1.0、StAX 1.0等。它對(duì)集群有著很好的支持,可以簡(jiǎn)單到通過添加機(jī)器,就可輕松的提高網(wǎng)站的帶負(fù)載能力,在解析能力方面,它對(duì)html的吞吐能力與apache服務(wù)器不分上下,就是tomcat所不能比的,支持目錄部署,熱部署,解決了tomcat 對(duì)熱部署能力的缺陷。JavaEE的應(yīng)用展望JavaEE應(yīng)用的現(xiàn)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《科學(xué)研究方法》教學(xué)大綱
- 玉溪師范學(xué)院《統(tǒng)計(jì)學(xué)》2021-2022學(xué)年第一學(xué)期期末試卷
- 玉溪師范學(xué)院《曲式分析基礎(chǔ)》2023-2024學(xué)年第一學(xué)期期末試卷
- 家用制冷電器具賬務(wù)處理實(shí)例-記賬實(shí)操
- 關(guān)于黃瓜美術(shù)課件
- 心肺復(fù)蘇操作流程培訓(xùn)課件
- 子夜課件怎么做
- 2024年計(jì)算機(jī)數(shù)字信號(hào)處理板卡項(xiàng)目成效分析報(bào)告
- 2024年老年旅游項(xiàng)目評(píng)價(jià)分析報(bào)告
- 不用出租金種地合同協(xié)議書
- 水幕系統(tǒng)設(shè)備維護(hù)方案
- 遺失及損毀責(zé)任約定
- 臂叢神經(jīng)MR成像課件
- 青春期女生的自尊自愛課件
- 采購(gòu)計(jì)劃制定
- 雙塔精餾正常操作雙塔精餾正常操作
- 振蕩指標(biāo)MACD(波段操作精解)
- 2024年四川航空股份有限公司招聘筆試參考題庫(kù)含答案解析
- 醫(yī)學(xué)檢驗(yàn)專業(yè)職業(yè)規(guī)劃書
- 喘證診療方案臨床療效評(píng)價(jià)總結(jié)分析
- 慈善協(xié)會(huì)各項(xiàng)管理制度
評(píng)論
0/150
提交評(píng)論