2023年全國(guó)碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩79頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、1,Web層Web層設(shè)計(jì)中的問題與指南Web應(yīng)用程序部署客戶端,5.顯示層技術(shù),2,5.1 Web層,Web層的工作就是接收來自于HTTP客戶端的輸入,將收到的輸入交給內(nèi)部的業(yè)務(wù)邏輯進(jìn)行處理,然后將結(jié)果通過HTTP協(xié)議送回客戶端。,5.顯示層技術(shù)-Web層,在基于Interent的分布式應(yīng)用框架中,顯示層一般由Web層和客戶端兩部分組成。,3,JSP文件:從HTTP的請(qǐng)求中提取參數(shù),調(diào)用相應(yīng)的業(yè)務(wù)邏輯,處理HTTP會(huì)話,最后生成H

2、TTP文檔??偟目磥?,這個(gè)模型的好處是簡(jiǎn)單,但是它把業(yè)務(wù)邏輯和表現(xiàn)混在一塊,對(duì)大應(yīng)用來說,這個(gè)缺點(diǎn)是令人容忍不了的。,兩種模型,5.顯示層技術(shù)-Web層,4,MVC模式(Model/View/Controller),5.顯示層技術(shù)-Web層,定義:MVC是一個(gè)設(shè)計(jì)模式,它強(qiáng)制性的使應(yīng)用程序的輸入、處理和輸出分開。,視圖:用戶看到并與之交互的界面。對(duì)老式的Web應(yīng)用程序來說,視圖就是由HTML元素組成的界面,在新式的Web應(yīng)用程序中,還包

3、括Macromedia Flash和象XHTML,XML/XSL,WML等一些標(biāo)識(shí)語言和Web services。,5,模型:表示企業(yè)數(shù)據(jù)和業(yè)務(wù)規(guī)則。在MVC的三個(gè)部件中,模型擁有最多的處理任務(wù)。被模型返回的數(shù)據(jù)是中立的,即模型與數(shù)據(jù)格式無關(guān)。,5.顯示層技術(shù)-Web層,控制器:接受用戶的輸入,根據(jù)請(qǐng)求決定調(diào)用模型構(gòu)件去處理請(qǐng)求,然后確定用哪個(gè)視圖來顯示模型處理返回的數(shù)據(jù)。,6,,7,為什么要使用 MVC,5.顯示層技術(shù)-Web層,多個(gè)

4、視圖能共享一個(gè)模型。由于MVC已經(jīng)將數(shù)據(jù)和業(yè)務(wù)規(guī)則從表示層分開,無論用戶想要Flash界面或是WAP界面,用一個(gè)模型就能處理它們, 可以最大化的重用代碼 。,模型返回的數(shù)據(jù)沒有進(jìn)行格式化,所以同樣的構(gòu)件能被不同界面使用。,8,,5.顯示層技術(shù)-Web層,由于運(yùn)用MVC的應(yīng)用程序的三個(gè)部件是相互對(duì)立,改變其中一個(gè)不會(huì)影響其它兩個(gè),所以依據(jù)這種設(shè)計(jì)思想能構(gòu)造良好的松偶合的構(gòu)件。,可以使用控制器來聯(lián)接不同的模型和視圖去完成用戶的需求,這樣控制

5、器可以為構(gòu)造應(yīng)用程序提供強(qiáng)有力的手段。,9,MVC的缺點(diǎn) 使用MVC需要精心的計(jì)劃,花費(fèi)相當(dāng)可觀的時(shí)間去考慮如何將MVC運(yùn)用到應(yīng)用程序,同時(shí)由于模型和視圖要嚴(yán)格的分離,這樣也給調(diào)試應(yīng)用程序到來了一定的困難。 所以使用MVC同時(shí)也意味著要管理比以前更多的文件,增加了工作量。,5.顯示層技術(shù)-Web層,10,,5.顯示層技術(shù)-Web層,MVC設(shè)計(jì)模式是一個(gè)很好創(chuàng)建軟件的途徑,但是如果要隔離模型、視圖和控制器的構(gòu)件,則要重新思考應(yīng)用程序,

6、尤其是應(yīng)用程序的構(gòu)架。 MVC并不適合小型甚至中等規(guī)模的應(yīng)用程序,花費(fèi)大量時(shí)間將MVC應(yīng)用到規(guī)模并不是很大的應(yīng)用程序通常會(huì)得不償失。,11,交付應(yīng)用的功能到Web之上:應(yīng)用設(shè)計(jì)通常將業(yè)務(wù)邏輯從數(shù)據(jù)顯示中分離出來。Web層為后端應(yīng)用模型中的業(yè)務(wù)邏輯(可以被其它類型的客戶端共享訪問),接收HTTP輸入并產(chǎn)生HTTP輸出。,Web層的功能,5.顯示層技術(shù)-Web層,12,動(dòng)態(tài)內(nèi)容創(chuàng)建:Web層組件為產(chǎn)生動(dòng)態(tài)Web內(nèi)容來設(shè)計(jì)的。Servle

7、ts和JSP頁面可以基于用戶的輸入與上下文將來自于多種源的數(shù)據(jù)格式轉(zhuǎn)化為任意的數(shù)據(jù)格式。,屏幕流程:由于屏幕流程往往對(duì)應(yīng)到特定的客戶端的動(dòng)作,因此決定下一屏幕(也即哪個(gè)頁面)應(yīng)該顯示什么的邏輯一般駐留在Web層。,5.顯示層技術(shù)-Web層,13,數(shù)據(jù)表示和輸入收集:Web層和Web客戶端進(jìn)行通訊以使得格式化代碼的Web文檔自然就屬于Web層。其次,用戶的輸入以HTTP的PUT和GET動(dòng)作到達(dá)Web層,Web層收到這些動(dòng)作即將其翻譯為某種

8、形式(經(jīng)常是某種形式的命令對(duì)象)以便其余的應(yīng)用可以理解。,5.顯示層技術(shù)-Web層,14,狀態(tài)管理:Web層有一個(gè)簡(jiǎn)單的、靈活的機(jī)制用來在一個(gè)用戶的會(huì)話期間積聚相應(yīng)的事務(wù)型數(shù)據(jù)和上下文數(shù)據(jù)。,協(xié)議轉(zhuǎn)換:EJB 服務(wù)器、數(shù)據(jù)庫、EIS層資源管理器和其它的網(wǎng)絡(luò)資源都有它們自己的協(xié)議。Web層作為一個(gè)軟件層,把來自于其它協(xié)議的請(qǐng)求和應(yīng)答翻譯為HTTP形式,或者,把HTTP請(qǐng)求和應(yīng)答翻譯成其它協(xié)議的形式。,5.顯示層技術(shù)-Web層,15,對(duì)多種

9、潛在的客戶端類型的支持:Web使用HTTP協(xié)議來傳送數(shù)據(jù)給客戶端,數(shù)據(jù)通過MIME類型(一種擴(kuò)展的內(nèi)容分類機(jī)制)來描述。任何HTTP形式的客戶端都能夠加入一個(gè)Web應(yīng)用,且此客戶端能夠使用可以下載內(nèi)容的任意類型,即使內(nèi)容的類型還未存在。,5.顯示層技術(shù)-Web層,16,J2EE的Web層技術(shù)提供了服務(wù)器的擴(kuò)展機(jī)制,該機(jī)制提供了一種基于服務(wù)器端腳本設(shè)計(jì)所帶來的好處,并且采用的是一種標(biāo)準(zhǔn)的、安全的、廠商中立的方法。Web應(yīng)用及支持它的Web

10、層技術(shù)包括Web 檔案(archive)、Web層組件模型、servlets, JSP 及J2EE的Web 容器。,Web層技術(shù),5.顯示層技術(shù)-Web層,17,Web檔案:對(duì)一個(gè)Web應(yīng)用的打包和部署之單元稱之為一個(gè)Web檔案(Web archive,以“.war”作為文件名的結(jié)尾),此文件包含當(dāng)前Web應(yīng)用的所有類文件與資源,Web檔案也包含一個(gè)配置該應(yīng)用的部署描述器文件。,5.顯示層技術(shù)-Web層,18,Web容器:一個(gè)容器是位于

11、服務(wù)器里面的類之集合,它們相互合作以管理組件實(shí)例的生命周期并對(duì)那些實(shí)例提供數(shù)據(jù)和服務(wù)。 J2EE規(guī)范定義了一個(gè)在Web容器與每一Web組件之間的約定/契約,用以定義組件的生命周期、組件必須實(shí)現(xiàn)的行為、以及服務(wù)器必須提供給該組件的服務(wù)。,5.顯示層技術(shù)-Web層,19,Web容器的作用:,分發(fā)服務(wù)請(qǐng)求:容器分發(fā)服務(wù)請(qǐng)求給它所包含的組件,將上下文數(shù)據(jù)(如會(huì)話數(shù)據(jù)與當(dāng)前請(qǐng)求的信息)提供給組件,并且協(xié)調(diào)該組件響應(yīng)內(nèi)容的產(chǎn)生。,HTT

12、P請(qǐng)求的應(yīng)答:對(duì)于URL的HTTP請(qǐng)求翻譯成對(duì)組件實(shí)例的調(diào)用,并將基于組件所產(chǎn)生的內(nèi)容生成相應(yīng)的HTTP應(yīng)答。,5.顯示層技術(shù)-Web層,20,組件生命周期的管理:Web容器通過回叫(callback)的方式來通知組件的狀態(tài)變化如實(shí)例初始化和消亡,實(shí)現(xiàn)對(duì)其組件的生命周期管理。,5.顯示層技術(shù)-Web層,21,Servlet是一種Java平臺(tái)服務(wù)器端擴(kuò)展組件,它運(yùn)行在一個(gè)Web容器的里面。在一個(gè)Web應(yīng)用中,每一Servlet的類都被映射

13、成Web服務(wù)器中的一個(gè)或多個(gè)URL地址。當(dāng)服務(wù)器接收到對(duì)某個(gè)servlet的URL的一個(gè)HTTP請(qǐng)求(GET, POST等)的時(shí)候,服務(wù)器調(diào)用相應(yīng)的servlet的服務(wù)方法(service()),該方法產(chǎn)生此應(yīng)答的動(dòng)態(tài)內(nèi)容。,Servlet,5.顯示層技術(shù)-Web層,22,Servlets特點(diǎn),Servlets采用Java來書寫,因此能夠運(yùn)行在一個(gè)內(nèi)嵌在Web Server里面的JVM實(shí)例之上。,Servlets通常比CGI程序或腳本要

14、快,因?yàn)樗鼈冞\(yùn)行的形式是編譯過的字節(jié)碼,取代的是一個(gè)笨重的進(jìn)程或一個(gè)解釋腳本。,5.顯示層技術(shù)-Web層,23,Servlets比擴(kuò)展庫要安全,因?yàn)镴VM實(shí)例通??梢曰謴?fù)一個(gè)非正常退出的servlet 。,與服務(wù)器端腳本技術(shù)相比,servlets的移植性更好,并且它所提供的是一個(gè)更為豐富的標(biāo)準(zhǔn)服務(wù)的集合。,5.顯示層技術(shù)-Web層,24,由于Java平臺(tái)所固有的運(yùn)行時(shí)的可移植性,編譯過的servlet類具備二進(jìn)制形式的跨硬件平臺(tái)的移植性

15、; servlet與其容器之間的契約由Java Servlet規(guī)范予以定義并且由J2EE兼容測(cè)試包檢驗(yàn)過(在一個(gè)J2EE品牌的產(chǎn)品里),因此servlets也可以跨Web服務(wù)器兼容。,5.顯示層技術(shù)-Web層,25,Servlet開發(fā)人員可以創(chuàng)建能在所有J2EE品牌服務(wù)器上正確運(yùn)行的產(chǎn)品,J2EE服務(wù)器用戶可以更換技術(shù)廠商而只做很小的甚至根本就不需要更改它們的應(yīng)用代碼。,打包和部署servlets(及其它的Web層組件和資源)的規(guī)范化和

16、標(biāo)準(zhǔn)化,確保了一個(gè)Web應(yīng)用不用作任何代碼修改或重建,就可以作為一個(gè)單獨(dú)的單元部署到任何J2EE品牌的服務(wù)器里面。,5.顯示層技術(shù)-Web層,26,Servlet存在的問題,Servlets 寫起來比較冗長(zhǎng):很多產(chǎn)生HTML的servlets比起Web頁面要長(zhǎng)一些,它帶有以System.out.println()環(huán)繞的每一行、在每一個(gè)雙引號(hào)之前都有反斜線符號(hào)、并且可能一塊邏輯或這里和那里的重述。這樣的servlets寫起來比較煩悶,而且

17、讀和維護(hù)都是比較困難的。,5.顯示層技術(shù)-Web層,27,Servlets 是程序:對(duì)于所有的哪怕是最簡(jiǎn)單的情況,servlets都需要編程人員來開發(fā)和維護(hù)。程序員不必熟悉圖形設(shè)計(jì),圖形設(shè)計(jì)人員經(jīng)常不是程序員。聯(lián)合編程邏輯和先進(jìn)的可視化設(shè)計(jì)的servlets對(duì)于程序員和圖形設(shè)計(jì)人員來講,更改起來都是比較困難的。,5.顯示層技術(shù)-Web層,28,Servlet 代碼不易重用:基于HTML的Web應(yīng)用通常包括大量的重復(fù),很多使用的場(chǎng)合多次放

18、在一個(gè)Web應(yīng)用中,HTML頁面經(jīng)常包含重復(fù)的樣式元素來提供一致的外觀和感覺。但是servlet的API提供很少對(duì)于重用業(yè)務(wù)或顯示邏輯的直接支持,結(jié)果通常是剪切與粘貼式的編碼風(fēng)格犧牲了一致性與可維護(hù)性。,5.顯示層技術(shù)-Web層,29,Servlets 混合功能代碼和顯示代碼在一起:這種做法限制看起來很小,實(shí)際上它往往是所有其它問題的根源?;镜膯栴}是業(yè)務(wù)邏輯和數(shù)據(jù)表示基本上是不同的層面,將這兩者混合在一種單一的技術(shù)(既servlet)

19、導(dǎo)致的是混淆設(shè)計(jì)、實(shí)現(xiàn)和維護(hù)。,5.顯示層技術(shù)-Web層,30,Servlet的建議,使用servlets 實(shí)現(xiàn)服務(wù):除了產(chǎn)生二進(jìn)制內(nèi)容以外,servlets一般提供無可視化的功能。一個(gè)servlet可以執(zhí)行它所提供的服務(wù)—模板化、安全、個(gè)性化、MVC控制—然后選擇一個(gè)顯示組件并轉(zhuǎn)交請(qǐng)求給該組件去顯示。,5.顯示層技術(shù)-Web層,使用servlets作為控制器:一個(gè)Web層控制器,用來決定如何處理一個(gè)請(qǐng)求并選擇下一個(gè)要顯示的視圖。,31

20、,JSP,一個(gè)JSP頁面是一個(gè)模板文檔,其中包含有特殊的標(biāo)記用來執(zhí)行內(nèi)嵌的邏輯。JSP頁面可以被用來指定任何類型的動(dòng)態(tài)內(nèi)容,但是它們主要用來創(chuàng)建結(jié)構(gòu)化的內(nèi)容(如HTML, XML, XHTML, PDF)。,5.顯示層技術(shù)-Web層,32,JSP特點(diǎn),JSP頁面比servlets更容易書寫:JSP頁面看起來非常象HTML,帶有少量的附加標(biāo)記,沒有重復(fù)的println()語句或者也不需要反斜線回退字符.,5.顯示層技術(shù)-Web層,33,J

21、SP頁面不需要編程技能:JSP頁面看起來很象它生成的文檔類型,文檔格式的專家可以不是一個(gè)程序員即可以直接編輯之。任何實(shí)際的編程或多或少地從顯示代碼中分離出來,因此程序員和文檔格式專家可以相對(duì)獨(dú)立地進(jìn)行工作.,5.顯示層技術(shù)-Web層,34,JSP 頁面支持代碼的重用:JSP頁面有顯式代碼重用機(jī)制。在一JSP頁面里面有一些特殊的標(biāo)記來使用JavaBeans組件,編程人員可為其特殊的用途來定義可定制標(biāo)記。JSP標(biāo)記語言中的包括指示提供兩種文

22、檔內(nèi)容的重用:編譯時(shí)和運(yùn)行時(shí)。這些機(jī)制可以通過減少重復(fù)代碼進(jìn)而提高代碼的質(zhì)量.,5.顯示層技術(shù)-Web層,35,JSP 頁面將功能從顯示中分離開來:JSP頁面格式是一針對(duì)某一文檔的模板,其中帶有業(yè)務(wù)邏輯,該邏輯要么嵌在JSP頁面中的特殊標(biāo)記里(作為腳本元素),要么采用beans或可定制標(biāo)記。分離功能(業(yè)務(wù)邏輯)與形式(顯示)允許程序員和文檔作者集中于他們的核心技能之上。這種對(duì)開發(fā)角色的劃分是J2EE平臺(tái)的主要優(yōu)勢(shì)之一。,5.顯示技術(shù)-W

23、eb層,36,JSP工作流程 一個(gè)JSP頁面對(duì)其作者來說象一個(gè)文檔,然而Web容器實(shí)際上把JSP頁面作為servlets來實(shí)現(xiàn)。在一個(gè)JSP頁面可以運(yùn)行在一JVM實(shí)例之上時(shí),它必須被轉(zhuǎn)換成(通過一個(gè)轉(zhuǎn)換器)一個(gè)servlet,該servlet然后被編譯成一個(gè)可以裝載的類。一個(gè)JSP通常直接部署到一個(gè)Web容器之中,由容器來處理相應(yīng)的翻譯和編譯。,5.顯示層技術(shù)-Web層,37,38,JSP的建議,使用JSP頁面作為結(jié)構(gòu)文本內(nèi)容的

24、模板:JSP頁面大多數(shù)是用來生成文本的內(nèi)容通常有一致結(jié)構(gòu)的文本。JSP頁面也被用來產(chǎn)生非結(jié)構(gòu)化的文本文件。 JSP頁面通常并不適合于以下的幾種情形:創(chuàng)建二進(jìn)制內(nèi)容、激活應(yīng)用域邏輯、創(chuàng)建帶有高度可變結(jié)構(gòu)的內(nèi)容、或控制請(qǐng)求路由等等。,5.顯示層技術(shù)-Web層,39,避免對(duì)邏輯標(biāo)記的大量使用:標(biāo)準(zhǔn)標(biāo)記庫通常提供一些邏輯標(biāo)記用來循環(huán)、執(zhí)行迭代、評(píng)估表達(dá)式、作出決定等。應(yīng)該意識(shí)到使用標(biāo)準(zhǔn)標(biāo)記庫可以執(zhí)行JSP頁面中很大一部分邏輯。將邏輯放在程序以外

25、的可定制標(biāo)記之中提供的優(yōu)勢(shì)較少,并且違背了邏輯和顯示的分離原則。,5.顯示層技術(shù)-Web層,40,正確使用JSP include指示與動(dòng)作: 動(dòng)作允許將或靜態(tài)的或動(dòng)態(tài)的內(nèi)容包含進(jìn)此JSP頁面,指示通常用來模塊化Web頁面,重用內(nèi)容,并保持Web頁面的長(zhǎng)度可以被管理。如果濫用之,則使代碼膨脹。,5.顯示層技術(shù)-Web層,41,Web層狀態(tài),一個(gè)servlet、servlet過濾器或JSP頁面通常創(chuàng)建相應(yīng)的帶有包含在該服務(wù)請(qǐng)求中數(shù)據(jù)的應(yīng)答,

26、不過經(jīng)常需要來自于其它源的數(shù)據(jù)來處理它的工作。用來創(chuàng)建一個(gè)應(yīng)答數(shù)據(jù)的一個(gè)Web層組件稱為狀態(tài)(state)。Web層狀態(tài)的每一項(xiàng)都有一個(gè)范圍(scope),用來決定此項(xiàng)目的訪問型及其生命周期。,5.顯示層技術(shù)-Web層,42,應(yīng)用范圍/作用域(Application scope),應(yīng)用范圍狀態(tài)存貯在Web層的ServletContext對(duì)象中,應(yīng)用范圍中的對(duì)象在此應(yīng)用內(nèi)所有的servlets之間共享,線程安全由servlet開發(fā)人員負(fù)責(zé)

27、。應(yīng)用范圍中的狀態(tài)在應(yīng)用的生存期間一直存在,除非它被顯式地刪除。為一個(gè)Web應(yīng)用的“全局內(nèi)存”。,5.顯示層技術(shù)-Web層,43,servlet API提供將數(shù)據(jù)與一個(gè)用戶會(huì)話關(guān)聯(lián)起來的機(jī)制,在后續(xù)的請(qǐng)求過程中訪問或修改此數(shù)據(jù)。對(duì)一個(gè)HttpServlet而言的會(huì)話范圍狀態(tài)存貯在Web層的HttpSession對(duì)象(由該服務(wù)方法的HttpServletRequest參數(shù)來提供)之中。是對(duì)于特定于某一用戶會(huì)話的數(shù)據(jù)。,會(huì)話范圍(Ses

28、sion scope),5.顯示層技術(shù)-Web層,44,一個(gè)Web組件可以讀或修改在請(qǐng)求范圍內(nèi)的數(shù)據(jù)然后轉(zhuǎn)交此請(qǐng)求給另一組件。請(qǐng)求被轉(zhuǎn)交給的組件然后就可以訪問到此狀態(tài)。請(qǐng)求范圍內(nèi)的狀態(tài)存貯在一個(gè)ServletRequest對(duì)象里面,因此它可以被接收該請(qǐng)求的任何組件訪問到。特定于一個(gè)單獨(dú)的服務(wù)器請(qǐng)求的數(shù)據(jù),當(dāng)服務(wù)方法返回的時(shí)候被丟棄。,請(qǐng)求范圍(Request scope),5.顯示層技術(shù)-Web層,45,僅僅適用于JSP頁面,以指示該

29、數(shù)據(jù)僅在當(dāng)前頁面的上下文中有效。頁面范圍狀態(tài)存貯在一個(gè)JSP頁面的PageContext對(duì)象中。當(dāng)一個(gè)JSP轉(zhuǎn)交給或包含另一個(gè)的時(shí)候,每一個(gè)頁面定義它自己的范圍。頁面范圍的狀態(tài)在程序從該頁面中退出的時(shí)候被丟棄掉。,頁面范圍(Page scope),5.顯示層技術(shù)-Web層,46,Web層會(huì)話狀態(tài)的優(yōu)勢(shì),易于實(shí)現(xiàn):因?yàn)閼?yīng)用服務(wù)器處理了HttpSession的實(shí)現(xiàn),開發(fā)人員從對(duì)管理會(huì)話狀態(tài)中所需要的設(shè)計(jì)、實(shí)現(xiàn)、測(cè)試代碼的細(xì)節(jié)中解脫出來。,優(yōu)

30、化:一個(gè)應(yīng)用服務(wù)器的HttpSession的實(shí)現(xiàn)是根據(jù)它本身作了優(yōu)化和測(cè)試的,因此也許比一個(gè)客戶化的解決方案更為有效、可靠。,5.顯示層技術(shù)-Web層,47,潛在的更豐富的功能集:一個(gè)應(yīng)用服務(wù)器對(duì)于會(huì)話狀態(tài)管理的實(shí)現(xiàn)可能包括諸如故障恢復(fù)、集群支持等功能,這已超出了J2EE平臺(tái)規(guī)范的基本需求。系統(tǒng)架構(gòu)師可以區(qū)分服務(wù)器平臺(tái)所提供的功能,并選擇出最能適合當(dāng)前應(yīng)用需求的平臺(tái),與此同時(shí)維護(hù)J2EE技術(shù)的兼容性和可移植性。,5.顯示層技術(shù)-Web層

31、,48,可移植性:HttpSession接口是標(biāo)準(zhǔn)化的,因此在所有的J2EE品牌的應(yīng)用服務(wù)器中都必須通過J2EE兼容性測(cè)試包(CTS)。,可伸縮性:HttpSession可以有效地管理會(huì)話狀態(tài)的存貯,將它放在緩存和/或服務(wù)器集群之中。,5.顯示層技術(shù)-Web層,49,可進(jìn)化性(Evolvability):應(yīng)用服務(wù)器廠商會(huì)堅(jiān)持不懈地改善它們的產(chǎn)品及其功能,甚至在服務(wù)器增加某些提高性能和可靠性功能的時(shí)候,它將維護(hù)已有的接口以保證兼容性。一個(gè)

32、Http Session實(shí)現(xiàn)今天能正常工作,明天也將工作得更好,因?yàn)榉?wù)器版本的提升很少或根本就不做對(duì)源碼的修改。,5.顯示層技術(shù)-Web層,50,5.2 Web層設(shè)計(jì)問題及其指南,Web層技術(shù)選擇,5.顯示層技術(shù)- Web層設(shè)計(jì)問題及其指南,Servlets 和JSP頁面都是Web層組件,但是在設(shè)計(jì)中扮演的是不同的角色。XML可以被用來作為針對(duì)數(shù)據(jù)互操作性的“中心”格式,且可以在客戶端或服務(wù)器端以CSS或XSL的風(fēng)格進(jìn)行設(shè)計(jì)。,51,

33、何時(shí)使用JSP頁面:通常,JSP頁面大多用來作為顯示組件,在一個(gè)MVC應(yīng)用中扮演View角色,或者用來創(chuàng)建結(jié)構(gòu)化的、非可視化的內(nèi)容,如XML消息。,何時(shí)使用 servlets:Servlets主要用來作為MVC控制器組件,作為框架支持組件(諸如模板處理器、安全適配器、日志器等等),或者作為對(duì)二進(jìn)制內(nèi)容的顯示組件。,5.顯示層技術(shù)- Web層設(shè)計(jì)問題及其指南,52,在交互式Web應(yīng)用里面的XML:XML可以被使用于交互式的應(yīng)用中。一個(gè)We

34、b層控制器可以翻譯HTTP請(qǐng)求為對(duì)Web Service方法的調(diào)用,并能使用CSS、XSL或可定制代碼來轉(zhuǎn)換調(diào)用的結(jié)果為正在請(qǐng)求的客戶端的顯示格式。這種方法只有在沒有更快、更可靠、或更輕量級(jí)的方式去訪問應(yīng)用模型的時(shí)候才被建議使用,如直接訪問底層的企業(yè)級(jí)Java組件。,5.顯示層技術(shù)- Web層設(shè)計(jì)問題及其指南,53,Web層狀態(tài)維護(hù) 狀態(tài)維護(hù)決定對(duì)應(yīng)用性能、可用性、伸縮性等有著極大的影響。此類決定包括選擇相應(yīng)的層來管理狀態(tài),對(duì)狀

35、態(tài)的每一項(xiàng)選擇相應(yīng)的作用范圍,并且有效地跟蹤一分布式環(huán)境下的對(duì)話狀態(tài)。,5.顯示層技術(shù)- Web層設(shè)計(jì)問題及其指南,54,Web層設(shè)計(jì)指南,可維護(hù)性客戶端獨(dú)立性及代碼重用隔離開發(fā)人員的技能集,將業(yè)務(wù)邏輯從顯示邏輯中分離出來:,5.顯示層技術(shù)- Web層設(shè)計(jì)問題及其指南,55,在一個(gè)應(yīng)用設(shè)計(jì)中創(chuàng)建業(yè)務(wù)和顯示層是一個(gè)很好的習(xí)慣。業(yè)務(wù)層只提供應(yīng)用功能而不會(huì)有對(duì)顯示的引用,顯示層為用戶(或另一系統(tǒng))顯示數(shù)據(jù)與輸入提示,委托應(yīng)用功能給業(yè)務(wù)層。

36、業(yè)務(wù)規(guī)則能夠在一個(gè)層中被修改,而對(duì)顯示層作很少或根本不作修改。應(yīng)用的顯示或工作流程可以改變而不會(huì)影響業(yè)務(wù)邏輯代碼。,5.顯示層技術(shù)- Web層設(shè)計(jì)問題及其指南,56,將協(xié)議置于模型API之外,一個(gè)模型類應(yīng)該在一個(gè)Web容器外是可用的。對(duì)Web容器的模型依賴導(dǎo)致不必要的耦合,降低設(shè)計(jì)清晰性并使維護(hù)和單元測(cè)試更為困難。,5.顯示層技術(shù)- Web層設(shè)計(jì)問題及其指南,57,5.3 Web應(yīng)用程序部署,Web應(yīng)用是一個(gè)Servlet、HTML頁面

37、、類和其它資源的組合,應(yīng)包含如下組件。,Web應(yīng)用組件構(gòu)成,5.顯示層技術(shù)- Web應(yīng)用程序部署,58,Servlet JSP實(shí)用程序類靜態(tài)文檔(HTML、圖片和聲音等)客戶端的Applet、Bean和類等描述性的元信息,用于把上面的所有組件組合到一起,5.顯示層技術(shù)- Web應(yīng)用程序部署,59,設(shè)置J2EE服務(wù)器環(huán)境變量:為運(yùn)行J2EE服務(wù)器環(huán)境通常必須設(shè)置環(huán)境變量,而且不同的廠家實(shí)現(xiàn)和操作系統(tǒng)平臺(tái)上會(huì)有很大變化。,配置J2

38、EE服務(wù)器屬性:為大部分J2EE服務(wù)器實(shí)現(xiàn)配置屬性,使其適合于特定的網(wǎng)絡(luò)和操作環(huán)境。,Web應(yīng)用部署,5.顯示層技術(shù)- Web應(yīng)用程序部署,60,編譯J2EE應(yīng)用程序代碼:所有J2EE Web組件代碼必須用標(biāo)準(zhǔn)的Java編譯器編譯。,創(chuàng)建J2EE Web應(yīng)用程序部署描述符:根據(jù)以前定義的Web應(yīng)用程序DTD創(chuàng)建一個(gè)基于XML的發(fā)布描述符。,5.顯示層技術(shù)- Web應(yīng)用程序部署,61,封裝J2EE Web應(yīng)用程序代碼: Web發(fā)布描述符、

39、所有編譯好的J2EE Servlet類、所有HTML文件、所有圖形文件以及其它Web資源需要封裝到一個(gè)帶.war擴(kuò)展名的Web應(yīng)用程序歸檔文件中。,5.顯示層技術(shù)- Web應(yīng)用程序部署,62,啟動(dòng)J2EE服務(wù)器:這一步要啟動(dòng)J2EE兼容的服務(wù)器。啟動(dòng)服務(wù)器的機(jī)制通常與廠家有關(guān),但也可以簡(jiǎn)單到在命令行中激發(fā)單一的啟動(dòng)命令。,創(chuàng)建一個(gè)J2EE應(yīng)用程序描述符:必須創(chuàng)建一個(gè)J2EE應(yīng)用程序部署描述符把一個(gè)或多個(gè)Web、EJB和應(yīng)用程序客戶模塊連

40、接到J2EE應(yīng)用程序中。,5.顯示層技術(shù)- Web應(yīng)用程序部署,63,封裝J2EE應(yīng)用程序代碼:應(yīng)用程序部署描述符、Web應(yīng)用程序、EJB應(yīng)用程序和應(yīng)用程序客戶需要封裝到一個(gè)企業(yè)級(jí)歸檔(EAR)文件中,擴(kuò)展名為.ear 。,發(fā)布J2EE Web應(yīng)用程序代碼:最后,集成J2EE應(yīng)用程序部署到J2EE服務(wù)器環(huán)境中供企業(yè)應(yīng)用程序客戶訪問。,5.顯示層技術(shù)- Web應(yīng)用程序部署,64,5.3 客戶層,對(duì)一個(gè)企業(yè)級(jí)應(yīng)用的用戶,客戶端就是應(yīng)用???/p>

41、戶端代表用戶向服務(wù)器發(fā)出請(qǐng)求,并將請(qǐng)求的結(jié)果顯示給用戶。客戶端經(jīng)常加強(qiáng)數(shù)據(jù)的一致性規(guī)則,并可能實(shí)現(xiàn)一些業(yè)務(wù)邏輯。因此,挑選一種能最好地適合應(yīng)用的需求且提供給用戶一個(gè)豐富接口的客戶端配置是很重要的。,5.顯示層技術(shù)-Web層,65,運(yùn)行設(shè)備:一個(gè)便攜機(jī)、一個(gè)臺(tái)式機(jī),或在一個(gè)PDA或電話上。,J2EE平臺(tái)支持的客戶端,網(wǎng)絡(luò)環(huán)境:從一個(gè)企業(yè)的Intrnet或互聯(lián)網(wǎng)可以連接到一個(gè)有線或無線的網(wǎng)絡(luò)。,網(wǎng)絡(luò)環(huán)境:從一個(gè)企業(yè)的Intrnet或互聯(lián)網(wǎng)可

42、以連接到一個(gè)有線或無線的網(wǎng)絡(luò)。,5.顯示層技術(shù)-Web層,66,顯示方式:瀏覽器、GUI組件,實(shí)現(xiàn)方式:HTML或Java,甚至可以是Visual Basic。,實(shí)現(xiàn)功能:企業(yè)信息系統(tǒng)(EIS)客戶端:EIS客戶端使用一種接口(如JDBC API等)連接到EIS層。針對(duì)EIS的編程模型通常遵循兩層或三層客戶機(jī)/服務(wù)器體系結(jié)構(gòu)的規(guī)范。,5.顯示層技術(shù)-Web層,67,EJB客戶端:使用Java技術(shù)的EJB 客戶端通過RMI(遠(yuǎn)程方法調(diào)用

43、)API來連接到EJB層。這種情況下,傳輸?shù)膮f(xié)議為IIOP(Inter-ORB Protocol)。RMI機(jī)制為Java客戶端開發(fā)人員隱藏了IIOP的細(xì)節(jié),但是使用非Java技術(shù)的開發(fā)人員也可以通過IIOP連接到EJB層。,5.顯示層技術(shù)-Web層,68,Web客戶端:Web客戶端使用HTTP作為傳輸協(xié)議連接到Web層。Web客戶端的類型不僅包括瀏覽器,而且包括Java Applets、MIDIets和應(yīng)用以及其它的企業(yè)服務(wù)。,5.顯示

44、層技術(shù)-Web層,69,服務(wù)器端體系結(jié)構(gòu):在Web上最簡(jiǎn)單和最常用的體系結(jié)構(gòu)是完全依靠服務(wù)器來提供用戶界面內(nèi)容、它的構(gòu)造邏輯以及與用戶的相互作用。每一個(gè)用戶動(dòng)作都產(chǎn)生一個(gè)對(duì)服務(wù)器的請(qǐng)求,服務(wù)器處理這個(gè)請(qǐng)求并計(jì)算結(jié)果,生成一個(gè)新的頁面再次發(fā)送到客戶端。,客戶端三種體系結(jié)構(gòu),5.顯示層技術(shù)-Web層,70,,,,用戶動(dòng)作,內(nèi)容和控制的產(chǎn)生,瀏覽器,客戶機(jī),響應(yīng),請(qǐng)求,內(nèi)容構(gòu)建,業(yè)務(wù)邏輯,控制邏輯,服務(wù)器,,,,,,服務(wù)器端體系結(jié)構(gòu),好處:所

45、需客戶端資源少,應(yīng)用邏輯不用裝入,啟動(dòng)用戶交互所需的網(wǎng)絡(luò)通信量很少。支持的技術(shù)包括Java Servlet,JavaServer Pages。,71,客戶端腳本體系結(jié)構(gòu):該方式就是將腳本作為HTML頁面的一部分,將動(dòng)態(tài)內(nèi)容從服務(wù)器傳送給客戶端。腳本通常包括一些不需與服務(wù)器應(yīng)用程序通信就能在客戶端執(zhí)行的應(yīng)用邏輯。復(fù)雜邏輯仍然由服務(wù)器執(zhí)行。,5.顯示層技術(shù)-Web層,72,客戶端腳本體系結(jié)構(gòu),,,,用戶請(qǐng)求頁面切換,頁面/簡(jiǎn)單控制邏輯,瀏覽

46、器,客戶機(jī),響應(yīng),內(nèi)容構(gòu)建+邏輯嵌入,商業(yè)邏輯,切換/復(fù)雜控制邏輯,服務(wù)器,,,,產(chǎn)生,,,內(nèi)容修改,,73,客戶端應(yīng)用體系結(jié)構(gòu):提供一個(gè)運(yùn)行在客戶端的功能完全的應(yīng)用程序。用戶可以下載這個(gè)程序,此后它將控制用戶的交互和內(nèi)容構(gòu)造。當(dāng)服務(wù)器上的業(yè)務(wù)邏輯必須初始化時(shí),通信才成為必要。 好處:將用戶界面和業(yè)務(wù)邏輯的區(qū)別去掉了;和用戶交互時(shí)于服務(wù)器的通信很少;Web頁面可離線瀏覽;不需要很多服務(wù)器資源。,5.顯示層技術(shù)-Web層,74,

47、客戶端應(yīng)用體系結(jié)構(gòu),75,設(shè)置J2EE服務(wù)器環(huán)境變量:為運(yùn)行J2EE服務(wù)器環(huán)境通常必須設(shè)置環(huán)境變量,而且不同的廠家實(shí)現(xiàn)和操作系統(tǒng)平臺(tái)上會(huì)有很大變化。,配置J2EE服務(wù)器屬性:為大部分J2EE服務(wù)器實(shí)現(xiàn)配置屬性,使其適合于特定的網(wǎng)絡(luò)和操作環(huán)境。,Web應(yīng)用部署,5.顯示層技術(shù)-Web層,76,客戶層的實(shí)現(xiàn)J2EE平臺(tái)一般鼓勵(lì)“瘦客戶端”配置,因?yàn)榻M件模型將繁重的功能如業(yè)務(wù)操作和述訪問交給服務(wù)器進(jìn)行處理。這并不是說,J2EE客戶端就是啞終

48、端;一個(gè)J2EE 應(yīng)用客戶端可以處理一系列的事情,如消息、顯示、輸入校驗(yàn)和會(huì)話管理。,5.顯示層技術(shù)-Web層,77,Web瀏覽器:瀏覽器是J2EE客戶端最簡(jiǎn)單的一種類型。它們顯示以某些標(biāo)記語言來書寫的文檔,該標(biāo)記語言指定要顯示的數(shù)據(jù)以及那些數(shù)據(jù)該怎樣被顯示。,Java applet客戶端: Java applet客戶端是用戶接口組件典型地在一個(gè)Web瀏覽器內(nèi)執(zhí)行,盡管它們可以在多種支持applet編程模型的其它應(yīng)用或設(shè)備中執(zhí)行。,5.

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論