Java Web應(yīng)用開發(fā)中的一些概念_第1頁(yè)
Java Web應(yīng)用開發(fā)中的一些概念_第2頁(yè)
Java Web應(yīng)用開發(fā)中的一些概念_第3頁(yè)
Java Web應(yīng)用開發(fā)中的一些概念_第4頁(yè)
Java Web應(yīng)用開發(fā)中的一些概念_第5頁(yè)
已閱讀5頁(yè),還剩1頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

/JavaWeb應(yīng)用開發(fā)中的一些概念[導(dǎo)讀]概念一直是學(xué)習(xí)計(jì)算機(jī)軟件開發(fā)中經(jīng)常遇到的問(wèn)題,也是軟件行業(yè)最喜歡創(chuàng)造的東西。很多時(shí)候,學(xué)習(xí)計(jì)算機(jī)軟件開發(fā)遇到困難都是因?yàn)閷?duì)某些概念的不理解,而不是因?yàn)榧夹g(shù)本身有多么復(fù)雜。概念一直是學(xué)習(xí)計(jì)算機(jī)軟件開發(fā)中經(jīng)常遇到的問(wèn)題,也是軟件行業(yè)最喜歡創(chuàng)造的東西。很多時(shí)候,學(xué)習(xí)計(jì)算機(jī)軟件開發(fā)遇到困難都是因?yàn)閷?duì)某些概念的不理解,而不是因?yàn)榧夹g(shù)本身有多么復(fù)雜。JavaWeb作為JavaEE技術(shù)體系的一部分,應(yīng)該是目前所有Web開發(fā)技術(shù)中最復(fù)雜的一種,很多初學(xué)者,或者是從ASP、PHP轉(zhuǎn)移過(guò)來(lái)的開發(fā)者都會(huì)遇到概念方面的困難。

其實(shí)很多概念都是非產(chǎn)簡(jiǎn)單的,只是因?yàn)閺S家為了宣傳需要,將概念復(fù)雜化、學(xué)術(shù)化,導(dǎo)致學(xué)習(xí)者覺得這些概念非常深?yuàn)W,難以理解。在這里,我們首先去澄清JavaWeb開發(fā)中幾個(gè)常用的基本概念。當(dāng)然理解這些概念的前提是需要你具備一定的計(jì)算機(jī)系統(tǒng)、面向?qū)ο蟮确矫婊A(chǔ)知識(shí)。

1、Web容器

所有的程序運(yùn)行都需要有一個(gè)必要的運(yùn)行環(huán)境。這個(gè)環(huán)境可以是軟件,也可以是硬件,或者是軟件和硬件的結(jié)合。比如說(shuō)Windows操作系統(tǒng)需要運(yùn)行在硬件基礎(chǔ)上;Office軟件需要運(yùn)行在操作系統(tǒng)上。并且程序與運(yùn)行環(huán)境之間會(huì)有一定的數(shù)據(jù)交換,比如操作系統(tǒng)會(huì)將運(yùn)行指令傳遞給硬件,硬件也會(huì)將指令運(yùn)行結(jié)果傳遞給操作系統(tǒng)。JavaWeb程序也需要一個(gè)運(yùn)行環(huán)境才能夠執(zhí)行。這種運(yùn)行JavaWeb程序的環(huán)境被稱為Web容器,JavaWeb程序與Web容器之間存在數(shù)據(jù)交互。目前主要存在兩種類型的JavaWeb容器:一種是獨(dú)立的JavaWeb容器,在這種容器里面只能運(yùn)行Web程序,這種容器一般也叫做Web服務(wù)器,如Tomcat等;另一種是與其他JavaEE容器混合在一起的Web容器,Web容器負(fù)責(zé)運(yùn)行Web程序,其他容器負(fù)責(zé)運(yùn)行EJB等程序,如WebLogic等。

當(dāng)用戶通過(guò)瀏覽器等Web客戶端軟件向服務(wù)器發(fā)出一個(gè)請(qǐng)求之后,首先接收到這個(gè)請(qǐng)求的是Web容器,Web容器會(huì)將請(qǐng)求信息封裝到一個(gè)HttpServletRequest類型的Java對(duì)象中,并將對(duì)象傳遞給JavaWeb程序。對(duì)于每個(gè)請(qǐng)求,Web容器還會(huì)創(chuàng)建一個(gè)HttpServletResponse類型對(duì)象,該對(duì)象的作用是用來(lái)保存需要返回到瀏覽器等客戶端的內(nèi)容。JavaWeb程序可以從HttpServletRequest提取用戶發(fā)出的請(qǐng)求信息,進(jìn)行適當(dāng)?shù)奶幚碇?,將處理結(jié)果放置到HttpServletResponse中,然或由Web容器解析HttpServletResponse對(duì)象內(nèi)容,并將解析結(jié)果以瀏覽器能夠識(shí)別的HTML等格式返回給瀏覽器等客戶端。在這個(gè)過(guò)程中,HttpServletRequest和HttpServletResponse就如同兩條渡船,負(fù)責(zé)在Web容器和JavaWeb程序之間傳遞信息。需要注意的是,這兩個(gè)對(duì)象僅存在于Web容器和JavaWeb程序當(dāng)中,與瀏覽器沒有關(guān)系。

2、Web應(yīng)用

Web應(yīng)用,可以認(rèn)為是Web程序的另一個(gè)名稱。缺省的定義就是運(yùn)行在Web容器當(dāng)中的,能夠完成完整功能的應(yīng)用程序。JavaWeb應(yīng)用由一系列編譯之后的Java類、靜態(tài)圖片、靜態(tài)HTML文件、配置文件等構(gòu)成。通過(guò)JavaWeb應(yīng)用就可以接收用戶的輸入和請(qǐng)求,并對(duì)請(qǐng)求信息進(jìn)行加工處理、訪問(wèn)數(shù)據(jù)庫(kù)、對(duì)用戶的請(qǐng)求給出回應(yīng)。開發(fā)JavaWeb應(yīng)用程序處理需要遵守Web應(yīng)用的一些特殊規(guī)范要求以外,與開發(fā)其他類型的應(yīng)用程序并沒有本質(zhì)區(qū)別。目前Web應(yīng)用主要有兩種類型:一種是以展示為目的的Web應(yīng)用,這種應(yīng)用會(huì)以HTML等標(biāo)記文本或者瀏覽器所能識(shí)別的媒體格式作為請(qǐng)求返回內(nèi)容,用戶可以通過(guò)瀏覽器等客戶端操作這類應(yīng)用。另一類是以服務(wù)為目的的Web應(yīng)用,這類應(yīng)用不提供圖形操作界面,只提供方法調(diào)用結(jié)構(gòu),比如Web服務(wù),該類應(yīng)用一般只能被其他應(yīng)用程序調(diào)用和訪問(wèn)。

3、Web元件

Web元件是構(gòu)成Web應(yīng)用,能夠?qū)?lái)自瀏覽器等客戶端請(qǐng)求做出回應(yīng)的基本單元。在JavaWeb應(yīng)用中,所提供的Web元件有Servlet、JavaServerPages(JSP)、JavaServerFaces(JSF)等。另外還可以使用其他類型Web應(yīng)用同樣使用的內(nèi)容,比如HTML文件、靜態(tài)圖片等。事實(shí)上JavaWeb只提供了一種Web元件,就是Servlet,JSP、JSF等都是基于Servlet的衍生技術(shù)。Servlet實(shí)質(zhì)就是一個(gè)有特殊繼承關(guān)系要求的Java類,理解Servlet就基本上完全理解JavaWeb技術(shù)了。

4、Web模塊

在JavaEE技術(shù)體系中,除了JavaWeb以外,還包括EJB等其他技術(shù)。每個(gè)技術(shù)體系會(huì)運(yùn)行在各自的容器當(dāng)中,不同的部分組合在一起構(gòu)成完整的JavaEE應(yīng)用,每個(gè)部分根據(jù)自己的特點(diǎn)被稱為JavaWeb模塊或者EJB模塊。之所以把他們稱為模塊,是因?yàn)橄M鸍avaEE應(yīng)用不同部分能像積木一樣組合出更大、更復(fù)雜的應(yīng)用出來(lái),并且每個(gè)部分保證其獨(dú)立性。不同的模塊都有自己特定的目錄結(jié)構(gòu)要求。JavaWeb模塊的目錄結(jié)構(gòu)要求如下:

◆應(yīng)用文檔根目錄。根目錄是JavaWeb模塊的最上層目錄,組成Web模塊的所有Web元件以與配置文件等都包含在該目錄或者子目錄下。在根目錄下可以直接存放HTML文件,圖片文件等。

◆WEB-INF目錄。該目錄位于應(yīng)用文檔根目錄下,用來(lái)保存那些不希望被瀏覽器等客戶端訪問(wèn)的文件,比如發(fā)布描述文件、編譯之后的類文件。因?yàn)檫@些文件是由Web容器進(jìn)行解釋或者執(zhí)行的。瀏覽器不可以直接看到這些文件,只能看到這些文件的執(zhí)行結(jié)果。

◆web.xml文件。該文件位于WEB-INF目錄下,是Web應(yīng)用的部署描述文件,用來(lái)定義與Web應(yīng)用運(yùn)行相關(guān)的信息,比如執(zhí)行邏輯,Servlet等Web元件的訪問(wèn)路徑等。該文件的格式必須符合所使用的Servlet版本的規(guī)格要求。

◆classes目錄。該目錄位于WEB-INF目錄下,用來(lái)保存編譯之后的Java類文件,比如Servlet、輔助類、其他業(yè)務(wù)處理類等。

◆tags目錄。該目錄位于WEB-INF目錄下,用來(lái)保存那些標(biāo)簽庫(kù)的標(biāo)簽描述文件。

◆lib目錄。該目錄位于WEB-INF目錄下,用來(lái)保存Web應(yīng)用運(yùn)行所依賴的,經(jīng)過(guò)打包之后的Java類文件。打包格式一般是.jar格式。

對(duì)于JavaWeb模塊目錄中WEB-INF、web.xml、classes、tags、lib這些內(nèi)容以外,用戶可以根據(jù)自己的需要在Web應(yīng)用文檔根目錄下創(chuàng)建其他目錄,比如可以為圖片、不同用途的HTML或者JSP單獨(dú)創(chuàng)建目錄;還可以為不用的Java類在classes下創(chuàng)建包目錄。如果在你的Web應(yīng)用中沒有使用到Servlet、過(guò)濾器、監(jiān)聽器等JavaWeb元件,可以沒有web.xml文件;如果沒有使用到標(biāo)簽,則可以沒有tags目錄。

Web模塊的發(fā)布工作,可以直接以目錄的形式發(fā)布,也可以打包成jar格式文件進(jìn)行發(fā)布。因?yàn)橛猛竞蛢?nèi)容的

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論