版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
高等職業(yè)教育“十四五”規(guī)劃教材
JavaWeb開發(fā)任務(wù)教程
嚴梅吳道君何受倩◎主編
黃龍泉◎副主編
內(nèi)容簡介
本書從JavaWeb應(yīng)用開發(fā)技術(shù)的原理出發(fā),結(jié)合網(wǎng)站應(yīng)用開發(fā)實例對各知識點進行
詳細講解,并將知識點融入實際項目的開發(fā)中,項目中的每個任務(wù)解決一個實際開發(fā)中
的技術(shù)要點。全書共分8個單元,包括搭建JavaWeb開發(fā)環(huán)境、Servlet編程基礎(chǔ)、JSP
編程技術(shù)、文件上傳和下載、過濾器和監(jiān)聽器、JDBC數(shù)據(jù)庫技術(shù)、EL表達式和JSTL
標(biāo)簽、綜合項目實戰(zhàn)—在線購物商城。完成本書的學(xué)習(xí)后,讀者即可使用JavaWeb
相關(guān)技術(shù)搭建一個動態(tài)網(wǎng)站。
本書適合作為高等職業(yè)院校計算機相關(guān)專業(yè)的教材,也可作為各類Java技術(shù)培訓(xùn)班
的教材,以及具有一定Java語言基礎(chǔ)的人員的參考用書。
圖書在版編目(CIP)數(shù)據(jù)
JavaWeb開發(fā)任務(wù)教程/嚴梅,吳道君,何受倩主編.—2版.—北京:
中國鐵道出版社有限公司,2022.1
高等職業(yè)教育“十四五”規(guī)劃教材
ISBN978-7-113-27945-5
Ⅰ.①J…Ⅱ.①嚴…②吳…③何…Ⅲ.①JAVA語言-程序設(shè)計-
高等職業(yè)教育-教材Ⅳ.①TP312.8
中國版本圖書館CIP數(shù)據(jù)核字(2021)第086198號
書名:JavaWeb開發(fā)任務(wù)教程
作者:嚴梅吳道君何受倩
策劃:韓從付編輯部電話:(010)63549508
責(zé)任編輯:陸慧萍彭立輝
封面設(shè)計:劉穎
責(zé)任校對:苗丹
責(zé)任印制:樊啟鵬
出版發(fā)行:中國鐵道出版社有限公司(100054,北京市西城區(qū)右安門西街8號)
網(wǎng)址:/51eds/
印刷:三河市興博印務(wù)有限公司
版次:2017年8月第1版2022年1月第2版2022年1月第1次印刷
開本:787mm×1092mm1/16印張:15字數(shù):353千
書號:ISBN978-7-113-27945-5
定價:41.00元
版權(quán)所有侵權(quán)必究
凡購買鐵道版圖書,如有印制質(zhì)量問題,請與本社教材圖書營銷部聯(lián)系調(diào)換。電話:(010)63550836
打擊盜版舉報電話:(010)63549461
前言
Java是一種簡單的、跨平臺的、面向?qū)ο蟮?、分布式的、解釋性的、健壯的、?/p>
全的、可移植的、性能優(yōu)異的語言,自1995年Sun公司推出Java語言之后,已有
二十多年的發(fā)展歷史,出現(xiàn)了許多與之相關(guān)的技術(shù)和應(yīng)用。JavaWeb開發(fā)是用Java
技術(shù)進行互聯(lián)網(wǎng)領(lǐng)域的應(yīng)用開發(fā),目前,JavaWeb技術(shù)已經(jīng)成為企業(yè)進行Web開發(fā)
所采用的主流解決方案之一。JavaWeb技術(shù)包括Servlet技術(shù)、JSP技術(shù)、JDBC技術(shù),
以及Struts、Spring和Hibernate開源框架等一系列應(yīng)用技術(shù)。本書作為JavaWeb開發(fā)
入門級教程,以Servlet技術(shù)、JSP技術(shù)為重點,詳細介紹了應(yīng)用Java技術(shù)開發(fā)Web
應(yīng)用的相關(guān)技術(shù)及編程方法。
本書致力于將知識點融入實際項目的開發(fā)中,從JavaWeb應(yīng)用開發(fā)技術(shù)的原理
出發(fā),結(jié)合網(wǎng)站應(yīng)用開發(fā)實例對各知識點進行詳細講解,每個任務(wù)解決一個實際開發(fā)
中的技術(shù)要點。完成本書學(xué)習(xí)后,讀者能使用JavaWeb相關(guān)技術(shù)搭建一個動態(tài)網(wǎng)站。
本書在第一版的基礎(chǔ)上,將IDE開發(fā)工具更新到行業(yè)內(nèi)更加通用的Eclipse10,將HTML
版本由4.0升級到了HMTL5,Tomcat由版本7.x升級到9.x,并為任務(wù)透析部分配備
了微視頻講解,方便讀者掃描學(xué)習(xí)。本書將整個知識結(jié)構(gòu)分為8個單元,每個單元的
主要內(nèi)容如下:
單元一主要介紹了Web開發(fā)中的常用技術(shù),包括請求響應(yīng)的過程、原理及HTTP
請求響應(yīng)模型相關(guān)的基本知識,以及如何搭建JavaWeb開發(fā)環(huán)境。
單元二主要介紹了Servlet技術(shù),包括Servlet的創(chuàng)建、配置,Servlet的生命周期,
Servlet讀取表單數(shù)據(jù)、處理頁面的跳轉(zhuǎn)、處理頭信息,Servlet數(shù)據(jù)共享域、Cookie的
應(yīng)用等內(nèi)容。
單元三介紹了JSP編程技術(shù),包括JSP的各種語法元素,包括JSP腳本元素、JSP
的指令元素、內(nèi)建對象、JavaBean等內(nèi)容。
單元四介紹了文件上傳和下載的原理,以及一些常見問題的解決方法。
單元五介紹了過濾器和監(jiān)聽器,包括過濾器的原理、作用、開發(fā)步驟;監(jiān)聽器的
原理、開發(fā)步驟,列舉了常用的監(jiān)聽器的作用和使用方法。
單元六介紹了JDBC數(shù)據(jù)庫技術(shù),使用JDBC中相關(guān)的接口和類實現(xiàn)對數(shù)據(jù)庫的
增刪查改,以及事務(wù)、數(shù)據(jù)庫連接池等內(nèi)容。
單元七介紹了EL表達式和JSTL標(biāo)簽的使用,包括EL運算符、如何使用EL將
各數(shù)據(jù)域中的內(nèi)容顯示到頁面上,常見JSTL標(biāo)簽在頁面上的使用等。
I
JavaWeb開發(fā)任務(wù)教程
單元八展示了一個綜合的網(wǎng)站項目,將前面所學(xué)的知識進行綜合應(yīng)用,介紹了
MVC設(shè)計模式和DAO設(shè)計模式,并將設(shè)計模式運用到實際案例中;介紹了該實際案
例的總體功能架構(gòu)及數(shù)據(jù)庫的設(shè)計;將網(wǎng)站開發(fā)關(guān)鍵難點技術(shù)做出詳細的講解,包括
分頁、文本編輯器的使用、購物車、訂單提交、后臺管理等內(nèi)容。
本書各單元中的任務(wù)按照“任務(wù)描述”→“必備知識”→“任務(wù)透析”→“課堂
提問”等幾個環(huán)節(jié)來組織和編排,以任務(wù)為導(dǎo)向,貫穿案例教學(xué)的思想,符合認知規(guī)
律,能提高學(xué)習(xí)的質(zhì)量和學(xué)習(xí)效果。本書所有程序全部上機調(diào)試通過,另外,本書還
提供了多媒體課件和所有的案例程序源碼,可到/51eds/下載。
本書由嚴梅、吳道君、何受倩任主編,黃龍泉任副主編。其中:單元二、單元三、
單元四、單元八由嚴梅編寫,單元五、單元六由吳道君編寫,單元七由何受倩編寫,
單元一由黃龍泉編寫。本書由張怡芳、王耀軍審稿。
由于時間倉促,編者水平有限,書中難免存在疏漏和不足之處,敬請廣大讀者批
評指正。如果有任何意見和建議,歡迎與我們聯(lián)系,聯(lián)系郵箱:yanmei200801@126.com。
編者
2021年5月
II
目錄
目錄
單元一搭建JavaWeb開發(fā)環(huán)境·······································································1
任務(wù)一理解HTTP請求響應(yīng)模型······················································1
任務(wù)二了解Web應(yīng)用開發(fā)常用技術(shù)··················································9
任務(wù)三搭建JavaWeb開發(fā)環(huán)境·······················································12
單元小結(jié)·····················································································22
思考練習(xí)·····················································································22
單元二Servlet編程基礎(chǔ)·················································································23
任務(wù)一開發(fā)第一個Servlet程序·······················································23
任務(wù)二測試Servlet生命周期··························································30
任務(wù)三使用Servlet讀取表單數(shù)據(jù)····················································33
任務(wù)四使用Servlet處理頁面跳轉(zhuǎn)····················································38
任務(wù)五使用Servlet處理頭信息·······················································42
任務(wù)六使用Servlet數(shù)據(jù)共享域·······················································49
任務(wù)七使用Servlet處理Cookie······················································54
單元小結(jié)·····················································································60
思考練習(xí)·····················································································60
單元三JSP編程技術(shù)·······················································································62
任務(wù)一了解JSP··········································································62
任務(wù)二應(yīng)用JSP腳本元素······························································68
任務(wù)三應(yīng)用JSP指令元素······························································72
任務(wù)四應(yīng)用JSP動作元素······························································79
任務(wù)五應(yīng)用JSP內(nèi)建對象······························································88
單元小結(jié)···················································································102
思考練習(xí)···················································································102
單元四文件上傳和下載················································································104
任務(wù)一上傳文件·······································································104
任務(wù)二下載文件·······································································112
單元小結(jié)···················································································116
思考練習(xí)···················································································116
單元五過濾器和監(jiān)聽器·················································································117
任務(wù)一使用過濾器····································································117
任務(wù)二使用監(jiān)聽器····································································128
I
JavaWeb開發(fā)任務(wù)教程
單元小結(jié)···················································································138
思考練習(xí)···················································································138
單元六JDBC數(shù)據(jù)庫技術(shù)··············································································139
任務(wù)一JDBC入門·····································································139
任務(wù)二用Statement實現(xiàn)CRUD····················································145
任務(wù)三用PreparedStatement實現(xiàn)CRUD··········································155
任務(wù)四JDBC中處理事務(wù)·····························································161
任務(wù)五應(yīng)用數(shù)據(jù)庫連接池····························································165
單元小結(jié)···················································································170
思考練習(xí)···················································································170
單元七EL表達式和JSTL標(biāo)簽····································································173
任務(wù)一使用EL表達式·······························································173
任務(wù)二使用JSTL標(biāo)簽·······························································181
單元小結(jié)···················································································191
思考練習(xí)···················································································191
單元八綜合項目實戰(zhàn)—在線購物商城·······················································193
任務(wù)一掌握MVC設(shè)計模式和DAO設(shè)計模式····································193
任務(wù)二項目設(shè)計·······································································200
任務(wù)三關(guān)鍵技術(shù)實現(xiàn)·································································203
思考練習(xí)答案···································································································232
參考文獻···········································································································234
II
單元一搭建JavaWeb開發(fā)環(huán)境
單元一
搭建JavaWeb開發(fā)環(huán)境
理解HTTP請求響應(yīng)模型,了解Web應(yīng)用開發(fā)的技術(shù)及發(fā)展過程,了解常用的
JSP/Servlet容器,掌握搭建Eclipse+Tomcat+MySQL工作環(huán)境的方法,學(xué)會開發(fā)一個
基本的JavaWeb項目。
本單元包括以下幾個任務(wù):
●理解HTTP請求響應(yīng)模型
●了解Web應(yīng)用開發(fā)常用技術(shù)
●搭建JavaWeb開發(fā)環(huán)境
任務(wù)一理解HTTP請求響應(yīng)模型
了解訪問網(wǎng)站的數(shù)據(jù)流轉(zhuǎn)過程,了解HTTP協(xié)議,理解HTTP請求響應(yīng)模型。
1.訪問網(wǎng)站的完整流程
在瀏覽器的地址欄中輸入百度網(wǎng)址,得到百度網(wǎng)站首頁,可以將整個過程分為7
步。網(wǎng)站請求響應(yīng)示意圖如圖1-1所示。
①客戶機向DNS服務(wù)器請求解析域名所對應(yīng)的IP地址。
②DNS系統(tǒng)解析出百度的地址是7:443。
③客戶機與服務(wù)器建立連接。
④客戶機發(fā)出讀取文件的請求命令。
⑤服務(wù)器對客戶機的請求做出響應(yīng),把百度首頁HTML文本內(nèi)容返回給客戶機。
⑥釋放連接。
⑦客戶機解析HTML文本,并顯示百度網(wǎng)站首頁中的內(nèi)容。
1
JavaWeb開發(fā)任務(wù)教程
2.HTTP協(xié)議
超文本傳輸協(xié)議(HyperTextTransferProtocol,HTTP)是互聯(lián)網(wǎng)上應(yīng)用最廣泛的
一種網(wǎng)絡(luò)協(xié)議,所有的WWW文件都必須遵守這個標(biāo)準,HTTP協(xié)議定義Web客戶端
如何從Web服務(wù)器請求Web頁面,以及服務(wù)器如何把Web頁面?zhèn)魉徒o客戶端。設(shè)計
HTTP的目的是提供一種發(fā)布和接收HTML頁面的方法,它可以使瀏覽器更加高效,
使網(wǎng)絡(luò)傳輸減少,不僅保證計算機正確快速地傳輸超文本文檔,還確定傳輸文檔中的
哪一部分,以及哪部分內(nèi)容首先顯示(如文本先于圖形)等。瀏覽器通過HTTP傳輸
協(xié)議將Web服務(wù)器上站點的網(wǎng)頁代碼提取出來,并翻譯成網(wǎng)頁。
HTTP協(xié)議在發(fā)展過程中,經(jīng)歷了HTTP1.0和HTTP1.1兩個階段。
HTTP1.0規(guī)定瀏覽器與服務(wù)器只保持短暫的連接,瀏覽器的每次請求都需要與服
務(wù)器建立一個TCP連接,服務(wù)器完成請求處理后立即斷開TCP連接,服務(wù)器不跟蹤
每個客戶也不記錄過去的請求。但是,這也造成了一些性能上的缺陷,例如,一個包
含有許多圖像的網(wǎng)頁文件中并沒有包含真正的圖像數(shù)據(jù)內(nèi)容,而只是指明了這些圖像
的URL地址。當(dāng)Web瀏覽器訪問這個網(wǎng)頁文件時,瀏覽器首先要發(fā)出針對該網(wǎng)頁文
件的請求,當(dāng)瀏覽器解析Web服務(wù)器返回的該網(wǎng)頁文檔中的HTML內(nèi)容時,發(fā)現(xiàn)其
中的<img>圖像標(biāo)簽后,瀏覽器將根據(jù)<img>標(biāo)簽中的src屬性所指定的URL地址再次
向服務(wù)器發(fā)出下載圖像數(shù)據(jù)的請求,如圖1-2所示。
圖1-1網(wǎng)站請求響應(yīng)示意圖圖1-2HTTP1.0訪問圖解
顯然,訪問一個包含有許多圖像的網(wǎng)頁文件的整個過程包含了多次請求和響應(yīng),
每次請求和響應(yīng)都需要建立一個單獨的連接,每次連接只是傳輸一個文檔和圖像,
上一次和下一次請求完全分離。即使圖像文件都很小,客戶端和服務(wù)器端每次建立
和關(guān)閉連接也是一個相對比較費時的過程,并且會嚴重影響客戶機和服務(wù)器的性能。
當(dāng)一個網(wǎng)頁文件中同時包含JavaScript文件、CSS文件等內(nèi)容時,也會出現(xiàn)類似上述
情況。
為了克服HTTP1.0的這個缺陷,HTTP1.1支持持久連接,在一個TCP連接上可以
傳送多個HTTP請求和響應(yīng),減少了建立和關(guān)閉連接的消耗和延遲。一個包含有許多
圖像的網(wǎng)頁文件的多個請求和應(yīng)答可以在一個連接中傳輸,但每個單獨的網(wǎng)頁文件的
請求和應(yīng)答仍然需要使用各自的連接。HTTP1.1還允許客戶端不用等待上一次請求結(jié)
果返回,就可以發(fā)出下一次請求,但服務(wù)器端必須按照接收到客戶端請求的先后順序
2
單元一搭建JavaWeb開發(fā)環(huán)境
依次回送響應(yīng)結(jié)果,以保證客戶端能夠區(qū)分出每次請求的響應(yīng)內(nèi)容,這樣顯著地減少
了整個下載過程所需要的時間?;贖TTP1.1協(xié)議的客戶機與服務(wù)器的信息交換過程
如圖1-3所示。
圖1-3HTTP1.1訪問圖解
可見,HTTP1.1在繼承了HTTP1.0優(yōu)點的基礎(chǔ)上,也克服了HTTP1.0的性能問題。不
僅如此,HTTP1.1還通過增加更多的請求頭和響應(yīng)頭來改進和擴充HTTP1.0的功能。例如,
由于HTTP1.0不支持Host請求頭字段,Web瀏覽器無法使用主機頭名來明確表示要訪問
服務(wù)器上的哪個Web站點,這樣就無法使用Web服務(wù)器在同一個IP地址和端口號上配置
多個虛擬Web站點。在HTTP1.1中增加Host請求頭字段后,Web瀏覽器可以使用主機頭
名來明確表示要訪問服務(wù)器上的哪個Web站點,這就實現(xiàn)了在一臺Web服務(wù)器上可以在
同一個IP地址和端口號上使用不同的主機名來創(chuàng)建多個虛擬Web站點。HTTP1.1的持續(xù)
連接,也需要增加新的請求頭來幫助實現(xiàn),例如,Connection請求頭的值為Keep-Alive時,
客戶端通知服務(wù)器返回本次請求結(jié)果后保持連接;Connection請求頭的值為Close時,客
戶端通知服務(wù)器返回本次請求結(jié)果后關(guān)閉連接。HTTP1.1還提供了與身份認證、狀態(tài)管理
和Cache緩存等機制相關(guān)的請求頭和響應(yīng)頭。
3.URL統(tǒng)一資源定位符
在瀏覽器的地址欄中輸入的網(wǎng)站地址稱為統(tǒng)一資源定位符(UniformResource
Locator,URL),就像每家每戶都有一個門牌地址一樣,每個網(wǎng)頁也都有一個Internet
地址。當(dāng)在瀏覽器的地址欄中輸入一個URL或者單擊一個超鏈接時,URL就確定了
要瀏覽的地址。
客戶端是終端用戶,服務(wù)器端是網(wǎng)站。通過使用Web瀏覽器、網(wǎng)絡(luò)爬蟲或者其
他工具,客戶端發(fā)起一個到某URL地址的HTTP請求,請求訪問資源,如訪問HTML
文件和圖像等。應(yīng)答的服務(wù)器收到請求后,將對應(yīng)的資源返回給客戶端。
4.HTTP請求/響應(yīng)的步驟
HTTP協(xié)議采用了請求/響應(yīng)模型??蛻舳讼蚍?wù)器發(fā)送一個請求報文,請求報文包含
請求的方法、URL、協(xié)議版本、請求頭部和請求數(shù)據(jù)。服務(wù)器以一個狀態(tài)行作為響應(yīng),響
應(yīng)的內(nèi)容包括協(xié)議的版本、成功或者錯誤代碼、服務(wù)器信息、響應(yīng)頭部和響應(yīng)數(shù)據(jù)。
HTTP請求響應(yīng)的步驟如下:
①客戶端連接到Web服務(wù)器。一個HTTP客戶端,通常是瀏覽器,與Web服務(wù)
器的HTTP端口(默認為80)建立一個TCP套接字連接。
3
JavaWeb開發(fā)任務(wù)教程
②發(fā)送HTTP請求。通過TCP套接字,客戶端向Web服務(wù)器發(fā)送一個文本的請
求報文,一個請求報文由請求行、請求頭部、空行和請求數(shù)據(jù)4部分組成。
③服務(wù)器接受請求并返回HTTP響應(yīng)。Web服務(wù)器解析請求,定位請求資源。服
務(wù)器將資源副本寫到TCP套接字,由客戶端讀取。一個響應(yīng)由狀態(tài)行、響應(yīng)頭部、空
行和響應(yīng)數(shù)據(jù)4部分組成。
④釋放連接TCP連接。若Connection模式為Close,則服務(wù)器主動關(guān)閉TCP連
接,客戶端被動關(guān)閉連接,釋放TCP連接;若Connection模式為Keep-Alive,則該
連接會保持一段時間,在該時間內(nèi)可以繼續(xù)接收請求。
⑤客戶端瀏覽器解析HTML內(nèi)容??蛻舳藶g覽器首先解析狀態(tài)行,查看表明請
求是否成功的狀態(tài)代碼,然后解析每一個響應(yīng)頭,響應(yīng)頭告知以下為若干字節(jié)的HTML
文檔和文檔的字符集??蛻舳藶g覽器讀取響應(yīng)數(shù)據(jù)HTML,根據(jù)HTML的語法對其進
行格式化,并在瀏覽器窗口中顯示。
5.HTTP報文結(jié)構(gòu)
HTTP報文由從客戶機到服務(wù)器的請求和從服務(wù)器到客戶機的響應(yīng)構(gòu)成。請求消
息由請求頭、報文主體組成。其中,請求頭包含請求的方法、URL、協(xié)議版本,以及
請求修飾符、客戶信息和MIME類型等。報文格式如下:
請求行-通用信息頭-請求頭-實體頭-報文主體
典型的請求頭消息內(nèi)容如下:
Get/HTTP1.1
Host:
Accept:"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
Pragma:no-cache
Cache-Control:no-cache
User-Agent:"Mozilla/5.0(WindowsNT6.1;Win64;x64;rv:51.0)Gecko/
20100101Firefox/51.0"
服務(wù)器以一個狀態(tài)行作為響應(yīng),響應(yīng)的內(nèi)容包括消息協(xié)議的版本,成功或者錯誤
的編碼加上包含服務(wù)器信息、實體元信息以及可能的實體內(nèi)容。響應(yīng)報文格式如下:
狀態(tài)行-通用信息頭-響應(yīng)頭-實體頭-報文主體
典型的響應(yīng)頭消息內(nèi)容如下:
HTTP/1.0200OK
Date:Mon,20Mar201712:30:21GMT
Expires:Mon,20Mar201712:29:37GMT
Server:Apache/1.3.14(Unix)
Content-type:text/html;charset=utf-8
Last-modified:Tue,17Apr201606:46:28GMT
Content-length:39725426
Content-range:bytes55******/40279980
6.請求方法
HTTP協(xié)議中共定義了8種方法(又稱“動作”)來表明對Request-URI指定的資
源的不同操作方式,其表示的含義如表1-1所示。
4
單元一搭建JavaWeb開發(fā)環(huán)境
表1-1HTTP的8種請求方式
請求方式含義
GET向特定URI的資源發(fā)出請求
向指定URI的資源提交數(shù)據(jù)進行處理請求(如提交表單或者上傳文件)。數(shù)據(jù)被包含在請
POST
求體中。POST請求可能會導(dǎo)致新的資源的創(chuàng)建和已有資源的修改
返回服務(wù)器針對特定資源所支持的HTTP請求方法。也可以利用向Web服務(wù)器發(fā)送“*”
OPTIONS
的請求來測試服務(wù)器的功能
向服務(wù)器索要與GET請求相一致的響應(yīng),只不過響應(yīng)體將不會被返回。這一方法可以在
HEAD
不必傳輸整個響應(yīng)內(nèi)容的情況下,就可以獲取包含在響應(yīng)消息頭中的元信息
PUT向指定資源位置上傳其最新內(nèi)容
DELETE請求服務(wù)器刪除Request-URI所標(biāo)識的資源
TRACE回顯服務(wù)器收到的請求,主要用于測試或診斷
CONNECT保留將來使用
在Web開發(fā)中,最常用的方法為GET方法與POST方法。
(1)GET方法
GET方法是默認的HTTP請求方法,經(jīng)常使用GET方法提交表單數(shù)據(jù)。但用GET
方法提交的表單數(shù)據(jù)只經(jīng)過簡單的編碼,同時作為URL的一部分向Web服務(wù)器發(fā)送,
因此,如果使用GET方法提交表單數(shù)據(jù)就存在安全隱患。例如:
http://localhost/Test/LoginServlet?Name=Tom&Age=30&Password=123
從上面的URL請求中很容易辨認出表單提交的內(nèi)容(即“?”之后的內(nèi)容)。另外,
因為GET方法提交的數(shù)據(jù)將作為URL請求的一部分,所以提交的數(shù)據(jù)量不能太大。
(2)POST方法
POST方法是GET方法的一個替代方法,它主要向Web服務(wù)器提交表單數(shù)據(jù),尤
其是大批量的數(shù)據(jù)。POST方法克服了GET方法的一些缺點。通過POST方法提交表
單數(shù)據(jù)時,數(shù)據(jù)不是作為URL請求的一部分,而是作為請求數(shù)據(jù)正文傳送給Web服
務(wù)器,這就克服了GET方法中的信息無法保密和數(shù)據(jù)量太小的缺點。因此,出于安
全考慮以及對用戶隱私的尊重,提交表單時建議采用POST方法。
7.響應(yīng)狀態(tài)碼
服務(wù)器一旦收到請求,會向客戶端發(fā)回一個狀態(tài)行,如“HTTP/1.1200OK”和
(響應(yīng)的)消息,其中200就是響應(yīng)狀態(tài)碼。狀態(tài)碼元由3位數(shù)字組成,表示請求是
否被理解或被滿足。
狀態(tài)代碼的第一個數(shù)字代表當(dāng)前響應(yīng)的類型:
1xx代表信息,即請求已被服務(wù)器接收,繼續(xù)處理。
2xx表示成功,即請求已成功被服務(wù)器接收、理解并接受。
3xx表示重定向,即需要后續(xù)操作才能完成這一請求。
4xx表示請求錯誤,即請求含有詞法錯誤或者無法被執(zhí)行。
5xx表示服務(wù)器錯誤,即服務(wù)器在處理某個正確請求時發(fā)生錯誤。
具體編碼代表的意義如表1-2所示。
5
JavaWeb開發(fā)任務(wù)教程
表1-2HTTP消息狀態(tài)碼詳解
消息描述
1xx:信息
服務(wù)器僅接收到部分請求,但是一旦服務(wù)器并沒有拒絕該請求,客戶端應(yīng)該繼
100Continue
續(xù)發(fā)送其余的請求
101SwitchingProtocols服務(wù)器轉(zhuǎn)換協(xié)議:服務(wù)器將遵從客戶的請求轉(zhuǎn)換到另外一種協(xié)議
2xx:成功
200OK請求成功(其后是對GET和POST請求的應(yīng)答文檔)
201Created請求被創(chuàng)建完成,同時新的資源被創(chuàng)建
202Accepted供處理的請求已被接受,但是處理未完成
203Non-authoritative
文檔已經(jīng)正常地返回,但一些應(yīng)答頭可能不正確,因為使用的是文檔的副本
Information
沒有新文檔,瀏覽器應(yīng)該繼續(xù)顯示原來的文檔。如果用戶定期地刷新頁面,而
204NoContent
Servlet可以確定用戶文檔足夠新,這個狀態(tài)代碼很有用
沒有新文檔,瀏覽器應(yīng)該重置它所顯示的內(nèi)容。用來強制瀏覽器清除表單輸入
205ResetContent
內(nèi)容
206PartialContent客戶發(fā)送了一個帶有Range頭的GET請求,服務(wù)器完成了它
3xx:重定向
300MultipleChoices多重選擇。鏈接列表。用戶可以選擇某鏈接到達目的地。最多允許5個地址
301MovedPermanently所請求的頁面已經(jīng)轉(zhuǎn)移至新的URL
302Found所請求的頁面已經(jīng)臨時轉(zhuǎn)移至新的URL
303SeeOther所請求的頁面可在別的URL下被找到
未按預(yù)期修改文檔??蛻舳擞芯彌_的文檔并發(fā)出了一個條件性的請求(一般提
304NotModified供If-Modified-Since頭表示客戶只想比指定日期更新的文檔)。服務(wù)器告訴客戶,
原來緩沖的文檔還可以繼續(xù)使用
305UseProxy客戶請求的文檔應(yīng)該通過Location頭所指明的代理服務(wù)器提取
306Unused此代碼被用于前一版本,目前已不再使用,但是代碼依然被保留
307TemporaryRedirect被請求的頁面已經(jīng)臨時移至新的URL
4xx:客戶端錯誤
400BadRequest服務(wù)器未能理解請求
401Unauthorized被請求的頁面需要用戶名和密碼
401.1登錄失敗
401.2服務(wù)器配置導(dǎo)致登錄失敗
401.3由于ACL對資源的限制而未獲得授權(quán)
6
單元一搭建JavaWeb開發(fā)環(huán)境
續(xù)表
消息描述
401.4篩選器授權(quán)失敗
401.5ISAPI/CGI應(yīng)用程序授權(quán)失敗
401.7訪問被Web服務(wù)器上的URL授權(quán)策略拒絕。這個錯誤代碼為IIS6.0所專用
402PaymentRequired此代碼尚無法使用
403Forbidden對被請求頁面的訪問被禁止
403.1執(zhí)行訪問被禁止
403.2讀訪問被禁止
403.3寫訪問被禁止
403.4要求SSL
403.5要求SSL128
403.6IP地址被拒絕
403.7要求客戶端證書
403.8站點訪問被拒絕
403.9用戶數(shù)過多
403.10配置無效
403.11密碼更改
403.12拒絕訪問映射表
403.13客戶端證書被吊銷
403.14拒絕目錄列表
403.15超出客戶端訪問許可
403.16客戶端證書不受信任或無效
403.17客戶端證書已過期或尚未生效
在當(dāng)前的應(yīng)用程序池中不能執(zhí)行所請求的URL。這個錯誤代碼為IIS6.0
403.18
所專用
不能為這個應(yīng)用程序池中的客戶端執(zhí)行CGI。這個錯誤代碼為IIS6.0所
403.19
專用
403.20Passport登錄失敗。這個錯誤代碼為IIS6.0所專用
404NotFound服務(wù)器無法找到被請求的頁面
404.0(無)——沒有找到文件或目錄
404.1無法在所請求的端口上訪問Web站點
404.2Web服務(wù)擴展鎖定策略阻止本請求
404.3MIME映射策略阻止本請求
405MethodNotAllowed請求中指定的方法不被允許
7
JavaWeb開發(fā)任務(wù)教程
續(xù)表
消息描述
406NotAcceptable服務(wù)器生成的響應(yīng)無法被客戶端所接受
407ProxyAuthenticationRequired用戶必須首先使用代理服務(wù)器進行驗證,這樣請求才會被處理
408RequestTimeout請求超出了服務(wù)器的等待時間
409Conflict由于沖突,請求無法被完成
410Gone被請求的頁面不可用
411LengthRequiredContent-Length未被定義。如果無此內(nèi)容,服務(wù)器不會接受請求
412PreconditionFailed請求中的前提條件被服務(wù)器評估為失敗
413RequestEntityTooLarge由于所請求的實體太大,服務(wù)器不會接受請求
由于URL太長,服務(wù)器不會接受請求。當(dāng)POST請求被轉(zhuǎn)換為帶有很長的
414Request-urlTooLong
查詢信息的GET請求時,就會發(fā)生這種情況
415UnsupportedMediaType由于媒介類型不被支持,服務(wù)器不會接受請求
416RequestedRangeNotSatisfiable服務(wù)器不能滿足客戶在請求中指定的Range頭
417ExpectationFailed執(zhí)行失敗
423鎖定的錯誤
5xx:服務(wù)器錯誤
500InternalServerError請求未完成。服務(wù)器遇到不可預(yù)知的情況
500.12應(yīng)用程序正忙于在Web服務(wù)器上重新啟動
500.13Web服務(wù)器太忙
500.15不允許直接請求Global.asa
500.16UNC授權(quán)憑據(jù)不正確。這個錯誤代碼為IIS6.0所專用
500.18URL授權(quán)存儲不能打開。這個錯誤代碼為IIS6.0所專用
500.100內(nèi)部ASP錯誤
501NotImplemented請求未完成。服務(wù)器不支持所請求的功能
502BadGateway請求未完成。服務(wù)器從上游服務(wù)器收到一個無效的響應(yīng)
502.1CGI應(yīng)用程序超時
502.2CGI應(yīng)用程序出錯
503ServiceUnavailable請求未完成。服務(wù)器臨時過載或宕機
504GatewayTimeout網(wǎng)關(guān)超時
505HTTPVersionNotSupport服務(wù)器不支持請求中指明的HTTP協(xié)議版本
通常,一個HTTP請求/響應(yīng)的工作流程大概可以用以下4步來概括:
步驟1:客戶端瀏覽器先要與服務(wù)器建立連接,在瀏覽器上最常見的場景就是單
擊一個鏈接,這就觸發(fā)了連接的建立。
步驟2:連接建立后,客戶端瀏覽器發(fā)送一個請求到服務(wù)器,這個過程其實是組
裝請求報文的過程。
步驟3:服務(wù)器端接收到請求報文后,對報文進行解析,組裝成一定格式的響應(yīng)
8
單元一搭建JavaWeb開發(fā)環(huán)境
報文,返回給客戶端。
步驟4:客戶端瀏覽器接收到響應(yīng)報文后,通過瀏覽器內(nèi)核對其進行解析,按照
一定的外觀進行顯示,然后與服務(wù)器斷開連接。
①簡述HTTP協(xié)議的作用。
②訪問網(wǎng)站的完整流程是什么?
③GET方法和POST方法有何區(qū)別?分別何時用到GET和POST方法?
任務(wù)二了解Web應(yīng)用開發(fā)常用技術(shù)
了解Web應(yīng)用開發(fā)常用的技術(shù),比較服務(wù)器端技術(shù)和客戶端技術(shù)的區(qū)別。
1.客戶端技術(shù)
(1)HTML+CSS
HTML(超文本標(biāo)記語言)是標(biāo)準通用標(biāo)記語言下的一個應(yīng)用?!俺谋尽本褪侵?/p>
頁面內(nèi)可以包含圖片、鏈接,甚至音樂、程序等非文字元素。超文本標(biāo)記語言的結(jié)構(gòu)
包括“頭”部分(Head)和“主體”部分(Body),其中“頭”部分提供關(guān)于網(wǎng)頁的
信息,“主體”部分提供網(wǎng)頁的具體內(nèi)容。網(wǎng)頁的本質(zhì)就是HTML通過結(jié)合使用其他
的Web技術(shù)(如腳本語言、公共網(wǎng)關(guān)接口、組件等),可以創(chuàng)造出功能強大的網(wǎng)頁。
因此,HTML是萬維網(wǎng)編程的基礎(chǔ),也就是說萬維網(wǎng)是建立在超文本基礎(chǔ)之上的。
CSS(CascadingStyleSheet,層疊樣式表,或級聯(lián)樣式表)是一組格式設(shè)置規(guī)則,
用于控制Web頁面的外觀。通過使用CSS樣式設(shè)置頁面的格式,可將頁面的內(nèi)容與
表現(xiàn)形式分離。頁面內(nèi)容存放在HTML文檔中,而用于定義表現(xiàn)形式的CSS規(guī)則則存
放在另一個文件中或HTML文檔的某一部分,通常為文件“頭”部分。將內(nèi)容與表現(xiàn)
形式分離,不僅可使維護站點的外觀更加容易,而且還可以使HTML文檔代碼更加簡
練,縮短瀏覽器的加載時間。
(2)JavaScript
JavaScript是一種直譯式腳本語言,是一種動態(tài)類型、弱類型、基于原型的語言,
內(nèi)置支持類型。它的解釋器稱為JavaScript引擎,為瀏覽器的一部分,廣泛用于客戶
端的腳本語言,最早在HTML網(wǎng)頁上使用,用來給HTML網(wǎng)頁增加動態(tài)效果。JavaScript
腳本語言同其他語言一樣,有它自身的基本數(shù)據(jù)類型、表達式和算術(shù)運算符及程序的
基本程序框架。JavaScript提供了4種基本的數(shù)據(jù)類型和2種特殊數(shù)據(jù)類型用來處理
數(shù)據(jù)和文字。變量提供存放信息的地方,表達式則可以完成較復(fù)雜的信息處理。
(3)JQuery
JQuery是一個快速、簡潔的JavaScript框架,是繼Prototype之后又一個優(yōu)秀的
9
JavaWeb開發(fā)任務(wù)教程
JavaScript代碼庫(或JavaScript框架)。JQuery設(shè)計的宗旨是“WriteLess,DoMore”,
即倡導(dǎo)寫更少的代碼,做更多的事情。它封裝JavaScript常用的功能代碼,提供一種
簡便的JavaScript設(shè)計模式,優(yōu)化HTML文檔操作、事件處理、動畫設(shè)計和Ajax交互。
JQuery的核心特性可以總結(jié)為:具有獨特的鏈式語法和短小清晰的多功能接口;具有
高效靈活的CSS選擇器,并且可對CSS選擇器進行擴展;擁有便捷的插件擴展機制和豐富
的插件。JQuery兼容各種主流瀏覽器,如IE6.0+、FF1.5+、Safari2.0+、Opera9.0+等。
2.服務(wù)器端技術(shù)
在開發(fā)動態(tài)網(wǎng)站時,離不開服務(wù)器端技術(shù),服務(wù)器端技術(shù)主要有CGI、ASP、PHP、
ASP.NET和JavaEE等。
(1)CGI
CGI(CommonGatewayInterface,通用網(wǎng)關(guān)接口)是最早用來創(chuàng)建動態(tài)網(wǎng)頁的技
術(shù),它可以使瀏覽器與服務(wù)器之間產(chǎn)生互動。它允許使用不同語言編寫適合的CGI
程序,該程序被放在Web服務(wù)器上運行。當(dāng)客戶端發(fā)出請求給服務(wù)器時,服務(wù)器根
據(jù)用戶請求建立一個新的進程來執(zhí)行指定的CGI程序并將執(zhí)行結(jié)果以網(wǎng)頁的形式返
回給客戶端的瀏覽器并顯示出來。雖然CGI是當(dāng)前應(yīng)用程序的基礎(chǔ)技術(shù),但這種技術(shù)
的編制比較困難,且效率低下,因為每次頁面被請求時,都要求服務(wù)器重新將CGI
程序編寫成可執(zhí)行的代碼。在CGI中最常用的語言有C/C++、Java和Perl。
(2)ASP
ASP(ActiveServer
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 如何提高家長的育兒信心
- 中國智能制造技術(shù)創(chuàng)新項目投資合作協(xié)議
- 小螞蟻搬豆的故事解讀
- 智能種植環(huán)境監(jiān)測與調(diào)控方案
- 企業(yè)云桌面課程設(shè)計制作
- 零售行業(yè)智能庫存管理與訂單追蹤系統(tǒng)開發(fā)
- 信號發(fā)生器相關(guān)項目投資計劃書范本
- 道路建設(shè)承包合同
- 2024年新編:智能倉儲物流系統(tǒng)開發(fā)與實施合同
- 信托與G網(wǎng)絡(luò)兼容性測試考核試卷
- DB37-T 4253-2020 地?zé)豳Y源勘查技術(shù)規(guī)程
- 諸暨中學(xué)提前招生選拔考試數(shù)學(xué)試卷含答案
- 高壓氧治療-PPT課件
- 研究型課程(跨學(xué)科)項目學(xué)習(xí)設(shè)計與實施案例
- 西門子s7_200PLC基本指令
- 特殊學(xué)生成長檔案記錄(精選.)
- 高速公路安全封路施工標(biāo)志標(biāo)牌示意圖
- 計算機科學(xué)前沿技術(shù)課心得體會
- 窗玻璃的可見光透射比.遮陽系數(shù)
- 監(jiān)理工作程序流程圖(共24頁)
- 打印機租賃服務(wù)月考核表
評論
0/150
提交評論