本書結(jié)合一個(gè)應(yīng)用程序的開發(fā)全過程,介紹Java Web應(yīng)用程序的開發(fā)技術(shù)與方法。全書分為三部分:*部分是基礎(chǔ)性內(nèi)容,利用Java Web開發(fā)的基礎(chǔ)知識(shí)實(shí)現(xiàn)一個(gè)原型系統(tǒng);第二部分是提高性內(nèi)容,應(yīng)用面向?qū)ο缶幊碳夹g(shù)和設(shè)計(jì)模式對(duì)程序進(jìn)行重構(gòu)開發(fā),改善功能實(shí)現(xiàn)和程序結(jié)構(gòu);第三部分是應(yīng)用性內(nèi)容,引入第三方組件和開發(fā)框架,結(jié)合實(shí)例介紹常用的開發(fā)方法。
本書在內(nèi)容組織上,力求避免知識(shí)的簡單堆砌,改變傳統(tǒng)教材常見的技術(shù)手冊(cè)式寫法,針對(duì)應(yīng)用型本科注重實(shí)踐能力培養(yǎng)的需要,遵循以做帶學(xué)的內(nèi)容組織形式、任務(wù)驅(qū)動(dòng)的學(xué)習(xí)模式、內(nèi)容選擇圍繞開發(fā)目標(biāo)、關(guān)聯(lián)知識(shí)適當(dāng)屏蔽等原則,為讀者提供一種新的學(xué)習(xí)體驗(yàn)。
本書既可以作為高等學(xué)校Java Web應(yīng)用開發(fā)課程的教材,也可以作為讀者自學(xué)相關(guān)開發(fā)技術(shù)的參考書。
(1)面向應(yīng)用型本科突出實(shí)踐能力培養(yǎng)(2)圍繞開發(fā)任務(wù)組織教材內(nèi)容(3)強(qiáng)調(diào)程序分析與設(shè)計(jì)基礎(chǔ)上的功能實(shí)現(xiàn)(4)迭代式開發(fā)與遞進(jìn)式學(xué)習(xí)相融合(5)先用后學(xué)實(shí)現(xiàn)學(xué)習(xí)環(huán)節(jié)翻轉(zhuǎn)
前言
本書介紹Java Web應(yīng)用開發(fā)技術(shù)。針對(duì)應(yīng)用型本科強(qiáng)調(diào)實(shí)踐能力培養(yǎng)的需要,本書用一個(gè)應(yīng)用程序的開發(fā)貫穿所有章節(jié)。在內(nèi)容組織上,避免知識(shí)的簡單堆砌,改變傳統(tǒng)教材常見的技術(shù)手冊(cè)式寫法。作者認(rèn)為Java Web應(yīng)用開發(fā)技術(shù)的學(xué)習(xí)方式應(yīng)該與基礎(chǔ)性專業(yè)課程有所不同,其綜合性較強(qiáng),需要在掌握C語言、Java語言、數(shù)據(jù)庫等基礎(chǔ)編程技能之后才能學(xué)習(xí)。因此,本書作者嘗試進(jìn)行了一種翻轉(zhuǎn),即變先學(xué)后做為以做帶學(xué)。
全書結(jié)構(gòu)按照需求分析(第1章)、界面設(shè)計(jì)(第2章)、功能實(shí)現(xiàn)(第3~5章)、重構(gòu)開發(fā)(第6~8章)、功能完善(第9、10章)的思路進(jìn)行組織,希望能以完成開發(fā)任務(wù)的方式,引導(dǎo)讀者在使用中掌握相關(guān)知識(shí)和編程技能。
除前3章為基礎(chǔ)知識(shí)介紹之外,其余各章都遵循相同的編寫體例。
首先給出本章的學(xué)習(xí)目標(biāo),分為理解、掌握和了解三個(gè)層次。理解針對(duì)本章所涉及的主要概念和基本原理;掌握針對(duì)應(yīng)用本章知識(shí)實(shí)現(xiàn)特定功能開發(fā)的能力;了解針對(duì)書中未做深入講解的相關(guān)知識(shí)部分。
然后利用一到兩個(gè)開發(fā)實(shí)例,實(shí)現(xiàn)幾個(gè)相對(duì)獨(dú)立的軟件功能。每個(gè)實(shí)例都按照開發(fā)任務(wù)說明、功能設(shè)計(jì)、功能實(shí)現(xiàn)和運(yùn)行過程分析的形式來介紹其開發(fā)過程。只要參照給定的步驟,就可以編程實(shí)現(xiàn)相應(yīng)的功能。同時(shí)也對(duì)編程涉及的關(guān)鍵知識(shí)點(diǎn)進(jìn)行有針對(duì)性的講解,不追求完整性和系統(tǒng)性,以夠用為原則。
接下來介紹本章開發(fā)實(shí)例涉及的基本概念和相關(guān)知識(shí),便于讀者了解知識(shí)體系,為將來深入學(xué)習(xí)打好基礎(chǔ)。第5~8章在此之后又給出一個(gè)應(yīng)用本章所學(xué)內(nèi)容完成的綜合實(shí)例,進(jìn)一步鞏固學(xué)到的編程技能。
最后提供了單選或簡答形式的知識(shí)測試題以及上機(jī)練習(xí)要求,便于讀者檢驗(yàn)自己的學(xué)習(xí)效果。
本書的特色體現(xiàn)在以下幾個(gè)方面:
(1)
突出應(yīng)用能力培養(yǎng)。全書根據(jù)功能開發(fā)和知識(shí)體系兩個(gè)維度,圍繞示例應(yīng)用項(xiàng)目的開發(fā)過程,把教材內(nèi)容分解為多個(gè)知識(shí)單元。
(2)
合理取舍教材內(nèi)容。以滿足示例功能開發(fā)的需要為標(biāo)準(zhǔn)確定內(nèi)容,不一味追求知識(shí)結(jié)構(gòu)的完整性,對(duì)不常用的知識(shí)點(diǎn)只給出簡要介紹和引導(dǎo)性講解。
(3)
尊重學(xué)習(xí)規(guī)律。按照循序漸進(jìn)、由易到難的原則,合理設(shè)計(jì)功能開發(fā)的順序,讓讀者能夠在成就感的驅(qū)動(dòng)下逐步完成全書內(nèi)容的學(xué)習(xí)。〖1〗Java Web應(yīng)用開發(fā)前言[3]〖3〗(4)
采用全新編寫體例。各章都采用任務(wù)驅(qū)動(dòng)方式,從開發(fā)任務(wù)出發(fā),通過設(shè)計(jì)、實(shí)現(xiàn)、分析、練習(xí),使讀者在理解示例開發(fā)的基礎(chǔ)上實(shí)現(xiàn)能力提高。
全書內(nèi)容分為三部分:
第一部分是基礎(chǔ)性內(nèi)容,介紹示例應(yīng)用的功能需求,并開發(fā)實(shí)現(xiàn)一個(gè)原型系統(tǒng),包括第1~5章;第二部分是提高性內(nèi)容,應(yīng)用面向?qū)ο缶幊碳夹g(shù)和設(shè)計(jì)模式實(shí)現(xiàn)程序的重構(gòu)開發(fā),包括第6~8章;第三部分是應(yīng)用性內(nèi)容,引入第三方組件和開發(fā)框架,結(jié)合實(shí)例介紹常用的開發(fā)方法,包括第9、10章。本書作為教材使用時(shí),講授全部內(nèi)容大約需要64學(xué)時(shí),可根據(jù)學(xué)時(shí)情況講授部分內(nèi)容。建議32學(xué)時(shí)可講授第1~5章,48學(xué)時(shí)可講授第1~7章。
本書是華北科技學(xué)院教研基金資助課題(No.HKJY201412)的研究成果。同時(shí),在編寫過程中也參考了大量的相關(guān)教材和網(wǎng)上資料。在此,向所有支持本書編寫工作的人員表示感謝。
本書第1章、第5章、第8章和第10章由李永飛編寫,第2章和第9章由郭曉欣編寫,第3章和第4章由吳曉丹編寫,第6章和第7章由李芙玲編寫,全書由李永飛負(fù)責(zé)統(tǒng)稿。書中所有示例程序的源代碼以及參考電子教案可從清華大學(xué)出版社網(wǎng)站(www.tup.com.cn)下載。書中難免存在不足之處,敬請(qǐng)讀者批評(píng)指正。
作者
2018年1月
目錄
第1章開發(fā)任務(wù)概述/1
1.1示例應(yīng)用介紹1
1.1.1示例應(yīng)用需求1
1.1.2示例應(yīng)用功能2
1.2Java Web應(yīng)用開發(fā)技術(shù)8
1.2.1應(yīng)用程序的演化8
1.2.2客戶端開發(fā)技術(shù)10
1.2.3服務(wù)器端開發(fā)技術(shù)11
1.2.4HTTP13
1.3Web應(yīng)用開發(fā)流程14
1.3.1需求分析14
1.3.2系統(tǒng)設(shè)計(jì)14
1.3.3編程實(shí)現(xiàn)15
1.3.4測試發(fā)布15
1.4本章小結(jié)16
1.5習(xí)題16
第2章用戶界面設(shè)計(jì)/17
2.1用戶界面設(shè)計(jì)任務(wù)17
2.2用戶界面元素開發(fā)17
2.2.1典型界面元素實(shí)現(xiàn)17
2.2.2HTML相關(guān)知識(shí)29
2.3界面布局設(shè)計(jì)31
2.3.1界面布局構(gòu)成31
2.3.2界面布局實(shí)現(xiàn)33
2.3.3CSS相關(guān)知識(shí)41
2.4客戶端功能開發(fā)44
2.4.1客戶端功能設(shè)計(jì)44
2.4.2客戶端功能實(shí)現(xiàn)45
2.4.3JavaScript相關(guān)知識(shí)51〖1〗Java Web應(yīng)用開發(fā)目錄[3]〖3〗2.5本章小結(jié)54
2.6習(xí)題54
第3章Web應(yīng)用開發(fā)基礎(chǔ)/55
3.1開發(fā)環(huán)境和運(yùn)行環(huán)境55
3.1.1開發(fā)環(huán)境55
3.1.2運(yùn)行環(huán)境56
3.1.3安裝和配置JDK56
3.1.4安裝和配置Tomcat58
3.2JSP基本概念63
3.2.1JSP開發(fā)方法63
3.2.2JSP運(yùn)行機(jī)制64
3.2.3Web應(yīng)用目錄結(jié)構(gòu)69
3.3JSP基礎(chǔ)語法70
3.3.1JSP腳本元素70
3.3.2JSP指令元素76
3.3.3JSP標(biāo)記元素81
3.4結(jié)構(gòu)化網(wǎng)頁設(shè)計(jì)86
3.5本章小結(jié)91
3.6習(xí)題91
第4章流程控制與數(shù)據(jù)傳遞/92
4.1用戶注冊(cè)功能開發(fā)92
4.1.1用戶注冊(cè)開發(fā)任務(wù)92
4.1.2用戶注冊(cè)設(shè)計(jì)與實(shí)現(xiàn)92
4.1.3用戶注冊(cè)功能運(yùn)行過程96
4.1.4HTTP請(qǐng)求響應(yīng)機(jī)制96
4.2用戶登錄功能開發(fā)98
4.2.1用戶登錄開發(fā)任務(wù)98
4.2.2用戶登錄設(shè)計(jì)與實(shí)現(xiàn)99
4.2.3用戶登錄功能運(yùn)行過程102
4.2.4HTTP會(huì)話機(jī)制102
4.3JSP內(nèi)置對(duì)象104
4.3.1request對(duì)象104
4.3.2response對(duì)象111
4.3.3session對(duì)象116
4.3.4其他內(nèi)置對(duì)象123
4.4控制流和數(shù)據(jù)流的實(shí)現(xiàn)124
4.4.1JSP頁面間的流程控制124
4.4.2JSP頁面間的數(shù)據(jù)傳遞125
4.4.3自動(dòng)登錄功能開發(fā)127
4.5本章小結(jié)134
4.6習(xí)題135
第5章數(shù)據(jù)庫訪問/136
5.1用戶注冊(cè)功能完善136
5.1.1注冊(cè)提交設(shè)計(jì)與實(shí)現(xiàn)136
5.1.2注冊(cè)提交運(yùn)行過程140
5.1.3數(shù)據(jù)庫訪問代碼模板140
5.2用戶登錄功能完善142
5.2.1登錄判斷設(shè)計(jì)與實(shí)現(xiàn)142
5.2.2登錄判斷運(yùn)行過程144
5.3JDBC技術(shù)145
5.3.1JDBC API145
5.3.2JDBC的使用149
5.4用戶管理功能開發(fā)154
5.4.1用戶管理開發(fā)任務(wù)154
5.4.2用戶管理設(shè)計(jì)與實(shí)現(xiàn)155
5.4.3用戶管理運(yùn)行過程164
5.5本章小結(jié)165
5.6習(xí)題165
第6章重構(gòu)程序功能/166
6.1重構(gòu)用戶登錄功能166
6.1.1登錄功能重構(gòu)設(shè)計(jì)與實(shí)現(xiàn)166
6.1.2重構(gòu)登錄功能后的運(yùn)行過程170
6.2重構(gòu)用戶注冊(cè)功能170
6.2.1注冊(cè)功能重構(gòu)設(shè)計(jì)與實(shí)現(xiàn)170
6.2.2重構(gòu)注冊(cè)功能后的運(yùn)行過程174
6.3JavaBean技術(shù)174
6.3.1JavaBean的編寫和使用174
6.3.2基于JavaBean的開發(fā)181
6.4新聞模塊功能開發(fā)183
6.4.1新聞模塊開發(fā)任務(wù)183
6.4.2新聞模塊設(shè)計(jì)與實(shí)現(xiàn)184
6.4.3新聞模塊的運(yùn)行過程196
6.5本章小結(jié)197
6.6習(xí)題197
第7章重構(gòu)程序界面/198
7.1重構(gòu)JSP頁面198
7.1.1重構(gòu)循環(huán)控制198
7.1.2重構(gòu)功能菜單200
7.2EL和JSTL202
7.2.1EL202
7.2.2JSTL標(biāo)記庫206
7.3新聞修改功能的開發(fā)214
7.3.1新聞修改開發(fā)任務(wù)214
7.3.2新聞修改設(shè)計(jì)與實(shí)現(xiàn)214
7.3.3新聞修改運(yùn)行過程219
7.4本章小結(jié)219
7.5習(xí)題220
第8章重構(gòu)程序結(jié)構(gòu)/221
8.1新聞搜索功能開發(fā)221
8.1.1新聞搜索開發(fā)任務(wù)221
8.1.2新聞搜索設(shè)計(jì)與實(shí)現(xiàn)221
8.1.3新聞搜索運(yùn)行過程228
8.2Servlet開發(fā)228
8.2.1Servlet基礎(chǔ)229
8.2.2Servlet應(yīng)用231
8.2.3Servlet過濾器233
8.3MVC設(shè)計(jì)模式238
8.3.1程序結(jié)構(gòu)設(shè)計(jì)238
8.3.2評(píng)論模塊開發(fā)241
8.4本章小結(jié)257
8.5習(xí)題257
第9章實(shí)用功能開發(fā)/259
9.1在線編輯組件259
9.2文件上傳與下載組件262
9.3AJAX技術(shù)267
9.4分頁顯示技術(shù)272
9.5圖形驗(yàn)證碼279
9.6本章小結(jié)286
9.7習(xí)題286
第10章基于框架的開發(fā)/287
10.1基于Struts2的開發(fā)287
10.1.1基于Struts2實(shí)現(xiàn)用戶登錄287
10.1.2Struts2框架292
10.2基于jQuery的客戶端開發(fā)294
10.3本章小結(jié)298
10.4習(xí)題298
附錄A表格布局頁面文件/299
附錄B安裝配置數(shù)據(jù)庫環(huán)境/303
參考文獻(xiàn)/312