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