本書在《Java Web開發(fā)技術(shù)與實踐》(第1版)基礎(chǔ)上進(jìn)行了全面修訂,主要內(nèi)容包括三部分,其一是Servlet技術(shù)體系,該部分是屬于基礎(chǔ)知識,內(nèi)容主要包括Servlet/JSP、內(nèi)置對象技術(shù)與JDBC技術(shù)規(guī)范,其二是主流的開發(fā)框架技術(shù),主要包括Spring、SpringMVC、SpringBoot以及MyBatis,其三是基于MVC以及多層架構(gòu)的軟件工程技術(shù),后二部分是緊密結(jié)合,互為補充與說明。同時,也介紹了前端與服務(wù)器端緊密相關(guān)的技術(shù),主要包括JSON數(shù)據(jù)格式及其處理技術(shù)以及Vue+ axios技術(shù)。
本書是浙江省普通高!笆濉毙滦螒B(tài)教材,是作者在多年的教學(xué)與科研項目實踐的基礎(chǔ)上,按照普通高等本科院!皯(yīng)用型人才”的培養(yǎng)目標(biāo)和基本要求,而編寫的一本計算機(jī)應(yīng)用技術(shù)類專業(yè)教材。本書在全面講解Java Web的技術(shù)體系的同時,還從工程實踐出發(fā),強調(diào)知識的實際運用能力。教材拚棄了傳統(tǒng)本科教材用抽象的表達(dá)式或者無實用價值的例子來解析軟件工程理論的方法,也不采用高職教材中的最典型的“step”案例說明法;而是把軟件工程理論、OOP思想等偶于案例中,以更高的視野去審視、分析案例;一方面,通過對具有實用價等
前言
本書是作者在多年教學(xué)與科研項目實踐的基礎(chǔ)上,按照應(yīng)用型本科院校的人才培養(yǎng)目標(biāo)和基本要求編寫的。本書在全面講解Java Web技術(shù)體系的同時,從工程實踐出發(fā),強調(diào)知識的實際運用能力。本書不采用傳統(tǒng)本科教材以抽象的表達(dá)式或者無實用價值的例子解析軟件工程理論的方式,也不采用高職教材典型的案例詳解方式,而是把軟件工程理論、面向?qū)ο蟪绦蛟O(shè)計思想等融合在案例中,以更高的視角審視、分析案例,通過對具有實用價值的案例的剖析,使學(xué)習(xí)者掌握基本概念、基本原理及技術(shù)規(guī)范,同時也力求使案例起到舉一反三的作用。
技術(shù)本身無所謂先進(jìn)與落后,只有適用與不適用。一個工程項目采用何種解決方案,是沒有標(biāo)準(zhǔn)模式的。Java Web開發(fā)的技術(shù)規(guī)范及原理并不復(fù)雜,但是要掌握及靈活運用這些技術(shù)并不容易。軟件開發(fā)存在著一般規(guī)律和原則。如何應(yīng)用軟件開發(fā)的一般規(guī)律和原則分析實際問題,理解實際開發(fā)過程中涉及的各項技術(shù)及規(guī)范,□終熟練掌握相關(guān)技術(shù),是本書的側(cè)重點。本書盡可能把各種解決方案及其優(yōu)缺點呈現(xiàn)在學(xué)習(xí)者面前,以幫助學(xué)習(xí)者從較高的層次理解各項技術(shù)。
本書全面介紹Java Web開發(fā)技術(shù),重點講解以下內(nèi)容: Ajax與JSON技術(shù)、Servlet與JSP技術(shù)、主流的開發(fā)框架(Spring、SpringMVC、Spring Boot和MyBatis)。對于Web項目中的一些經(jīng)典問題,本書采用的組織方式是: 首先對問題進(jìn)行抽象,以獲取技術(shù)方案;其次對各個技術(shù)方案進(jìn)行特點分析,以選擇適當(dāng)?shù)募夹g(shù)方案。本書是計算機(jī)應(yīng)用技術(shù)方面的專業(yè)教材,要求學(xué)習(xí)者具有一定的計算機(jī)專業(yè)基礎(chǔ)知識。
限于作者水平,本書難免存在某些不足,懇請廣大讀者批評指正。
作者2021年8月
汪誠波,男,中共黨員浙大寧波理工學(xué)院數(shù)據(jù)學(xué)院教師,主要研究方向為軟件工程,發(fā)表SCI/EI論文10篇,近5年來,主持省級或以上科研、考研項目3項,獲得校級以上教學(xué)成果3項。
目錄
第1章Web應(yīng)用概述1
1.1網(wǎng)絡(luò)應(yīng)用分類1
1.2B/S系統(tǒng)基礎(chǔ)知識1
1.2.1HTTP1
1.2.2靜態(tài)頁面與動態(tài)頁面2
1.2.3Web服務(wù)器與應(yīng)用服務(wù)器2
1.3動態(tài)頁面技術(shù)概述3
1.3.1ASP及ASP.NET技術(shù)3
1.3.2PHP技術(shù)5
1.3.3Servlet/JSP技術(shù)6
1.3.4Web開發(fā)技術(shù)比較9
1.4開發(fā)環(huán)境搭建10
1.4.1安裝JDK10
1.4.2安裝和配置Tomcat11
1.4.3安裝和配置Eclipse12
1.4.4安裝MySQL18
1.5本章小結(jié)22
第2章Servlet和JSP基礎(chǔ)23
2.1Servlet技術(shù)基礎(chǔ)23
2.1.1Servlet的歷史及技術(shù)特點23
2.1.2Servlet的主要API、運行過程及生命周期24
2.1.3開發(fā)部署Servlet27
2.2JSP技術(shù)基礎(chǔ)29
2.2.1JSP簡介29
2.2.2JSP運行原理30
2.2.3開發(fā)、運行JSP程序31
2.2.4JSP與Servlet的比較32
2.3Tomcat服務(wù)器33
2.3.1Tomcat服務(wù)器中主要目錄的內(nèi)容及作用33
2.3.2Web項目中的資源訪問路徑34
2.3.3Tomcat資源管理35
2.4MVC模式36
2.4.1MVC基本思想36
2.4.2Java Web應(yīng)用中的MVC37
2.4.3關(guān)于MVC模式的總結(jié)38
2.5案例——用戶登錄系統(tǒng)40
2.5.1需求分析40
2.5.2系統(tǒng)設(shè)計與MVC實現(xiàn)40
2.6本章小結(jié)43
第3章內(nèi)置對象技術(shù)44
3.1內(nèi)置對象概述44
3.2request對象45
3.2.1主要方法45
3.2.2常用技術(shù)47
3.2.3作用域與生命周期51
3.3response對象51
3.3.1主要方法51
3.3.2常用技術(shù)52
3.4session對象55
3.4.1基本概念和主要方法55
3.4.2常用技術(shù)58
3.5其他內(nèi)置對象介紹59
3.5.1application對象59
3.5.2out對象59
3.5.3config對象60
3.5.4exception對象61
3.5.5page對象與pageContext對象62
3.6案例——主頁面中的用戶管理63
3.6.1需求分析63
3.6.2技術(shù)設(shè)計64
3.6.3核心代碼66
3.7本章小結(jié)67
第4章JSON與Ajax技術(shù)68
4.1JSON基本概念68
4.2JavaScript環(huán)境下的JSON技術(shù)69
4.3Java環(huán)境下的JSON技術(shù)70
4.3.1基礎(chǔ)知識70
4.3.2核心類及其用法71
4.4異步通信基礎(chǔ)知識74
4.4.1異步通信的基本概念74
4.4.2Web項目中的頁面遷移75
4.5用Axios實現(xiàn)Ajax技術(shù)75
4.5.1Ajax基礎(chǔ)知識75
4.5.2Axios技術(shù)76
4.5.3進(jìn)一步了解Axios技術(shù)78
4.6HTML+Ajax與JSP技術(shù)的比較80
4.7案例——基于Ajax的主頁面代碼重構(gòu)80
4.7.1需求分析80
4.7.2技術(shù)設(shè)計81
4.7.3核心代碼83
4.8本章小結(jié)87
第5章Servlet技術(shù)深入剖析88
5.1Servlet技術(shù)體系88
5.1.1常用類和接口89
5.1.2全面了解Servlet配置90
5.2過濾器技術(shù)92
5.2.1基本概念92
5.2.2過濾器的主要方法、生命周期與部署93
5.2.3過濾鏈94
5.2.4安全過濾器的開發(fā)95
5.3監(jiān)聽器技術(shù)97
5.3.1基礎(chǔ)知識97
5.3.2案例——統(tǒng)計在線總?cè)藬?shù)99
5.4本章小結(jié)101
第6章Spring與SpringMVC技術(shù)102
6.1Spring概述102
6.1.1什么是Spring102
6.1.2Spring框架結(jié)構(gòu)103
6.2Spring IOC105
6.2.1相關(guān)概念106
6.2.2Spring IOC容器管理bean107
6.2.3基于XML的依賴注入109
6.2.4基于注解的依賴注入111
6.3面向切面編程113
6.4SpringMVC框架115
6.4.1概述115
6.4.2運行原理115
6.4.3SpringMVC注解117
6.4.4案例——基于SpringMVC注冊頁面的實現(xiàn)121
6.5本章小結(jié)126
第7章Spring Boot框架技術(shù)127
7.1Maven127
7.1.1Maven的安裝與常用配置127
7.1.2Maven的pom.xml文件與常用命令130
7.2Spring Boot框架131
7.2.1Spring Boot目錄結(jié)構(gòu)及運行過程132
7.2.2Spring Boot運行原理136
7.2.3Spring Boot常用注解138
7.3重構(gòu)注冊頁面139
7.4本章小結(jié)142
第8章JDBC技術(shù)143
8.1JDBC原理概述143
8.1.1JDBC基本概念143
8.1.2JDBC驅(qū)動程序及安裝144
8.1.3JDBC應(yīng)用示例144
8.2JDBC常用接口和類146
8.2.1Driver接口146
8.2.2DriverManager類146
8.2.3Connection接口147
8.2.4Statement、PreparedStatement和CallableStatement
接口149
8.3結(jié)果集156
8.4使用JDBC元數(shù)據(jù)160
8.4.1DatabaseMetaData接口的使用160
8.4.2ResultSetMetaData接口的使用161
8.4.3ParameterMetaData使用162
8.5本章小結(jié)163
第9章DAO層與MyBatis框架技術(shù)164
9.1DAO層的基礎(chǔ)知識164
9.1.1DAO簡介164
9.1.2DAO層架構(gòu)165
9.2連接池與數(shù)據(jù)源166
9.2.1連接池技術(shù)簡介166
9.2.2數(shù)據(jù)源與JNDI技術(shù)167
9.2.3連接池與數(shù)據(jù)源的配置168
9.3ORM的概念與實現(xiàn)169
9.3.1ORM技術(shù)169
9.3.2DAOUser的設(shè)計與實現(xiàn)170
9.4MyBatis框架173
9.4.1概況173
9.4.2工作原理174
9.5Spring Boot+MyBatis175
9.5.1項目準(zhǔn)備175
9.5.2DAO層設(shè)計177
9.5.3MyBatis的常用注解179
9.5.4基于MyBatis的DAO層異常處理181
9.5.5事務(wù)處理@Transactional注解181
9.6案例——具有事務(wù)處理功能的注冊頁面183
9.6.1頁面設(shè)計184
9.6.2各層設(shè)計185
9.6.3運行測試188
9.7本章小結(jié)188
220章書店后臺管理系統(tǒng)設(shè)計與實現(xiàn)189
10.1項目準(zhǔn)備189
10.1.1數(shù)據(jù)庫表設(shè)計189
10.1.2項目開發(fā)環(huán)境搭建189
10.2系統(tǒng)配置及各層設(shè)計190
10.2.1系統(tǒng)配置190
10.2.2各層設(shè)計191
10.3分頁與模糊查找195
10.3.1分頁技術(shù)的各種實現(xiàn)方案195
10.3.2分頁與模糊查找功能的設(shè)計與實現(xiàn)196
10.4文件上傳與新書錄入201
10.4.1上傳和下載的基本原理201
10.4.2Spring Boot的文件異步上傳核心技術(shù)204
10.4.3新書錄入功能的實現(xiàn)206
10.5圖書編輯與刪除211
10.5.1頁面設(shè)計與效果211
10.5.2各層核心代碼214
10.6書店后臺管理系統(tǒng)前端頁面整合215
10.7日志管理216
10.7.1基礎(chǔ)知識217
10.7.2日志的使用218
10.7.3日志的輸出220
10.8本章小結(jié)222
參考文獻(xiàn)223