《Java Web開發(fā)實(shí)用教程》以Servlet技術(shù)為起點(diǎn),注重Web編程的原理知識(shí),對(duì)JSP知識(shí)采取必要、必備原則,以EL和JSTL的使用為重點(diǎn),通過傳統(tǒng)的MVC模式應(yīng)用將Servlet、JSP知識(shí)融會(huì)貫通;*后介紹了基于Spring框架技術(shù)的MVC應(yīng)用,使讀者掌握Web編程框架及其設(shè)計(jì)思想和MVC編程方法。
《Java Web開發(fā)實(shí)用教程》強(qiáng)調(diào)原理與實(shí)戰(zhàn)的結(jié)合,注重通過實(shí)戰(zhàn)來提升讀者解決實(shí)際問題的能力,融合前端和后端技術(shù),打通從學(xué)到用的路線,并利用流程圖梳理Web編程要素:瀏覽器、服務(wù)器、HTTP之間的工作過程,幫助讀者建立清晰的編程思路。
《Java Web開發(fā)實(shí)用教程》可以作為大學(xué)本科、?朴(jì)算機(jī)及相關(guān)專業(yè)的教材,也可作為Java愛好者、工程技術(shù)人員的自學(xué)參考書。
《Java Web開發(fā)實(shí)用教程》配有授課電子課件、課后習(xí)題答案和程序源代碼,需要的教師可登錄www.cmpedu.com免費(fèi)注冊(cè),審核通過后下載,或聯(lián)系編輯索。ㄎ⑿牛15910938545,電話:010-88379739)。
適讀人群 :本科計(jì)算機(jī)專業(yè)
以后端編程為主,融合前端設(shè)計(jì)的擬全棧式開發(fā)過程
通過思維導(dǎo)圖對(duì)每章知識(shí)、案例進(jìn)行了梳理,提綱挈領(lǐng)
配套資源豐富,PPT、教學(xué)大綱、源代碼、課后習(xí)題答案、關(guān)鍵技術(shù)索引
前 言
Java Web的應(yīng)用開發(fā)是Web后端開發(fā)的主流技術(shù)。
Web開發(fā)的難度首先在于涉及的技術(shù)繁多,以Java Web為例,除了本身的核心組件Servlet和 JSP 之外,完整的 Web 應(yīng)用開發(fā)還需要具備前端頁面和CSS的基礎(chǔ)知識(shí),同時(shí)使用JavaScript與后端程序進(jìn)行交互,最后使用數(shù)據(jù)庫訪問技術(shù)完成數(shù)據(jù)存儲(chǔ)的持久化。開發(fā)過程中除了Java EE體系中類庫的學(xué)習(xí)之外,還需要搭建服務(wù)器運(yùn)行環(huán)境,并通過對(duì)HTTP的理解駕馭請(qǐng)求和響應(yīng)處理。那么,眾多的代碼從哪里開始寫?代碼之間的調(diào)用關(guān)系是什么?如何發(fā)起請(qǐng)求、傳遞數(shù)據(jù)?如何解決好這些涉及Web程序編寫思路的問題十分重要。
另一方面Web開發(fā)打破了一般程序設(shè)計(jì)的編寫調(diào)試過程,不只使用IDE,還需要在服務(wù)器環(huán)境中部署程序、在瀏覽器中運(yùn)行程序;調(diào)試程序不僅僅是IDE中的事情,還需要瀏覽器的配合。
并且Web開發(fā)技術(shù)的發(fā)展方向是從純手工編寫每行代碼到運(yùn)用框架技術(shù)開發(fā)應(yīng)用,通過應(yīng)用框架技術(shù)提升開發(fā)效率。
針對(duì)Web開發(fā)的這些特點(diǎn),《Java Web開發(fā)實(shí)用教程》采取如下編寫思路。
(1)以后端編程為主,融合前端設(shè)計(jì)的擬全棧式開發(fā)過程
后端開發(fā)以Servlet為起點(diǎn),JSP知識(shí)采取必要、必備原則,從傳統(tǒng)MVC到Spring MVC,構(gòu)建Web編程的完整路線。同時(shí),在后端程序的編寫過程中融合前端技術(shù),用Ajax技術(shù)+JSON數(shù)據(jù)作為連接線將前端處理與后端處理相結(jié)合,實(shí)踐完整的Web開發(fā)過程。
《Java Web開發(fā)實(shí)用教程》的案例及課后練習(xí)中已具有CSS樣式設(shè)計(jì)的相關(guān)內(nèi)容,可以作為前端學(xué)習(xí)的補(bǔ)充,并直接用于后端開發(fā)的實(shí)踐。
(2)原理與實(shí)戰(zhàn)并重
《Java Web開發(fā)實(shí)用教程》秉承知其然更知其所以然的思想,注重編程背后的理論知識(shí)的講解,解決為什么瀏覽器和服務(wù)器可以通信,為什么會(huì)出現(xiàn)中文亂碼,為什么要構(gòu)建MVC模式等問題,讓編程的基礎(chǔ)更為堅(jiān)實(shí)。
《Java Web開發(fā)實(shí)用教程》每章都包含了大量的Web應(yīng)用實(shí)例,如注冊(cè)登錄、論壇、管理信息系統(tǒng)、網(wǎng)上書店等,通過實(shí)例講解Web技術(shù)的運(yùn)用,逐步培養(yǎng)學(xué)生解決復(fù)雜問題的能力,打通從學(xué)到用的路線。
(3)使用圖表增強(qiáng)文字的表現(xiàn)力
相對(duì)于文字而言,圖可以更形象、立體地展示知識(shí)及彼此間的聯(lián)系,表可以梳理、對(duì)比相關(guān)、相似的知識(shí)點(diǎn),從而快速提取到文字的主旨、脈絡(luò)和精華。
《Java Web開發(fā)實(shí)用教程》盡可能使用圖表簡(jiǎn)明扼要地展示知識(shí)結(jié)構(gòu)、編程思路。利用流程圖梳理Web編程三要素—瀏覽器、服務(wù)器、HTTP之間的工作過程,建立清晰的Web編程思路;通過結(jié)構(gòu)圖展示系統(tǒng)各層之間的關(guān)系,體現(xiàn)系統(tǒng)架構(gòu)。
《Java Web開發(fā)實(shí)用教程》各章都通過思維導(dǎo)圖對(duì)整章知識(shí)、案例進(jìn)行了梳理,提綱挈領(lǐng),將知識(shí)從點(diǎn)連接成線,再構(gòu)建為面,最終立體化。
《Java Web開發(fā)實(shí)用教程》內(nèi)容結(jié)構(gòu)如下。
《Java Web開發(fā)實(shí)用教程》還隨書提供關(guān)鍵技術(shù)索引、課后習(xí)題答案及所有程序源代碼,可登錄機(jī)械工業(yè)出版社教育服務(wù)網(wǎng)www.cmpedu.com注冊(cè)并下載。
如同我們看到的鋼琴家每一次流暢的演奏,運(yùn)動(dòng)員每一個(gè)漂亮的動(dòng)作……每個(gè)成功都有我們沒看到,但想象得到的日復(fù)一日的練習(xí),編程亦是如此。希望讀者在正確學(xué)習(xí)路線的引導(dǎo)下,通過鍥而不舍的練習(xí),穩(wěn)步前行,掌握Web編程技術(shù)。
《Java Web開發(fā)實(shí)用教程》由宋晏和謝永紅任主編,陳曉美任副主編,參加編寫的還有張子萍、張小靜。
書中難免有疏漏與不足之處,敬請(qǐng)廣大讀者批評(píng)指正。
編 者
目 錄
前言
第1章 Java Web應(yīng)用概述1
1.1 Web應(yīng)用的概念1
1.2 搭建Java Web編程環(huán)境1
1.2.1 JDK2
1.2.2 Eclipse4
1.2.3 Tomcat服務(wù)器4
1.2.4 在Eclipse中配置Tomcat服務(wù)器5
1.3 編寫第一個(gè)Java Web應(yīng)用9
1.3.1 創(chuàng)建Java Web應(yīng)用9
1.3.2 創(chuàng)建Servlet類12
1.3.3 部署和運(yùn)行Web應(yīng)用15
1.4 思維導(dǎo)圖17
1.5 習(xí)題17
第2章 Servlet編程基礎(chǔ)19
2.1 HTTP19
2.1.1 請(qǐng)求數(shù)據(jù)19
2.1.2 響應(yīng)數(shù)據(jù)21
2.2 Servlet獲取請(qǐng)求參數(shù)21
2.2.1 獲取請(qǐng)求22
2.2.2 請(qǐng)求方式25
2.2.3 action中的相對(duì)路徑和絕對(duì)路徑26
2.3 請(qǐng)求和響應(yīng)中的中文亂碼問題27
2.4 用Servlet搭建小型應(yīng)用系統(tǒng)30
2.4.1 系統(tǒng)功能原型30
2.4.2 數(shù)據(jù)庫及JDBC訪問30
2.4.3 連接MySQL數(shù)據(jù)庫34
2.4.4 查看數(shù)據(jù)列表37
2.4.5 上報(bào)體溫?cái)?shù)據(jù)39
2.4.6 請(qǐng)求的重定向40
2.5 思維導(dǎo)圖42
2.6 習(xí)題42
第3章 Servlet編程進(jìn)階45
3.1 Servlet API45
3.2 請(qǐng)求的處理過程46
3.3 Web應(yīng)用和Servlet的生命周期48
3.3.1 Web應(yīng)用的生命周期48
3.3.2 Servlet生命周期49
3.4 ServletConfig對(duì)象52
3.5 ServletContext對(duì)象54
3.6 思維導(dǎo)圖56
3.7 習(xí)題56
第4章 JSP編程基礎(chǔ)59
4.1 JSP的工作原理59
4.2 JSP文件的基本元素61
4.2.1 創(chuàng)建JSP文件61
4.2.2 JSP文件中的注釋61
4.2.3 JSP中的腳本62
4.2.4 JSP中的page指令64
4.2.5 自定義JSP文件模板66
4.3 JSP編程中的中文編碼問題67
4.4 靜態(tài)包含和動(dòng)態(tài)包含67
4.4.1 include指令67
4.4.2 include動(dòng)作70
4.5 Ajax與JSP實(shí)例71
4.5.1 Ajax概述71
4.5.2 jQuery的Ajax訪問方法72
4.5.3 Ajax請(qǐng)求案例——注冊(cè)查重74
4.5.4 向Ajax返回JSON數(shù)據(jù)77
4.6 思維導(dǎo)圖80
4.7 習(xí)題80
第5章 JSP隱含對(duì)象83
5.1 隱含對(duì)象概述83
5.2 request對(duì)象84
5.3 response對(duì)象86
5.4 out對(duì)象86
5.5 exception對(duì)象87
5.6 利用隱含對(duì)象攜帶參數(shù)88
5.6.1 組件間的參數(shù)傳遞89
5.6.2 轉(zhuǎn)發(fā)和重定向90
5.7 模擬豆瓣電影短評(píng)91
5.7.1 填寫短評(píng)92
5.7.2 短評(píng)列表95
5.8 思維導(dǎo)圖100
5.9 習(xí)題100
第6章 Web應(yīng)用的MVC設(shè)計(jì)模式102
6.1 MVC模式的概念102
6.2 Model1和JavaBean103
6.2.1 JavaBean的概念103
6.2.2 JavaBean的作用域和使用104
6.3 Model2的編寫107
6.3.1 模型107
6.3.2 控制器108
6.3.3 到達(dá)視圖108
6.4 學(xué)生管理系統(tǒng)109
6.4.1 數(shù)據(jù)庫設(shè)計(jì)及數(shù)據(jù)庫連接池工具109
6.4.2 項(xiàng)目中的代碼組織113
6.4.3 學(xué)生信息瀏覽113
6.4.4 添加學(xué)生信息116
6.4.5 修改學(xué)生信息119
6.5 思維導(dǎo)圖123
6.6 習(xí)題123
第7章 JSP編程的標(biāo)簽化126
7.1 EL表達(dá)式126
7.1.1 訪問JavaBean的屬性126
7.1.2 進(jìn)行計(jì)算128
7.1.3 獲取請(qǐng)求參數(shù)129
7.2 JSTL130
7.3 JSTL核心標(biāo)簽庫131
7.3.1 一般用途標(biāo)簽131
7.3.2 if標(biāo)簽132
7.3.3 choose標(biāo)簽133
7.3.4 forEach標(biāo)簽134
7.4 JSTL格式化標(biāo)簽135
7.5 functions庫中的EL函數(shù)137
7.6 自定義標(biāo)簽139
7.7 重寫學(xué)生管理系統(tǒng)的JSP頁面141
7.7.1 列表頁面141
7.7.2 “修改”學(xué)生信息頁面142
7.8 思維導(dǎo)圖143
7.9 習(xí)題143
第8章 Cookie、session與會(huì)話跟蹤146
8.1 會(huì)話跟蹤146
8.2 Cookie147
8.2.1 創(chuàng)建和查找Cookie147
8.2.2 使用EL表達(dá)式讀取Cookie150
8.2.3 Cookie的生命周期151
8.2.4 Cookie的路徑152
8.2.5 Cookie的編碼153
8.2.6 Cookie的限制154
8.3 session154
8.3.1 session的工作過程155
8.3.2 使用EL表達(dá)式讀取session157
8.3.3 銷毀session158
8.3.4 設(shè)置session的失效時(shí)間159
8.3.5 通過重寫URL跟蹤會(huì)話160
8.4 session與驗(yàn)證碼161
8.4.1 驗(yàn)證碼字符的生成162
8.4.2 驗(yàn)證碼的繪制162
8.4.3 為登錄添加驗(yàn)證碼功能163
8.5 思維導(dǎo)圖166
8.6 習(xí)題166
第9章 過濾器和監(jiān)聽器168
9.1 過濾器168
9.1.1 過濾器的定義168
9.1.2 創(chuàng)建和配置過濾器168
9.1.3 為過濾器設(shè)置參數(shù)170
9.1.4 過濾器串聯(lián)172
9.1.5 在過濾器中包裝請(qǐng)求174
9.1.6 在過濾器中包裝響應(yīng)179
9.2 監(jiān)聽器181
9.2.1 監(jiān)聽器的定義182
9.2.2 創(chuàng)建和配置監(jiān)聽器183
9.3 思維導(dǎo)圖184
9.4 習(xí)題184
第10章 Maven與Maven項(xiàng)目187
10.1 Maven基礎(chǔ)知識(shí)187
10.1.1 Maven的定義187
10.1.2 Maven的安裝和配置187
10.1.3 Eclipse中的Maven配置188
10.1.4 建立Maven項(xiàng)目188
10.1.5 設(shè)置Maven編譯插件192
10.1.6 配置Maven倉庫193
10.1.7 建立本地倉庫194
10.2 在Maven項(xiàng)目中編寫代碼196
10.2.1 Maven項(xiàng)目結(jié)構(gòu)196
10.2.2 JUnit測(cè)試198
10.2.3 Maven項(xiàng)目的構(gòu)建201
10.3 思維導(dǎo)圖202
10.4 習(xí)題203
第11章 認(rèn)識(shí)Spring MVC204
11.1 Spring框架概述204
11.2 Spring IoC205
11.2.1 IoC和依賴注入205
11.2.2 Spring容器206
11.2.3 Spring容器對(duì)Bean的管理207
11.2.4 setter注入和構(gòu)造器注入209
11.2.5 注入Bean對(duì)象211
11.2.6 注入集合212
11.2.7 Spring表達(dá)式215
11