版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第1章構(gòu)建JavaWeb應(yīng)用
1.1Web應(yīng)用概述
1.2流行的Web應(yīng)用開(kāi)發(fā)技術(shù)
1.3Web應(yīng)用的常用功能
1.4JavaWeb應(yīng)用的核心技術(shù)
1.5Web應(yīng)用的文檔結(jié)構(gòu)
1.6Web應(yīng)用的運(yùn)行環(huán)境及其搭建
1.7創(chuàng)建Web應(yīng)用
1.8JSP的運(yùn)行原理
1.9網(wǎng)上書(shū)店的基本功能
小結(jié)
習(xí)題1實(shí)訓(xùn)1:創(chuàng)建Web應(yīng)用
1.1Web
應(yīng)
用
概
述
1.1.1什么是Web應(yīng)用
我們通過(guò)瀏覽器可以訪問(wèn)新浪網(wǎng)、中華網(wǎng)、淘寶網(wǎng)、網(wǎng)易網(wǎng)、搜狐網(wǎng)以及微軟和Sun公司的網(wǎng)站等,這些就是Web應(yīng)用。對(duì)于Web應(yīng)用,我們需要使用瀏覽器,通過(guò)網(wǎng)絡(luò),訪問(wèn)在遠(yuǎn)程的服務(wù)器上運(yùn)行的程序。Web應(yīng)用指的就是這些網(wǎng)站中的程序。
一個(gè)網(wǎng)站由大量的頁(yè)面組成,每個(gè)頁(yè)面通常由一個(gè)文件組成,也可能由多個(gè)文件組成。組成一個(gè)網(wǎng)站的大量文件之間通過(guò)特定的方式進(jìn)行鏈接,并且存在一個(gè)系統(tǒng)來(lái)管理這些文件。管理這些文件的系統(tǒng)通常稱(chēng)為應(yīng)用服務(wù)器,它的主要作用就是管理這些文件。
1.1.2Web應(yīng)用是如何運(yùn)行的
許多讀者都上過(guò)網(wǎng),應(yīng)該對(duì)上網(wǎng)的過(guò)程比較熟悉,上網(wǎng)的一般過(guò)程如下:
●打開(kāi)瀏覽器。
●輸入某個(gè)網(wǎng)址。
●經(jīng)過(guò)一段時(shí)間的等待,瀏覽器顯示要訪問(wèn)的信息。
然后可以在網(wǎng)頁(yè)上繼續(xù)進(jìn)行其他操作,可能的操作如下:
●在網(wǎng)頁(yè)上點(diǎn)擊超級(jí)鏈接,訪問(wèn)我們希望訪問(wèn)的內(nèi)容,等待瀏覽器中內(nèi)容的再次更新。
●在網(wǎng)頁(yè)上輸入一些信息,然后點(diǎn)擊按鈕,等待瀏覽器中內(nèi)容的再次更新。
不管是在地址欄輸入地址,還是點(diǎn)擊超級(jí)鏈接或者點(diǎn)擊按鈕,都需要等待瀏覽器中內(nèi)容的更新。等待瀏覽器內(nèi)容更新的過(guò)程,實(shí)際上是瀏覽器訪問(wèn)Web應(yīng)用的過(guò)程。這個(gè)過(guò)程如下:
●瀏覽器根據(jù)我們輸入的地址找到相應(yīng)的服務(wù)器,不同的網(wǎng)站對(duì)應(yīng)不同的服務(wù)器。這個(gè)服務(wù)器通常稱(chēng)為Web服務(wù)器,可以接收瀏覽器發(fā)送的請(qǐng)求。
●?Web服務(wù)器把這個(gè)請(qǐng)求交給相應(yīng)的文件管理器,這個(gè)文件管理器也是一個(gè)服務(wù)器,通常稱(chēng)為應(yīng)用服務(wù)器。
●應(yīng)用服務(wù)器接收到請(qǐng)求之后,查找相應(yīng)的文件,加載并執(zhí)行這個(gè)文件。執(zhí)行的結(jié)果通常是HTML文檔。
●應(yīng)用服務(wù)器把執(zhí)行的結(jié)果返回給Web服務(wù)器,Web服務(wù)器再把這個(gè)結(jié)果返回給瀏覽器。
●瀏覽器解析HTML文檔,然后把解析后的網(wǎng)頁(yè)顯示給用戶(hù)。
1.文件
文件是網(wǎng)站中最主要的部分,各個(gè)不同的網(wǎng)站之間的差別主要是因?yàn)樗鼈兪怯刹煌奈募M成的,而不同的文件可以完成不同的功能。這些文件主要是由網(wǎng)站創(chuàng)建人員編寫(xiě)的。本書(shū)的大部分內(nèi)容就是介紹如何編寫(xiě)這些文件。
對(duì)于這些文件的訪問(wèn),可以有很多種方式??梢栽诘刂窓谥休斎氲刂愤M(jìn)行訪問(wèn),可以通過(guò)點(diǎn)擊超鏈接進(jìn)行訪問(wèn),還可以通過(guò)點(diǎn)擊按鈕進(jìn)行訪問(wèn)。通過(guò)輸入地址進(jìn)行訪問(wèn)的方式?jīng)]有其他兩種方式方便,通常僅僅是在第一次訪問(wèn)這個(gè)網(wǎng)站的第一個(gè)頁(yè)面時(shí)才使用。如果不需要提交信息,則通常使用超鏈接的方式;如果要提交信息,則使用按鈕的形式。
2.程序的運(yùn)行支持:應(yīng)用服務(wù)器、瀏覽器、Web服務(wù)器
編寫(xiě)好的文件并不能獨(dú)立運(yùn)行,而是需要在應(yīng)用服務(wù)器中運(yùn)行,即必須有應(yīng)用服務(wù)器的支持。應(yīng)用服務(wù)器負(fù)責(zé)查找、加載、執(zhí)行文件。要訪問(wèn)這些文件,需要通過(guò)瀏覽器,所以要訪問(wèn)Web應(yīng)用必須有瀏覽器。瀏覽器與應(yīng)用服務(wù)器之間的交互是通過(guò)Web服務(wù)器完成的,Web服務(wù)器接收瀏覽器發(fā)送的請(qǐng)求,并把請(qǐng)求轉(zhuǎn)發(fā)給應(yīng)用服務(wù)器,再把應(yīng)用服務(wù)器執(zhí)行的結(jié)果發(fā)送給瀏覽器。通常情況下,應(yīng)用服務(wù)器和Web服務(wù)器是集成在一起的。要開(kāi)發(fā)和運(yùn)行Web應(yīng)用,我們需要搭建這些環(huán)境。
3.用戶(hù)
Web應(yīng)用的用戶(hù)就是訪問(wèn)網(wǎng)站的人。訪問(wèn)網(wǎng)站的人可能是各種各樣的人,他們?cè)谠L問(wèn)Web應(yīng)用的時(shí)候是不需要培訓(xùn)的,所以在開(kāi)發(fā)Web應(yīng)用的時(shí)候應(yīng)該時(shí)刻想著這個(gè)問(wèn)題,不能認(rèn)為用戶(hù)什么都可以做,會(huì)按照我們的想法做。我們應(yīng)該多為用戶(hù)著想,多從用戶(hù)的角度思考,編寫(xiě)的程序應(yīng)該盡量方便用戶(hù)的操作,盡量降低用戶(hù)在操作過(guò)程中出現(xiàn)錯(cuò)誤的概率。
4.部署人員
編寫(xiě)好的應(yīng)用要部署到應(yīng)用服務(wù)器上才能運(yùn)行,這個(gè)部署過(guò)程有時(shí)由編寫(xiě)人員來(lái)完成,有時(shí)需要專(zhuān)門(mén)的人員來(lái)完成。部署人員應(yīng)該對(duì)服務(wù)器非常熟悉。
學(xué)習(xí)本課程的目標(biāo)就是能夠編寫(xiě)一個(gè)完整的網(wǎng)站所涉及的所有文件,并能夠把這些文件部署到服務(wù)器上,之后能夠通過(guò)客戶(hù)端對(duì)其進(jìn)行訪問(wèn)。在實(shí)際應(yīng)用中,網(wǎng)站位于單獨(dú)的服務(wù)器上,客戶(hù)通過(guò)不同的客戶(hù)端對(duì)網(wǎng)站進(jìn)行訪問(wèn)。在學(xué)習(xí)的過(guò)程中,我們的電腦既作為服務(wù)器也作為客戶(hù)端。
1.2流行的Web應(yīng)用開(kāi)發(fā)技術(shù)
上網(wǎng)的時(shí)候,在地址欄中經(jīng)常會(huì)看到文件的名字,后面有后綴名,通常根據(jù)后綴名可以知道網(wǎng)站是采用什么技術(shù)完成的。
當(dāng)瀏覽Sun公司網(wǎng)站的時(shí)候,經(jīng)常看到地址欄中文件名的后綴是.jsp。圖1.1所示的界面是其中的一個(gè)頁(yè)面,地址是/javase/index.jsp,這個(gè)地址是Java標(biāo)準(zhǔn)版技術(shù)的首頁(yè),說(shuō)明使用的是JSP技術(shù)。
圖1.1JSP技術(shù)網(wǎng)頁(yè)實(shí)例
CSDN是一個(gè)大型的程序員交流的網(wǎng)站,經(jīng)常會(huì)看到網(wǎng)頁(yè)的后綴名是.aspx。圖1.2所示的界面是一個(gè)blog,地址是/javaeeteacher,這是作者的blog。當(dāng)查看里面的文章時(shí)會(huì)發(fā)現(xiàn),文件的后綴名是.aspx,說(shuō)明使用的是ASP.NET技術(shù)。
圖1.2?ASP.NET技術(shù)網(wǎng)頁(yè)實(shí)例
圖1.3所示的界面是sohu新聞網(wǎng)頁(yè)的首頁(yè),地址是。當(dāng)瀏覽里面的網(wǎng)頁(yè)時(shí)會(huì)發(fā)現(xiàn),多數(shù)網(wǎng)頁(yè)的后綴名是.php,說(shuō)明該網(wǎng)站采用的技術(shù)是PHP;也有一些網(wǎng)頁(yè)的后綴名是.jsp,說(shuō)明sohu網(wǎng)站的某些模塊采用的是JSP技術(shù)。
圖1.3PHP技術(shù)網(wǎng)頁(yè)實(shí)例
當(dāng)然有時(shí)候并不能從網(wǎng)頁(yè)的后綴名看出網(wǎng)站所使用的技術(shù),例如對(duì)于大家非常熟悉的sina網(wǎng),在訪問(wèn)該網(wǎng)站的過(guò)程中就很少能夠看到文件的后綴名。
上面給出了3個(gè)采用不同技術(shù)實(shí)現(xiàn)的網(wǎng)站的例子,它們分別采用的是JSP、ASP.NET和PHP技術(shù)。實(shí)際上這3種技術(shù)也是目前流行的Web應(yīng)用開(kāi)發(fā)技術(shù)。
JSP是Sun公司的標(biāo)準(zhǔn),有多個(gè)公司參與和支持,包括IBM、Oracle、BEA等公司,還有一些社團(tuán),包括著名的Apache組織。JSP主要采用Java技術(shù)完成。
1.3Web應(yīng)用的常用功能
1.信息展示
信息展示是網(wǎng)站必不可少的功能,不管您上過(guò)什么樣的網(wǎng)站,多數(shù)時(shí)候都是在瀏覽上面的信息,這也是多數(shù)網(wǎng)站最主要的功能。對(duì)于普通的用戶(hù),使用Web應(yīng)用的主要目的也是查看信息。可以認(rèn)為展示信息是Web應(yīng)用的輸出功能。對(duì)于靜態(tài)網(wǎng)站(信息基本上不發(fā)生變化)來(lái)說(shuō),展示信息幾乎就是網(wǎng)站的全部功能。
2.信息查詢(xún)
在網(wǎng)站信息量非常大的時(shí)候,通過(guò)瀏覽來(lái)獲取想要的信息將非常困難。網(wǎng)站必須提供功能強(qiáng)大的查詢(xún)來(lái)方便用戶(hù)的操作。查詢(xún)的方式可以有很多:可以根據(jù)關(guān)鍵字查詢(xún),例如根據(jù)用戶(hù)名、根據(jù)產(chǎn)品編號(hào)等;可以根據(jù)日期查詢(xún)或者日期范圍查詢(xún),例如在某個(gè)時(shí)間之前,或者在某個(gè)時(shí)間區(qū)間;可以組合查詢(xún),根據(jù)多個(gè)條件查詢(xún);可以進(jìn)行模糊查詢(xún),只要包含所提供的關(guān)鍵字就可以查詢(xún)到。
3.信息輸入
大部分動(dòng)態(tài)網(wǎng)站的信息是動(dòng)態(tài)變化的,需要不斷更新,需要向系統(tǒng)添加新的信息。例如,一個(gè)新聞網(wǎng)站,每天都要添加新聞。
信息的添加可以采用多種方式:
●用戶(hù)選擇,例如性別等信息。
●用戶(hù)輸入,例如姓名、生日等。
●用戶(hù)上傳,例如文本文件、圖片文件和聲音文件等。
4.信息更新
信息更新包括信息的修改和刪除,多數(shù)網(wǎng)站在運(yùn)行的過(guò)程中,都需要對(duì)信息進(jìn)行更新。修改功能需要把原來(lái)的信息用新的信息替換。刪除功能用于刪除不再需要的信息。
5.信息處理
網(wǎng)站必須對(duì)用戶(hù)的各種要求進(jìn)行處理。用戶(hù)需要查詢(xún)信息,網(wǎng)站就需要根據(jù)用戶(hù)的要求查詢(xún)。如果用戶(hù)需要計(jì)算某個(gè)信息,網(wǎng)站就需要完成計(jì)算過(guò)程。
具體信息處理的過(guò)程和內(nèi)容是由網(wǎng)站的功能決定的。例如,銀行的交易系統(tǒng)需要進(jìn)行的各種處理主要是跟銀行各種業(yè)務(wù)相關(guān)的處理。再例如,飛機(jī)票預(yù)訂系統(tǒng)主要完成與飛機(jī)票預(yù)訂相關(guān)的處理。
6.信息存儲(chǔ)
各種網(wǎng)站都涉及大量的信息,這些信息必須進(jìn)行存儲(chǔ)。通常使用數(shù)據(jù)庫(kù)存儲(chǔ),在很特殊的情況下可能會(huì)使用文件。從本質(zhì)上來(lái)說(shuō),二者沒(méi)有太大的區(qū)別。
在Web應(yīng)用中信息存儲(chǔ)是必不可少的部分,并且目前多數(shù)網(wǎng)站的主要功能基本上都是圍繞所存儲(chǔ)的信息而設(shè)置的。在未來(lái)的發(fā)展趨勢(shì)中,Web應(yīng)用中的信息存儲(chǔ)將更加重要。
1.4JavaWeb應(yīng)用的核心技術(shù)
JavaWeb應(yīng)用的核心技術(shù)包括以下幾個(gè)方面:
●?JSP:進(jìn)行輸入和輸出的基本手段。
●?JavaBean:完成功能的處理。
●?Servlet:對(duì)應(yīng)用的流程進(jìn)行控制。
●?JDBC:是與數(shù)據(jù)庫(kù)進(jìn)行交互不可缺少的技術(shù)。
●?JSTL和表達(dá)式語(yǔ)言EL:完成對(duì)JSP頁(yè)面中各種信息的控制和輸出。
JSP主要完成輸入和輸出的功能,主要是由HTML代碼、客戶(hù)端腳本(JavaScript等)、JSP的標(biāo)簽和指令、自定義標(biāo)簽庫(kù)構(gòu)成。下面是一個(gè)典型的JSP的例子:
指令<%@pagecontentType="text/html;charset=gb2312"%><%@taglibprefix="c"uri="/jsp/jstl/core"prefix="c"%>指令
用戶(hù)信息如下:
JavaBean完成系統(tǒng)的所有處理功能。JavaBean就是Java中的普通的Java類(lèi),所以沒(méi)有特殊的地方。另外,JavaWeb技術(shù)中提供了多個(gè)與JavaBean操作相關(guān)的標(biāo)簽。
Servlet技術(shù)可以完成與JSP相同的功能,但是其表現(xiàn)形式與JSP不同。JSP以腳本文件的形式存在,而Servlet則以Java文件的形式存在。所以Servlet也是Java類(lèi),是特殊的Java類(lèi),在JavaWeb技術(shù)中主要完成控制功能,負(fù)責(zé)協(xié)調(diào)JSP頁(yè)面和完成功能的JavaBean之間的關(guān)系。下面是一個(gè)典型的Servlet的例子:
//獲取用戶(hù)輸入的用戶(hù)ID和口令獲取JSP頁(yè)面信息Stringuserid=request.getParameter("userid");Stringuserpass=request.getPrameter("userpass");主要方法
//獲取用戶(hù)輸入的用戶(hù)ID和口令
Stringuserid=request.getParameter(“userid”);
Stringuserpass=request.getPrameter(“userpass”);
//創(chuàng)建模型對(duì)象
調(diào)用JavaBeanUserBeanuser=newUserBean();
//調(diào)用業(yè)務(wù)方法進(jìn)行驗(yàn)證
booleanb=user.validate(userid,userpass);
//要轉(zhuǎn)向的文件
Stringforward;
if(b)
forward="success.jsp";
else
forward="failure.jsp";獲取JSP頁(yè)面信息調(diào)用JavaBean選擇響應(yīng)用戶(hù)的界面
RequestDispatcherdispatcher
=request.getRequestDispatcher(forward);
dispatcher.forward(request,response);
}
}
與數(shù)據(jù)庫(kù)的交互幾乎是所有JavaWeb應(yīng)用不可缺少的,并且可能要與各種類(lèi)型的數(shù)據(jù)庫(kù)管理系統(tǒng)打交道。這些數(shù)據(jù)庫(kù)管理系統(tǒng)現(xiàn)在多數(shù)都是關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)。Java中提供了JDBC技術(shù)來(lái)完成Java應(yīng)用與各種數(shù)據(jù)庫(kù)系統(tǒng)之間的交互。雖然JDBC不屬于JavaWeb技術(shù),但是在JavaWeb中不可避免地要使用JDBC。所以JDBC也算是JavaWeb開(kāi)發(fā)中比較重要的技術(shù)之一。
對(duì)用戶(hù)響應(yīng)
JSTL和表達(dá)式語(yǔ)言是在JSP2.0之后引入的,主要目的是為了方便用戶(hù)在JSP頁(yè)面中使用常用功能。其典型的應(yīng)用是信息的輸出,因?yàn)镴SP界面的主要功能就是展示信息,使用表達(dá)式語(yǔ)言使得信息的顯示非常簡(jiǎn)單。例如在上面的JSP代碼中的${user.userid},完成的功能是從request(后面的章節(jié)會(huì)介紹)中獲取user對(duì)象的userid屬性。如果使用Java代碼,就沒(méi)有這么簡(jiǎn)單了。另外,JSTL中提供了大量常用的功能,例如選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu),在上面的JSP例子中就使用了<c:forEach>標(biāo)簽完成循環(huán)控制。
1.5Web應(yīng)用的文檔結(jié)構(gòu)
Web應(yīng)用中包含大量的文件,有JSP文件、HTML文件、圖片文件、Java文件、配置文件和其他的類(lèi)庫(kù),這些文件必須按照一定的結(jié)構(gòu)組織。
每個(gè)Web應(yīng)用都有一個(gè)根目錄,通常這個(gè)根目錄就是這個(gè)應(yīng)用的名字。假設(shè)這個(gè)根目錄為bookstore。
可以把JSP文件、HTML文件和圖片文件等與界面相關(guān)的文件直接放在根目錄下。但是為了便于管理,通常會(huì)把文件進(jìn)行分類(lèi)。一般把Web應(yīng)用分成若干個(gè)模塊,把與每個(gè)模塊相關(guān)的文件放在一個(gè)目錄中。假設(shè)該Web應(yīng)用包括用戶(hù)管理、圖書(shū)管理和訂單管理,則可以在bookstore下分別創(chuàng)建usermanagement、bookmanagement和ordermanagement子目錄,然后把與每個(gè)模塊相關(guān)的文件放在對(duì)應(yīng)子目錄中。
Web應(yīng)用中可能會(huì)存在大量的圖片,為了便于管理,通常會(huì)在根目錄中創(chuàng)建一個(gè)子目錄來(lái)保存所有的圖片,這個(gè)子目錄可以命名為images。
在Web應(yīng)用的各個(gè)模塊中可能會(huì)用到一些公用的文件,例如頁(yè)面的導(dǎo)航欄、版權(quán)信息、出錯(cuò)頁(yè)面等。可以創(chuàng)建common子目錄存放這些共享文件。
另外,在Web應(yīng)用中有一個(gè)比較特殊的子目錄WEB-INF,其他的子目錄不能使用這個(gè)名字,放在這個(gè)目錄中的文件不能通過(guò)瀏覽器訪問(wèn),主要供服務(wù)器使用。在WEB-INF目錄下,包括兩個(gè)子目錄和一個(gè)配置文件web.xml。兩個(gè)子目錄分別是classes和lib,前者用于存放所有與網(wǎng)站相關(guān)的Java文件,后者用于存放以壓縮包.jar形式存在的Java文件。web.xml是每個(gè)Web應(yīng)用都必須有的,是Web應(yīng)用的配置文件。
圖1.4Web應(yīng)用的文檔結(jié)構(gòu)
+bookstore+bookmanagement+usermanagement+ordermanagement+images+common+WEB-INF+classes+libweb.xml 1.6Web應(yīng)用的運(yùn)行環(huán)境及其搭建
1.6.1運(yùn)行環(huán)境
根據(jù)上一節(jié)對(duì)Web應(yīng)用運(yùn)行過(guò)程的描述,我們知道Web應(yīng)用的運(yùn)行需要Web服務(wù)器和應(yīng)用服務(wù)器。另外對(duì)于JavaWeb應(yīng)用來(lái)說(shuō),應(yīng)用服務(wù)器在管理JSP程序的過(guò)程中需要編譯Java源文件、加載Java文件、執(zhí)行Java文件,需要JDK和JRE的支持。所以JavaWeb應(yīng)用需要以下運(yùn)行環(huán)境:
●?Web服務(wù)器。
●應(yīng)用服務(wù)器。
●?JDK。
●?JRE。
應(yīng)用服務(wù)器廠商通常會(huì)把Web服務(wù)器集成到其中,所以在安裝應(yīng)用服務(wù)器的時(shí)候通常都包含Web服務(wù)器。當(dāng)然也可以單獨(dú)選擇和安裝Web服務(wù)器。如果單獨(dú)安裝服務(wù)器,則需要進(jìn)行配置。
關(guān)于JavaWeb應(yīng)用的應(yīng)用服務(wù)器很多,有些是商業(yè)的,有些是免費(fèi)的,對(duì)于我們學(xué)習(xí)來(lái)說(shuō),沒(méi)有本質(zhì)區(qū)別。本書(shū)選擇Apache基金組織的Tomcat。
多數(shù)操作系統(tǒng)在安裝的時(shí)候都帶有JRE,但是也有一些操作系統(tǒng)不帶JRE,如果沒(méi)有JRE,則需要單獨(dú)安裝。
接下來(lái),介紹如下環(huán)境的安裝:
●?Sun公司的JDK。
●?Apache公司的Tomcat。
1.6.2安裝JDK
1.獲取JDK
本書(shū)使用的JDK
2.安裝JDK和JRE
直接雙擊JDK文件即可安裝。
首先出現(xiàn)的是許可證協(xié)議界面,如圖1.5所示。圖1.6是選擇JDK安裝路徑,使用默認(rèn)安裝路徑:C:\ProgramFiles\Java\jdk1.6.0。圖1.7是JDK的安裝過(guò)程。圖1.8是選擇JRE安裝路徑,使用默認(rèn)安裝路徑:C:\ProgramFiles\Java\jre1.6.0。圖1.9是JRE的安裝過(guò)程。圖1.10表示安裝完成。
圖1.5JDK安裝第一步
圖1.6JDK安裝第二步
圖1.7JDK安裝第三步
圖1.8JDK安裝第四步
圖1.9JRE的安裝
圖1.10安裝完成
3.配置環(huán)境變量
在桌面圖標(biāo)【我的電腦】上點(diǎn)擊右鍵,選擇【屬性】,在彈出的【系統(tǒng)屬性】窗口中選擇【高級(jí)】選項(xiàng)卡中的【環(huán)境變量】,彈出如圖1.11所示界面。
圖1.11選擇Path進(jìn)行配置
如果在系統(tǒng)變量中已經(jīng)存在“Path”變量,則修改該變量的值,點(diǎn)擊【編輯】進(jìn)入如圖1.12所示界面。
圖1.12配置環(huán)境變量
在【變量值】對(duì)應(yīng)的輸入框中原有信息的前面添加如下路徑:“C:\ProgramFiles\Java\jdk1.6.0\bin;”。
注意:最后的分號(hào)不能省略。
如果在系統(tǒng)變量中不存在“Path”變量,則創(chuàng)建“Path”變量。選擇【新建】,也可進(jìn)入如圖1.12所示界面。
在【變量名】對(duì)應(yīng)的輸入框中輸入“Path”,在【變量值】對(duì)應(yīng)的輸入框中輸入“C:\ProgramFiles\Java\jdk1.6.0\bin;”。
4.測(cè)試JDK
在【開(kāi)始】菜單中選擇【運(yùn)行】,輸入“cmd”,進(jìn)入命令行界面,然后輸入“javac”,如果出現(xiàn)如圖1.13所示的界面,則表示環(huán)境配置成功。
圖1.13測(cè)試環(huán)境變量的配置
1.6.3安裝Tomcat服務(wù)器
本書(shū)使用的Tomcat的版本是6.0.9,下載地址是/download-60.cgi,下載后的文件名為apache-tomcat-6.0.9.exe。
雙擊進(jìn)行安裝,進(jìn)入安裝界面,如圖1.14所示。
圖1.14安裝的初始界面
圖1.15安裝的許可協(xié)議
點(diǎn)擊【IAgree】,進(jìn)入Tomcat的安裝內(nèi)容選擇界面,如圖1.16所示。
圖1.16選擇安裝的內(nèi)容
選擇要安裝的內(nèi)容,這里全部選擇即可,然后點(diǎn)擊【Next>】,進(jìn)入安裝目錄選擇界面,如圖1.17所示。
圖1.17選擇安裝的路徑
輸入要安裝的位置或者使用【Browse…】選擇要安裝的位置,也可以使用默認(rèn)值,然后點(diǎn)擊【Next>】,進(jìn)入端口設(shè)置和管理員設(shè)置界面,如圖1.18所示。
圖1.18服務(wù)器的監(jiān)聽(tīng)端口
圖1.18中,最上面是Web服務(wù)的端口,默認(rèn)值是8080,在編寫(xiě)程序的時(shí)候需要根據(jù)這個(gè)端口進(jìn)行訪問(wèn),也可以使用其他的端口,但是不能與系統(tǒng)定義的端口沖突。
下面的兩個(gè)輸入框是管理員登錄時(shí)的用戶(hù)名和口令,管理員的用戶(hù)名默認(rèn)值是admin,口令可以為空。如果設(shè)置了管理員口令,則必須記住。完成端口的設(shè)置以及管理員的設(shè)置之后點(diǎn)擊【Next>】,進(jìn)入JRE選擇界面,如圖1.19所示。
圖1.19選擇JRE選擇已經(jīng)安裝的JRE,之后選擇【Install】進(jìn)入安裝過(guò)程,安裝過(guò)程如圖1.20所示。
圖1.20JRE的安裝過(guò)程
安裝完成之后將出現(xiàn)如圖1.21所示的界面。
圖1.21安裝完成
1.7創(chuàng)建Web應(yīng)用
1.7.1創(chuàng)建Web應(yīng)用
每個(gè)Web應(yīng)用都對(duì)應(yīng)一個(gè)根目錄,該應(yīng)用相關(guān)的文件都在這個(gè)目錄下。通常,根目錄的名字就是應(yīng)用的名字。在本書(shū)中,把應(yīng)用的名字確定為bookstore。
服務(wù)器必須能夠找到應(yīng)用的根目錄才可以運(yùn)行這個(gè)Web應(yīng)用,也就是通常所說(shuō)的需要把應(yīng)用部署到服務(wù)器上。有兩種方式可以完成部署。第一種方式可以通過(guò)配置文件完成,即通過(guò)管理工具,在配置文件中進(jìn)行配置。另一種方式是讓服務(wù)器自動(dòng)加載,這樣Web應(yīng)用開(kāi)發(fā)人員的工作就簡(jiǎn)單了。為了能夠讓服務(wù)器自動(dòng)加載應(yīng)用,需要把應(yīng)用放在特定的目錄下。在Tomcat中可以把應(yīng)用放在Tomcat目錄下的webapps下面。
1.7.2創(chuàng)建WEB-INF文件夾
每個(gè)Web應(yīng)用都包含一個(gè)WEB-INF文件夾,存放一些比較特殊的文件。該文件夾下存放的文件通常在客戶(hù)端不能直接訪問(wèn)。
在WEB-INF目錄下主要有如下幾類(lèi)文件:
●配置文件,常見(jiàn)的有xml文件、tld文件、properties文件(屬性文件)。
●類(lèi)文件,如系統(tǒng)用到的外部類(lèi)庫(kù)或者自己編寫(xiě)的類(lèi)文件。
1.7.3創(chuàng)建web.xml文檔
每個(gè)Web應(yīng)用都應(yīng)該對(duì)應(yīng)一個(gè)web.xml文檔,web.xml文檔位于WEB-INF文件夾中。這個(gè)文檔用于描述Web應(yīng)用的配置信息。
xml版本這個(gè)文檔通常不需要手工來(lái)寫(xiě),因?yàn)橐环矫嫒菀壮鲥e(cuò),另一方面比較費(fèi)時(shí)間。如果采用集成開(kāi)發(fā)環(huán)境,則集成開(kāi)發(fā)環(huán)境會(huì)自動(dòng)生成這個(gè)文件。如果手工創(chuàng)建Web應(yīng)用,則可以從其他的Web應(yīng)用中拷貝一個(gè),然后進(jìn)行修改。修改成下面的樣子即可:
1.7.4創(chuàng)建classes文件夾
classes文件夾位于WEB-INF文件夾中,與這個(gè)Web應(yīng)用相關(guān)的所有的類(lèi)文件都應(yīng)該放在這個(gè)文件夾下。
注意:類(lèi)放在classes文件夾中的時(shí)候,需要?jiǎng)?chuàng)建與相關(guān)的包對(duì)應(yīng)的文件夾。
例如,有一個(gè)類(lèi)DBBean,所在的包是beans,則應(yīng)該按照下面的方式存放文件:
WEB-INF/classes/beans/DBBean.class
有的Web應(yīng)用會(huì)使用屬性文件(properties文件)保存一些配置信息,這些屬性文件也需要放在classes文件夾中。如果有多個(gè)屬性文件,那么也可以根據(jù)屬性文件的類(lèi)別分別為屬性文件創(chuàng)建子文件夾,就像為類(lèi)創(chuàng)建包一樣。
1.7.5創(chuàng)建lib文件夾
lib文件夾位于WEB-INF文件夾中,lib文件夾也是用于存放類(lèi)文件的,只是這些文件都是以壓縮包的形式存在的。如果類(lèi)文件不是以壓縮包的形式存在,則應(yīng)該放在classes文件夾中。
當(dāng)在Web應(yīng)用中使用外部一些功能的時(shí)候,這些功能通常都是以壓縮包.jar文件的形式存在的。這些壓縮包應(yīng)該放在lib目錄下。
1.7.6創(chuàng)建歡迎界面
每個(gè)網(wǎng)站都是由大量的文件組成的,但是不管訪問(wèn)什么網(wǎng)站,用戶(hù)都很少輸入文件的名字,因?yàn)橥ǔR膊恢谰W(wǎng)站上文件的名字。網(wǎng)站一般都會(huì)有一個(gè)歡迎界面,當(dāng)用戶(hù)訪問(wèn)一個(gè)網(wǎng)站的時(shí)候,最先看到的就是歡迎界面。圖1.22圖1.22sina的歡迎界面
通常歡迎界面的名字是index.html、index.htm或者index.jsp。如果希望為Web應(yīng)用配置默認(rèn)歡迎界面,則可以在web.xml配置文件中添加如下代碼:
<welcome-file-list>
<welcome-file>
index.jsp
</welcome-file>
</welcome-file-list>創(chuàng)建Web應(yīng)用的過(guò)程實(shí)際上是創(chuàng)建大量的JSP文件的過(guò)程。JSP文件的后綴名通常是.jsp,如果不包含Java代碼,僅僅是普通的html文件,則可以使用.htm或者.html。
文件中的代碼主要是由html代碼、嵌入的Java腳本以及大量的JSP語(yǔ)句構(gòu)成的。從功能上來(lái)說(shuō),文件主要包括兩部分內(nèi)容:要顯示的信息本身以及顯示信息所采用的格式。通常html代碼用于控制要顯示的信息的格式,Java代碼和JSP代碼用于控制顯示什么信息。創(chuàng)建文件的過(guò)程實(shí)際上也包含兩個(gè)過(guò)程:首先根據(jù)要顯示的信息確定頁(yè)面的格式,確定格式之后采用JSP代碼和Java代碼控制要顯示的內(nèi)容。
圖1.23創(chuàng)建好的Web應(yīng)用
網(wǎng)上書(shū)店的歡迎界面的代碼如下:
<%@pagepageEncoding="gbk"%>
<html>
<head>
<title>歡迎光臨網(wǎng)上書(shū)店</title>
</head>
<body>
歡迎光臨網(wǎng)上書(shū)店
</body>
</html>
創(chuàng)建好的Web應(yīng)用的目錄結(jié)構(gòu)如圖1.23所示。
1.7.7啟動(dòng)服務(wù)器
在訪問(wèn)JSP程序之前,必須先啟動(dòng)服務(wù)器。啟動(dòng)服務(wù)器的過(guò)程如下:【開(kāi)始】→【ApacheTomcat6.0】→【ConfigureTomcat】,彈出如圖1.24所示的界面。
圖1.24啟動(dòng)服務(wù)器——Windows方式
在這個(gè)界面中,點(diǎn)擊【Start】按鈕啟動(dòng)服務(wù)器。
提示:可以直接在文件目錄中啟動(dòng)服務(wù)器,即通過(guò)Tomcat安裝目錄的子目錄bin中的Tomat6.exe或者Tomcat6w.exe啟動(dòng)。后者啟動(dòng)的效果與圖1.24所示效果相同。Tomcat6.exe的啟動(dòng)效果如圖1.25所示。
圖1.25啟動(dòng)服務(wù)器——DOS窗口方式
1.7.8訪問(wèn)JSP程序
訪問(wèn)JSP程序的時(shí)候,需要提供以下幾個(gè)信息:
●協(xié)議,通常是http。
●主機(jī),服務(wù)器的IP地址或者名字。對(duì)于本地應(yīng)用可以使用本地虛擬地址,也可以使用真實(shí)地址。localhost是本地虛擬主機(jī)的名字,是本地虛擬主機(jī)的IP地址。
●端口,默認(rèn)是80,使用tomcat開(kāi)發(fā)的時(shí)候默認(rèn)是8080。
●?Web應(yīng)用,每個(gè)Web應(yīng)用都對(duì)應(yīng)一個(gè)路徑,默認(rèn)的路徑名與Web應(yīng)用文件夾名相同。本實(shí)例中應(yīng)用的名字是bookstore。
●文件,必須指出要訪問(wèn)的文件名。本實(shí)例中的文件名是index.jsp。
要訪問(wèn)上面的歡迎界面,必須打開(kāi)瀏覽器并輸入地址,地址可以有多種寫(xiě)法:
http://localhost:8080/bookstore/index.jsp
:8080/bookstore/index.jsp
:8080/bookstore/index.jsp
http://lixucheng:8080/bookstore/index.jsp前兩種表示虛擬本地主機(jī),后兩種分別是IP地址和主機(jī)名。在實(shí)際應(yīng)用中主要根據(jù)域名訪問(wèn)。
如果設(shè)置了歡迎界面,則后面的文件名可以省略,例如第一種地址可以寫(xiě)成下面的
樣子:
http://localhost:8080/bookstore
1.8JSP的運(yùn)行原理
那么JSP在服務(wù)器端是如何運(yùn)行的呢?
首先,JSP文件需要轉(zhuǎn)換成Java類(lèi)。在訪問(wèn)JSP文件的時(shí)候,并不直接執(zhí)行JSP文件,而是執(zhí)行JSP文件對(duì)應(yīng)的Java類(lèi)(class文件)的對(duì)象,這個(gè)Java文件是服務(wù)器根據(jù)我們提供的JSP文件創(chuàng)建的。在Tomcat安裝目錄下的work目錄中有JSP文件轉(zhuǎn)換成的Java文件。
其次,并不是每次訪問(wèn)JSP文件都會(huì)將JSP文件轉(zhuǎn)換成Java文件。只有第一次訪問(wèn)JSP文件的時(shí)候需要把JSP文件轉(zhuǎn)換成Java文件,在后續(xù)的訪問(wèn)過(guò)程中,只要查找到這個(gè)JSP文件對(duì)應(yīng)的Java文件即可。所以,第一次訪問(wèn)JSP文件的時(shí)候可能會(huì)比較慢,后續(xù)訪問(wèn)就正常了。
最后,要訪問(wèn)某個(gè)JSP文件,得到的并不是JSP文件的內(nèi)容,而是JSP文件的執(zhí)行結(jié)果,就是上面所說(shuō)的JSP文件對(duì)應(yīng)的Java類(lèi)的執(zhí)行結(jié)果。這個(gè)結(jié)果通常是JSP文件的輸出內(nèi)容,為HTML形式。
綜上所述,JSP文件的運(yùn)行過(guò)程可以描述如下:
(1)服務(wù)器端接收到請(qǐng)求信息之后,查找JSP文件對(duì)應(yīng)的Java文件,如果Java文件不存在,則把JSP文件轉(zhuǎn)換成Java文件,如果對(duì)應(yīng)的Java文件已經(jīng)存在,則直接調(diào)用這個(gè)Java文件。
(2)執(zhí)行Java文件。
(3)把執(zhí)行的結(jié)果返回給客戶(hù)端。
JSP的運(yùn)行原理如圖1.26所示。
圖1.26JSP的運(yùn)行原理
1.9網(wǎng)上書(shū)店的基本功能
網(wǎng)上書(shū)店主要完成網(wǎng)上圖書(shū)信
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 個(gè)人與企業(yè)合作合同范例
- 工程簽收合同范例
- 儀器標(biāo)簽采購(gòu)合同范例
- 林地用地流轉(zhuǎn)合同范例
- 校服服裝訂購(gòu)合同范例
- 賓館水電維護(hù)合同范例
- 涉外采礦合同范例
- 國(guó)外客戶(hù)傭金合同范例
- 展館合同范例
- 期房?jī)?nèi)部合同范例
- 校招面試官培訓(xùn)課件
- 初中九年級(jí)英語(yǔ)課件ReadingThe world in danger 市賽一等獎(jiǎng)
- 展覽館維修維護(hù)投標(biāo)方案
- 項(xiàng)目電氣工程師總結(jié)
- 陳赫賈玲小品《歡喜密探》臺(tái)詞劇本
- 2023招聘專(zhuān)員個(gè)人年終總結(jié)
- 國(guó)際郵輪產(chǎn)業(yè)及未來(lái)郵輪
- 水工建筑物考試試題及答案
- 多元回歸分析論文
- 小學(xué)第四季度意識(shí)形態(tài)分析研判報(bào)告
- 部編二年級(jí)語(yǔ)文上冊(cè) 培優(yōu)輔差測(cè)試記錄表
評(píng)論
0/150
提交評(píng)論