web應(yīng)用程序運行原理_第1頁
web應(yīng)用程序運行原理_第2頁
web應(yīng)用程序運行原理_第3頁
web應(yīng)用程序運行原理_第4頁
web應(yīng)用程序運行原理_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、WEB應(yīng)用程序介紹Web應(yīng)用程序就是一種通過互聯(lián)網(wǎng)能夠讓Web瀏覽器和服務(wù)器通訊的計算機程序。不同于靜態(tài)Web站點通過使用計算機程序來實現(xiàn)動運行Web程序所需要的最基本的網(wǎng)站的,Web應(yīng)用程序動態(tài)創(chuàng)建頁面。采用動態(tài)方式生成的態(tài)的特性。這種動態(tài)的應(yīng)用程序可以用各種計算機語言來編寫。組成部分有:網(wǎng)頁,Web服務(wù)器,客戶端瀏覽器以及在客戶端和Web服務(wù)端提供通訊的HTTP是我們想要向用戶展示的信息;網(wǎng)頁的結(jié)構(gòu)部網(wǎng)頁的表現(xiàn)部分,可以理解為對網(wǎng)頁的內(nèi)容進行格協(xié)議。網(wǎng)頁:網(wǎng)頁的具體組成分為網(wǎng)頁的內(nèi)容,分,可以理解為對網(wǎng)頁的內(nèi)容進行排版;式化;最后是網(wǎng)頁的行為部分,就是網(wǎng)頁需要實現(xiàn)的功能,如與用戶交互,響應(yīng)

2、鼠標或者按鍵事件等。Web服務(wù)器:Web服務(wù)器實際上是一種連接在Internet上的計算機軟件。它負責Web瀏覽器提交的文本請求。是用來存放我們編寫好的網(wǎng)頁并監(jiān)聽端口。Web工作原理:簡單的講就是先把編寫好的網(wǎng)頁存在服務(wù)器上,服務(wù)器監(jiān)聽發(fā)送過來的HTTP請求,和客戶端建立一個連接,接收到客戶端的請求之后,把用戶需要的內(nèi)容封裝成HTTP請求發(fā)送給客戶端,然后斷開與客戶端的連接,之后客戶端的瀏覽器解析HTML,顯示網(wǎng)頁內(nèi)容。HTTP協(xié)議:該協(xié)議描述了Client和Server之間請求和響應(yīng)的過程:Client在本地主機向運行于遠程主機上的Server請求鏈接,連接成功之后通過GET來訪問Serve

3、r端對象(可以是普通網(wǎng)頁,也可以是通過CGI或ISAPI生成的動態(tài)頁面),Server端在連接終止之前將請求的對象或者是錯誤消息返回給Client,結(jié)束響應(yīng)過程。JAVAWEB應(yīng)用程序結(jié)構(gòu):1、頁面中心結(jié)構(gòu):瀏覽器對JSP頁面的直接請求調(diào)用,JSP中直接包含了處理各種業(yè)務(wù)的邏輯代碼,其結(jié)構(gòu)圖如圖所示:該種結(jié)構(gòu)的特點是大量的Javascriptlet代碼直接嵌入JSP頁面中,對于較為簡單的應(yīng)用程序,不失為一種直接簡便的方法,但是此種方法減少了模塊重用的機會,且不利于角色功能的劃分。于是,我們將處理后臺資源的邏輯代碼用Bean進行封裝,發(fā)展成為帶Bean的頁面中心結(jié)構(gòu):帶Bean的頁面中心結(jié)構(gòu)再結(jié)

4、合自定義標志,確實可將一部分代碼從JSP中移出,獲得較為干凈的JSP,但是此種結(jié)構(gòu)隨著其功能的增加,層次變得不夠清晰,其擴展性也變得較差,不利于維護。2、MVC結(jié)構(gòu)MVC即模型視圖控制器(Model-View-Control),這3個組件映射到3個主要的實現(xiàn)技術(shù)Bean.JSP以及Servlet。模型視圖后臺資潭控制器模型執(zhí)行業(yè)務(wù)邏輯的功能,比如保存處理數(shù)據(jù)、與數(shù)據(jù)庫連接、拼裝SQL語句等。視圖執(zhí)行顯示邏輯的功能,即將獲取的數(shù)據(jù)動態(tài)顯示于網(wǎng)頁上??刂破魇悄P秃鸵晥D的粘和劑,向模型和視圖提供邏輯處理層和授權(quán),即對不同事件調(diào)用相應(yīng)的視圖和模型。下面結(jié)合上圖分析基于MVC結(jié)構(gòu)的應(yīng)用程序在處理用戶請求

5、時的具體步驟:瀏覽器發(fā)出服務(wù)請求,該請求轉(zhuǎn)發(fā)給控制器;控制器在檢查用戶請求的參數(shù)后,初始化并調(diào)用相應(yīng)的業(yè)務(wù)組件來處理請求,該業(yè)務(wù)組件就叫做模型;模型含有處理該用戶請求的所有業(yè)務(wù)規(guī)則,它與后臺資源進行交互,并將提取的信息包裝起來返回給控制器;控制器接收從模型返回的數(shù)據(jù),并選擇顯示數(shù)據(jù)的結(jié)果頁面,即是視圖;控制器在處理完請求后將結(jié)果返回給瀏覽器較流行的結(jié)構(gòu):struts負責顯示層,hibernate負責持久層,spring負責中間的業(yè)務(wù)層。jsp和servlet的關(guān)系一.Servlet是什么客戶機/服務(wù)器計算的發(fā)展。Java提供了一整套客戶機/服務(wù)器解決方案,在這個方案中,程序可以自動地下載到客戶

6、端并執(zhí)行,這就是applet。但是它僅僅是問題的一半。問題的另一半就是Servlet。servlet可以被認為是服務(wù)器端的applet,是用Java編寫的服務(wù)器端程序,由服務(wù)器端調(diào)用和執(zhí)行的任何Java類。servlet被Web服務(wù)器加載和執(zhí)行,就如同applet被瀏覽器加載和執(zhí)行一樣。servlet從客戶端(通過Web服務(wù)器)接收請求,執(zhí)行某種作業(yè),然后返回結(jié)果。servlet的工作流程如下:1、客戶端通過HTTP提出請求。2、Web服務(wù)器接收該請求并將其發(fā)給servlet。如果這個servlet尚未被加載,Web服務(wù)器將把它加載到Java虛擬機并且執(zhí)行它。3、servlet將接收該HTTP

7、請求并執(zhí)行某種處理。4、servlet將向Web服務(wù)器返回應(yīng)答。5、Web服務(wù)器將從servlet收到的應(yīng)答發(fā)送給客戶端。二、Web瀏覽器并不直接和servlet通信,servlet是由Web服務(wù)器加載和執(zhí)行的。Servlet的結(jié)構(gòu)在ServletAPI中最重要的是Servletinterface.所有的servletsimplement(執(zhí)行)這個interface,方式多種:或者是直接的,或者通過extending這個class執(zhí)行它。當一個servlet接收來自客戶端的調(diào)用請求,它接收兩個對象:一個是ServletRequest,另外一個是ServletResponse。ServletR

8、equestclass概括從客戶端到服務(wù)器之間的聯(lián)系,而ServletResponseclass概括從servlet返回客戶端的聯(lián)系。ServletRequestinterface可以獲取到這樣一些信息如由客戶端傳送的闡述名稱,客戶端正在使用的協(xié)議,產(chǎn)生請求并且接收請求的服務(wù)器遠端主機名。它也提供獲取數(shù)據(jù)流的servlet:ServletInputStream,這些數(shù)據(jù)是客戶端引用中使用HTTPPOST和PUT方法遞交的。一個ServletReque的子類可以讓servlet獲取更多的協(xié)議特性數(shù)據(jù).例如:HttpServletRequest包含獲取HTTP-specific頭部信息的方法。Se

9、rvletResponseinterface給出相應(yīng)客戶端的servlet方法。它允許servlet設(shè)置內(nèi)容長度和回應(yīng)的mime類型,并且提供輸出流:ServletOutputStream,可以發(fā)回相應(yīng)數(shù)據(jù)。ServletResponse子類可以給出更多protocol-specific容量的信息。例如:HttpServletResponse包含允許servlet操作HTTP-specific頭部信息的方法。三、servlet的主要功能創(chuàng)建并返回一個包含基于客戶請求性質(zhì)的動態(tài)內(nèi)容的完整的HTML頁面。創(chuàng)建可嵌入到現(xiàn)有HTML頁面中的一部分HTML頁面(HTML片段)。與其它服務(wù)器資源(包括數(shù)據(jù)

10、庫和基于Java的應(yīng)用程序)進行通信。用多個客戶機處理連接,接收多個客戶機的輸入,并將結(jié)果廣播到多個客戶機上。例如,Servlet可以是多參與者的游戲服務(wù)器。當允許在單連接方式下傳送數(shù)據(jù)的情況下,在瀏覽器上打開服務(wù)器至applet的新連接,并將該連接保持在打開狀態(tài)。當允許客戶機和服務(wù)器簡單、高效地執(zhí)行會話的情況下,applet也可以啟動客戶瀏覽器和服務(wù)器之間的連接??梢酝ㄟ^定制協(xié)議或標準(如IIOP)進行通信。對特殊的處理采用MIME類型過濾數(shù)據(jù)。將定制的處理提供給所有服務(wù)器的標準例行程序。例如,Servlet可以修改如何認證用戶。四、JSP是什么?JSP是一種腳本語言,包裝了JavaServ

11、let系統(tǒng)的界面,簡化了Java和Servlet的使用難度,同時通過擴展JSP標簽(TAG)提供了網(wǎng)頁動態(tài)執(zhí)行的能力。盡管如此,JSP仍沒有超出Java和Servlet的范圍,不僅JSP頁面上可以直接寫Java代碼,而且JSP是先被譯成Servlet之后才實際運行的。JSP在服務(wù)器上執(zhí)行,并將執(zhí)行結(jié)果輸出到客戶端瀏覽器,我們可以說基本上與瀏覽器無關(guān)。它是與JavaScript不同的,JavaScript是在客戶端的腳本語言,在客戶端執(zhí)行,與服務(wù)器無關(guān)。JSP的工作流程如下圖:browserServletContainerEnterpriseInformationSystans(EK)五、JSP

12、和Servlet的區(qū)別與聯(lián)系JSP與Servlet之間的主要差異在于,JSP提供了一套簡單的標簽,和HTML融合的比較好,可以使不了解Servlet的人可以做出動態(tài)網(wǎng)頁來。JSP修改后可以立即看到結(jié)果,不需要手工編譯,JSP引擎會來做這些工作;而Servelt則需要編譯,重新啟動Servlet引擎等一系列動作。JSP引擎通常架構(gòu)在Servlet引擎之上,本身就是一個Servlet。在JSP頁面第一次被請求時,JSP引擎會將JSP原始文件轉(zhuǎn)換成Servlet源代碼,然后調(diào)用Java編譯器,編譯成Servlet,并在Servlet引擎中執(zhí)行。當再次有請求的時候,JSP引擎會檢查已編譯好的JSP是否比原來的JSP原始文件要新,如果是,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論