国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

J2EE1.4的多層Web框架技術(shù)

2019-11-18 12:30:44
字體:
供稿:網(wǎng)友

  Sun的java 2 EnterPRise Edition(J2EE)平臺已經(jīng)成為使用最廣泛的Web程序設(shè)計技術(shù),最近幾年,J2EE Web程序的開發(fā)已經(jīng)成為信息系統(tǒng)的要害。
  
  J2EE1.4的多層Web框架技術(shù)
  
  J2EE為多層Web應(yīng)用系統(tǒng)提供了容器平臺。在這里,容器概念實際是指應(yīng)用服務(wù)器提供的特定功能的軟件模塊,用戶所開發(fā)的程序構(gòu)件要在容器內(nèi)運行,構(gòu)件和容器的關(guān)系有些像計算機插件和主板的關(guān)系;程序構(gòu)件在部署時被安裝在容器里,容器是能提供基本功能的底層平臺,它們之間通過接口進行通信;一般Web程序開發(fā)者只要開發(fā)出滿足其需要的程序構(gòu)件并能安裝在容器中就夠了,程序構(gòu)件的安裝過程包括設(shè)置各個構(gòu)件在J2EE應(yīng)用服務(wù)器中的參數(shù)以及設(shè)置J2EE應(yīng)用服務(wù)器本身。這些設(shè)置決定了在底層由J2EE服務(wù)器提供的多種服務(wù)(譬如安全、交易治理、JNDI查尋和遠(yuǎn)程調(diào)用等)。
  
  J2EE應(yīng)用框架使同樣的程序構(gòu)件在一個Web程序之內(nèi)能夠根據(jù)其部署的方式實現(xiàn)不同的功能。例如,同樣的Enterprise JavaBean可以采用不同等級的數(shù)據(jù)庫數(shù)據(jù)存取安全設(shè)置,J2EE容器還負(fù)責(zé)治理某些基本的服務(wù),譬如構(gòu)件的生命周期、數(shù)據(jù)庫連接資源共享、數(shù)據(jù)持久性(data persistency)。 
  
  J2EE1.4的多層Web框架技術(shù)
  
  圖1 多層次結(jié)構(gòu)Web程序框架
  
  正如圖1所描述的,J2EE 1.4應(yīng)用平臺由以下幾種類型的程序容器(container)組成:Enterprise JavaBeans(EJB)容器負(fù)責(zé)所有EJB的運行,EJB根據(jù)功能可以分為session bean(通常稱為會話bean,稱之為會話期間bean更確切),entity bean(實體 bean),message-drivenbean(消息驅(qū)動bean)。這一層主要負(fù)責(zé)數(shù)據(jù)處理以及和數(shù)據(jù)庫或其他Java程序的通信,它對應(yīng)多層結(jié)構(gòu)的業(yè)務(wù)層和數(shù)據(jù)訪問層,Web容器治理所有jsp,JSTL和servlet等Web構(gòu)件的運行,這些構(gòu)件主要負(fù)責(zé)程序和Web的通信,這一層對應(yīng)多層結(jié)構(gòu)中的表示層。應(yīng)用客戶端容器負(fù)責(zé)所有Web程序在客戶端構(gòu)件的運行;Applet容器可以看作非凡的應(yīng)用客戶端容器。它負(fù)責(zé)在Web瀏覽器和Java插件(Java Plug-in)上運行Java Applet程序(Applet是一種簡化并具有安全保護的Java小程序),應(yīng)用客戶端容器和Applet程序容器基本對應(yīng)多層結(jié)構(gòu)中的用戶接口層;每種容器內(nèi)都使用相關(guān)的各種Java Web編程技術(shù),這些技術(shù)包括三類:
  
  J2EE各種不同的應(yīng)用構(gòu)件(如Servlet,JSP,EJB),它們構(gòu)成了應(yīng)用的主體。
  
  J2EE平臺提供的應(yīng)用服務(wù)(如JDBC,JTS,JNDI),這些服務(wù)保證并促進構(gòu)件的良好運行。
  
  J2EE的應(yīng)用通信技術(shù)(如RMI,JMS,JavaMail)在平臺底層實現(xiàn)機器和程序之間的信息傳遞。
  
  1、構(gòu)件技術(shù)
  
  "構(gòu)件"這一概念是指在應(yīng)用程序中能發(fā)揮特定功能的軟件單位。簡單地說,就是幾種特定的Java程序,這些程序有固定的格式和編寫方法,它們的功能和使用方式在一定程度上被標(biāo)準(zhǔn)化了;最基本的Java構(gòu)件是在Java標(biāo)準(zhǔn)版(Java 2 Standard Edition)中的JavaBean,它是按照特定格式編寫的Java類文件。JavaBeans包括實例變量(Instance Variable()和get(),set()的方法來訪問實例變量的數(shù)據(jù)。這種格式大大簡化了程序設(shè)計。J2EE的構(gòu)件在JavaBeans基礎(chǔ)上進行了拓展。由于Web編程比較復(fù)雜,J2EE提供了更多應(yīng)用構(gòu)件,主要包括三類:客戶端的Applet和程序客戶;Web容器內(nèi)的JSP,Servlet,JSTL等構(gòu)件;企業(yè)Java Beans容器內(nèi)的EJB構(gòu)件和資源連接構(gòu)件。
  
  1)J2EE的客戶
  
  J2EE Web應(yīng)用可以和多種客戶端程序連接。這些客戶主要包括以下部分:Web客戶端包括動態(tài)生成的網(wǎng)頁(包含各種各樣的類型標(biāo)注語,如Html,xml等),以及在客戶機上運行的Web瀏覽器。Web瀏覽器(如Internet EXPlorer,Netscape)以標(biāo)準(zhǔn)格式顯示從服務(wù)器傳遞來的網(wǎng)頁。不管J2EE應(yīng)用服務(wù)器早怎樣生成這些網(wǎng)頁的,它們被傳遞給瀏覽器時已經(jīng)是HTML或XML格式,瀏覽器只是正確地顯示給用戶。所以,有時Web客戶端被稱為"瘦客戶",瘦客戶不承擔(dān)復(fù)雜的數(shù)據(jù)檢索和計算任務(wù),這些復(fù)雜而耗時的操作在J2EE服務(wù)器端Web容器和EJB容器內(nèi)進行。這樣保證了"客戶-服務(wù)器"結(jié)構(gòu)的優(yōu)勢,降低了Web流量。
  
  Applet是基于Java的小型客戶端構(gòu)件。它一般在Web瀏覽器上運行,通過HTTP協(xié)議和服務(wù)器進行通信。從服務(wù)器傳給瀏覽器的網(wǎng)頁可能包括嵌入的Applet程序;這些Applet程序在瀏覽器所安裝的Java虛擬機(Java virtual machine)上執(zhí)行。這要求客戶機的瀏覽器事先安裝Java Plug-in和有關(guān)安全許可文件。
  
  Web客戶端程序和Applet各有優(yōu)點。Web客戶程序(就是用網(wǎng)頁)更簡單和普遍,因為它不需要安裝Java Plug-In,也無須操心客戶程序運行的安全問題。并且,Web客戶程序使編程和網(wǎng)頁設(shè)計分離,這樣保證了程序設(shè)計的模塊化。會作漂亮的網(wǎng)頁的人員因而不需要了解Java編程語法。Applet更適合復(fù)雜的客戶界面。
  
  由于Applet更接近Java編程,許多專業(yè)人員更擅長利用Java豐富的功能(API)來進行客戶端編程。假如使用得法,Applet界面會更快速和靈活。比如,美國一家非常受歡迎的股票交易公司Datek就推出了使用Applet為界面的網(wǎng)上股票交易工具,無須用戶點擊圖標(biāo)和按鍵,它能夠隨時更新股票的交易分析數(shù)據(jù)和曲線。
  
  客戶應(yīng)用程序是指在客戶機上運行的J2EE程序。它為用戶提供了豐富的界面(如JavaSwing,AWT)和復(fù)雜的操作。客戶應(yīng)用程序直接訪問在服務(wù)器EJB容器內(nèi)的EJB程序。當(dāng)然,J2EE客戶應(yīng)用程序也可像Applet客戶那樣以HTTP連接和服務(wù)器的Servlet通信。與Applet不同的是,客戶應(yīng)用程甀不同等??據(jù)????取安全設(shè)置,J2EE容器還負(fù)責(zé)治理某些基本的服務(wù),譬如構(gòu)件的生命周期、數(shù)據(jù)庫連接資源共享、數(shù)據(jù)持久性(data persistency)。 
  序一般需要在客戶端進行安裝,而Applet是在Web上下載,無須專門安裝。一般來說,客戶應(yīng)用程序適合在企業(yè)內(nèi)部網(wǎng)中使用,Applet適合在WWW上使用。
  
  Java Web Start客戶是基于JFC/Swing API的,適合J2EE程序使用的客戶應(yīng)用,它基于比較新的Java Web Start技術(shù)。這種技術(shù)主要提供了網(wǎng)上的快捷程序下載和安裝方式。Java Web Start兼有Applet和客戶應(yīng)用程序的優(yōu)點,但設(shè)置起來有些復(fù)雜。
  
  無線客戶基于移動信息設(shè)備定型技術(shù)(Mobile Information Device Profile)。Java微型版(Java 2 Micro Edition)提供了MIDP的API和有限連接設(shè)備配置(Connected Limited Device Configuration)技術(shù)。這些技術(shù)可以使無線設(shè)備(如手機,PDA)同J2EE程序進行通信。
  
  2)Web構(gòu)件
  
  Web構(gòu)件是在J2EE Web容器上運行的軟件程序。Web容器主要支持多層結(jié)構(gòu)的表示層。它的功能是在HTTP協(xié)議上對Web請求(request)進行響應(yīng)(response)。這些所謂響應(yīng)其實就是動態(tài)生成的網(wǎng)頁。用戶每在瀏覽器上點擊一個鏈接或圖標(biāo),實際上是通過Web向服務(wù)器發(fā)出請求。J2EE平臺的Web構(gòu)件對這些請求進行處理后回復(fù)給客戶相應(yīng)的HTML或XML文件。
  
  J2EE Web構(gòu)件包括servlet,Java Server Page(JSP)和Java Server Pages Standard Tag Library(JSTL)。
  
  Servlet是Java動態(tài)處理HTTP請求和生成網(wǎng)頁的類(class)。每個servlet就是一個在J2EE應(yīng)用服務(wù)器Web容器(又稱Web服務(wù)器)里的程序構(gòu)件。這種構(gòu)件有效地利用了Web服務(wù)器的HTTP通信功能。Web服務(wù)器負(fù)責(zé)將Web請求傳遞給servlet。
  
  Web服務(wù)器內(nèi)部根據(jù)用戶要求的統(tǒng)一資源定位器(URL,即通常所說的網(wǎng)址)查找到對應(yīng)的servlet,然后將servlet處理生成的HTML或XML文件以HTTP形式反饋給客戶。Web程序開發(fā)人員主要編寫servlet類程序無須關(guān)心Web服務(wù)器的運作細(xì)節(jié),編寫servlet的程序員用servlet API進行以下工作:初始化和結(jié)束servlet;連接servlet的運行環(huán)境;接收或傳遞Web請求,發(fā)送Web反應(yīng);維護和治理客戶會話(session);和其他Web構(gòu)件協(xié)同工作;使用過濾器對Web請求和響應(yīng)進行處理;實現(xiàn)Web安全治理。
  
  JSP可以說是servlet的變形,它像是文本格式的servlet,它的寫法有些像寫網(wǎng)頁,這樣就為應(yīng)用開發(fā)者(非凡是不熟悉Java語言的)提供了方便,JSP在Web容器內(nèi)會被自動編譯為servlet,編寫JSP比編寫servlet程序更簡潔;一個JSP文件包括兩類成分:生成HTML或XML模板和處理動態(tài)內(nèi)容的JSP元素。JSP開發(fā)者假如只改變網(wǎng)頁外觀,他們只要對JSP內(nèi)的模板進行編輯而不用改動JSP元素。JSP元素主要用于生成動態(tài)內(nèi)容或調(diào)用底層EJB構(gòu)件,Servlet編程將二者混在一起,而JSP就清楚多了,JSTL將常用的JSP功能封裝成為簡單的標(biāo)簽(tag)。熟悉HTML網(wǎng)頁編程的人知道,網(wǎng)頁是由各種有標(biāo)簽的文字組成的,各種標(biāo)簽(如表格、字體)的寫法基本固定。JSTL采用了相似的概念設(shè)計JSP。例如,設(shè)計者不必自己用JSP寫一個能連接數(shù)據(jù)庫的JSP文件,可以用現(xiàn)成的JSTL標(biāo)簽來進行數(shù)據(jù)庫連接。這種JSTL標(biāo)簽是最優(yōu)化和標(biāo)準(zhǔn)化的,任何種類的Web服務(wù)器都會支持,這樣就省去了不少JSP的麻煩;JSTL目前提供基本的JSP功能,仍在不斷擴充中。
  
  3)企業(yè)JavaBeans(EJB)構(gòu)件
  
  EJB容器用于實現(xiàn)企業(yè)業(yè)務(wù)操作的程序,它在多層結(jié)構(gòu)中處于業(yè)務(wù)層和數(shù)據(jù)訪問層。這里我們引入"業(yè)務(wù)邏輯"這個概念。在J2EE編程中,業(yè)務(wù)邏輯指非凡企業(yè)領(lǐng)域?qū)?shù)據(jù)的處理需求,譬如銀行業(yè)務(wù)、零售或財務(wù)等,簡單說就是企業(yè)程序中的數(shù)據(jù)結(jié)構(gòu)和算法。業(yè)務(wù)邏輯因企業(yè)的業(yè)務(wù)性質(zhì)而異,它由EJB構(gòu)件在J2EE Web程序中實現(xiàn),EJB構(gòu)件能夠從客戶端或Web容器中收到數(shù)據(jù)并將處理過的數(shù)據(jù)傳送到企業(yè)信息系統(tǒng)來存儲,EJB還能夠從數(shù)據(jù)庫檢索數(shù)據(jù)并送回到客戶端;由于EJB依靠J2EE容器進行底層操作,使用EJB構(gòu)件編寫的程序具有良好的擴展性和安全性。
  
  J2EE 1.4版有三種EJB構(gòu)件:session bean(會話bean),entity bean(實體bean)和message-drivenbea

上一篇:J2EE的概念

下一篇:J2EE的核心API與組件

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 昭通市| 中卫市| 武隆县| 桐柏县| 巴林左旗| 望奎县| 延庆县| 石屏县| 芜湖县| 喀喇沁旗| 无棣县| 郓城县| 土默特左旗| 灵寿县| 敦煌市| 峨眉山市| 石河子市| 祁东县| 西青区| 西林县| 承德县| 张家界市| 苍南县| 江安县| 康保县| 闽清县| 新宁县| 梁山县| 烟台市| 莆田市| 南平市| 哈尔滨市| 应用必备| 临城县| 开封市| 土默特右旗| 云浮市| 阳江市| 山东省| 南部县| 浠水县|