Java Web應(yīng)用開發(fā)中的一些概念解讀
其實(shí)很多概念都是非常簡單的,只是因?yàn)閺S家為了宣傳需要,將概念復(fù)雜化、學(xué)術(shù)化,導(dǎo)致學(xué)習(xí)者覺得這些概念非常深?yuàn)W,難以理解。在這里,我們首先去澄清Java Web開發(fā)中幾個(gè)常用的基本概念。當(dāng)然理解這些概念的前提是需要你具備一定的計(jì)算機(jī)系統(tǒng)、面向?qū)ο蟮确矫婊A(chǔ)知識。
1、Web容器
所有的程序運(yùn)行都需要有一個(gè)必要的運(yùn)行環(huán)境。這個(gè)環(huán)境可以是軟件,也可以是硬件,或者是軟件和硬件的結(jié)合。比如說Windows操作系統(tǒng)需要運(yùn)行在硬件基礎(chǔ)上;Office軟件需要運(yùn)行在操作系統(tǒng)上。并且程序與運(yùn)行環(huán)境之間會有一定的數(shù)據(jù)交換,比如操作系統(tǒng)會將運(yùn)行指令傳遞給硬件,硬件也會將指令運(yùn)行結(jié)果傳遞給操作系統(tǒng)。Java Web程序也需要一個(gè)運(yùn)行環(huán)境才能夠執(zhí)行。這種運(yùn)行Java Web程序的環(huán)境被稱為Web容器,Java Web程序與Web容器之間存在數(shù)據(jù)交互。目前主要存在兩種類型的Java Web容器:一種是獨(dú)立的Java Web容器,在這種容器里面只能運(yùn)行Web程序,這種容器一般也叫做Web服務(wù)器,如Tomcat等;另一種是與其他Java EE容器混合在一起的Web容器,Web容器負(fù)責(zé)運(yùn)行Web程序,其他容器負(fù)責(zé)運(yùn)行EJB等程序,如WebLogic等。
當(dāng)用戶通過瀏覽器等Web客戶端軟件向服務(wù)器發(fā)出一個(gè)請求之后,首先接收到這個(gè)請求的是Web容器,Web容器會將請求信息封裝到一個(gè)HttpServletRequest類型的Java對象中,并將對象傳遞給Java Web程序。對于每個(gè)請求,Web容器還會創(chuàng)建一個(gè)HttpServletResponse類型對象,該對象的作用是用來保存需要返回到瀏覽器等客戶端的內(nèi)容。Java Web程序可以從HttpServletRequest提取用戶發(fā)出的請求信息,進(jìn)行適當(dāng)?shù)奶幚碇螅瑢⑻幚斫Y(jié)果放置到HttpServletResponse中,然或由Web容器解析HttpServletResponse對象內(nèi)容,并將解析結(jié)果以瀏覽器能夠識別的HTML等格式返回給瀏覽器等客戶端。在這個(gè)過程中,HttpServletRequest和HttpServletResponse就如同兩條渡船,負(fù)責(zé)在Web容器和Java Web程序之間傳遞信息。需要注意的是,這兩個(gè)對象僅存在于Web容器和Java Web程序當(dāng)中,與瀏覽器沒有關(guān)系。
2、Web應(yīng)用
Web應(yīng)用,可以認(rèn)為是Web程序的另一個(gè)名稱。缺的的定義就是運(yùn)行在Web容器當(dāng)中的,能夠完成完整功能的應(yīng)用程序。Java Web應(yīng)用由一系列編譯之后的Java類、靜態(tài)圖片、靜態(tài)HTML文件、配置文件等構(gòu)成。通過Java Web應(yīng)用可以就收用戶的輸入和請求,并對請求信息進(jìn)行加工處理、訪問數(shù)據(jù)庫、對用戶的請求給出回應(yīng)。開發(fā)Java Web應(yīng)用程序處理需要遵守Web應(yīng)用的一些特殊規(guī)范要求以外,與開發(fā)其他類型的應(yīng)用程序并沒有本質(zhì)區(qū)別。目前Web應(yīng)用主要有兩種類型:一種是以展示為目的的Web應(yīng)用,這種應(yīng)用會以HTML等標(biāo)記文本或者瀏覽器所能識別的媒體格式最為請求返回內(nèi)容,用戶可以通過瀏覽器等客戶端操作這類應(yīng)用。另一類是以服務(wù)為目的的Web應(yīng)用,這類應(yīng)用不提供圖形操作界面,只提供方法調(diào)用結(jié)構(gòu),比如Web服務(wù),該類應(yīng)用一般只能被其他應(yīng)用程序調(diào)用和訪問。
3、Web元件
Web元件是構(gòu)成Web應(yīng)用,能夠?qū)碜詾g覽器等客戶端請求做出回應(yīng)的基本單元。在Java Web應(yīng)用中,所提供的Web元件有Servlet、JavaServer Pages(JSP)、JavaServer Faces(JSF)等。另外還可以使用其他類型Web應(yīng)用同樣使用的內(nèi)容,比如HTML文件、靜態(tài)圖片等。事實(shí)上Java Web只提供了一種Web元件元件,就是Servlet,JSP、JSF等都是基于Servlet的衍生技術(shù)。Servlet實(shí)質(zhì)就是一個(gè)有特殊繼承關(guān)系要求的Java類,理解Servlet就基本上完全理解Java Web技術(shù)了。
【編輯推薦】