目 錄
第I篇 基礎(chǔ)知識(shí)部分
第1章 搭建Java Web開(kāi)發(fā)環(huán)境 3
1.1 建立JDK的環(huán)境 4
1.1.1
下載與安裝JDK 4
1.1.2
配置JDK環(huán)境變量 5
1.1.3
驗(yàn)證JDK是否配置 6
1.2 建立Tomcat的環(huán)境 7
1.2.1
下載與安裝Tomcat 7
1.2.2
配置Tomcat環(huán)境變量 8
1.2.3
啟動(dòng)與停止Tomcat 8
1.2.4
Tomcat的目錄結(jié)構(gòu) 9
1.3 搭建Java Web開(kāi)發(fā)環(huán)境 9
1.3.1
下載與安裝MyEclipse 9
1.3.2
在MyEclipse中配置JDK 11
1.3.3
在MyEclipse中配置Tomcat 12
1.4 創(chuàng)建MySQL數(shù)據(jù)庫(kù)環(huán)境 13
1.4.1
下載MySQL 13
1.4.2
安裝與配置MySQL 15
1.4.3
使用MySQL數(shù)據(jù)庫(kù) 17
1.5 創(chuàng)建和發(fā)布Java Web工程 18
1.5.1
創(chuàng)建Web項(xiàng)目、設(shè)計(jì)項(xiàng)目目錄結(jié)構(gòu) 18
1.5.2
編寫頁(yè)面代碼、部署和運(yùn)行Web項(xiàng)目 20
1.6 小結(jié) 21
第2章 JSP動(dòng)態(tài)頁(yè)面開(kāi)發(fā)技術(shù) 23
2.1
JSP技術(shù)基礎(chǔ) 24
2.1.1
JSP簡(jiǎn)介 24
2.1.2
JSP頁(yè)面組成 25
2.2
JSP內(nèi)置對(duì)象 30
2.2.1
什么是JSP內(nèi)置對(duì)象 30
2.2.2
out內(nèi)置對(duì)象 31
2.2.3
request內(nèi)置對(duì)象 31
2.2.4
response內(nèi)置對(duì)象 33
2.2.5
session內(nèi)置對(duì)象 35
2.2.6
application內(nèi)置對(duì)象 37
2.2.7
其他內(nèi)置對(duì)象 38
2.3 對(duì)象的范圍 39
2.3.1
page范圍 39
2.3.2
request范圍 40
2.3.3
session范圍 40
2.3.4
application范圍 41
2.4 在JSP中使用JavaBean 42
2.4.1
為什么需要JavaBean 42
2.4.2
什么是JavaBean 42
2.4.3
封裝數(shù)據(jù)和業(yè)務(wù) 42
2.4.4
JSP與JavaBean 44
2.5
EL表達(dá)式 44
2.5.1
EL表達(dá)式概述 44
2.5.2
EL表達(dá)式的使用 45
2.5.3
EL隱式對(duì)象 46
2.6
JSTL標(biāo)簽 47
2.6.1
JSTL標(biāo)簽概述 47
2.6.2
JSTL標(biāo)簽的使用 48
2.6.3
JSTL核心標(biāo)簽庫(kù) 48
2.7 小結(jié) 53
第3章 Servlet技術(shù) 55
3.1
Servlet簡(jiǎn)介 56
3.1.1
什么是Servlet 56
3.1.2
編寫第一個(gè)Servlet 56
3.1.3
Servlet與JSP的關(guān)系 58
3.2
Servlet的生命周期 59
3.3
Servlet的常用類和接口 62
3.4
Servlet的應(yīng)用示例 65
3.5 小結(jié) 67
第4章 使用MVC模式實(shí)現(xiàn)用戶登錄 69
4.1
JSP開(kāi)發(fā)模型 70
4.1.1
JSP Model I模式 70
4.1.2
JSP Model II模式 70
4.2
MVC模式概述 71
4.2.1
為什么需要MVC模式 71
4.2.2
MVC模式的定義及特點(diǎn) 72
4.3
JDBC技術(shù) 73
4.3.1
JDBC簡(jiǎn)介 73
4.3.2
通過(guò)JDBC連接MySQL數(shù)據(jù)庫(kù) 73
4.4 使用MVC模式實(shí)現(xiàn)用戶登錄模塊 75
4.4.1
項(xiàng)目設(shè)計(jì)簡(jiǎn)介 75
4.4.2
模型設(shè)計(jì) 76
4.4.3
視圖設(shè)計(jì) 77
4.4.4
控制器設(shè)計(jì) 78
4.4.5
部署和運(yùn)行程序 79
4.5 小結(jié) 79
第5章 jQuery EasyUI插件 81
5.1
EasyUI概述 82
5.2
Layout控件 82
5.3
Tabs控件 83
5.4
Tree控件 84
5.5
DataGrid控件 85
5.6 小結(jié) 86
第II篇 框架技術(shù)部分
第6章 認(rèn)識(shí)Struts 2框架 89
6.1
Struts 2框架 90
6.1.1
Struts 2的由來(lái) 90
6.1.2
Struts 2的MVC模式 90
6.1.3
Struts 2控制器 91
6.1.4
Struts 2資源的獲取 91
6.2
Struts 2系統(tǒng)架構(gòu) 92
6.2.1
Struts 2框架結(jié)構(gòu) 92
6.2.2
Struts 2的核心概念 93
6.3
Struts 2的基本運(yùn)行流程 95
6.3.1
用戶登錄的處理流程 95
6.3.2
加載Struts 2類庫(kù) 95
6.3.3
配置web.xml文件加載核心控制器 96
6.3.4
開(kāi)發(fā)視圖層頁(yè)面 96
6.3.5
開(kāi)發(fā)業(yè)務(wù)控制器Action 97
6.3.6
配置業(yè)務(wù)控制器struts.xml 97
6.3.7
部署運(yùn)行項(xiàng)目 98
6.3.8
使用Struts 2實(shí)現(xiàn)登錄功能的處理過(guò)程 98
6.4
Struts 2的控制器和組件 99
6.4.1
核心控制器 99
6.4.2
業(yè)務(wù)控制器 99
6.4.3
模型組件 100
6.4.4
視圖組件 101
6.5 小結(jié) 101
第7章 Struts 2的配置 103
7.1
Struts 2的配置文件 104
7.1.1
web.xml文件 104
7.1.2
struts.xml文件 104
7.1.3
struts.properties文件 106
7.2
Struts 2的Action實(shí)現(xiàn) 107
7.2.1
POJO的實(shí)現(xiàn) 107
7.2.2
實(shí)現(xiàn)Action接口 108
7.2.3
繼承ActionSupport 108
7.2.4
Struts 2支持Java對(duì)象 109
7.2.5
Struts 2訪問(wèn)Servlet API 110
7.3
Action配置 113
7.3.1
Struts 2中Action的作用 114
7.3.2
配置Action 114
7.3.3
動(dòng)態(tài)方法調(diào)用 114
7.3.4
用method屬性處理調(diào)用方法 115
7.3.5
使用通配符 117
7.4
Result配置 117
7.4.1
配置Result 118
7.4.2
Result的常用結(jié)果類型 119
7.4.3
使用通配符動(dòng)態(tài)配置Result 120
7.4.4
通過(guò)請(qǐng)求參數(shù)動(dòng)態(tài)配置Result 121
7.5 小結(jié) 122
第8章 Struts 2的標(biāo)簽庫(kù) 123
8.1
Struts 2標(biāo)簽庫(kù)概述 124
8.1.1
Struts 2標(biāo)簽的分類 124
8.1.2
Struts 2標(biāo)簽庫(kù)的導(dǎo)入 124
8.2
Struts 2的UI標(biāo)簽 125
8.2.1
UI標(biāo)簽的模板和主題 125
8.2.2
表單標(biāo)簽的公共屬性 125
8.2.3
簡(jiǎn)單的表單標(biāo)簽 126
8.2.4
其他表單標(biāo)簽 128
8.2.5
非表單標(biāo)簽 128
8.3
Struts 2的非UI標(biāo)簽 129
8.3.1
控制標(biāo)簽 130
8.3.2
數(shù)據(jù)標(biāo)簽 132
8.4 使用Struts 2實(shí)現(xiàn)用戶注冊(cè)功能 133
8.4.1
用戶注冊(cè)流程 133
8.4.2
創(chuàng)建用戶實(shí)體類 133
8.4.3
開(kāi)發(fā)數(shù)據(jù)訪問(wèn)DAO層 133
8.4.4
開(kāi)發(fā)控制層Action 134
8.4.5
在struts.xml中配置action 135
8.4.6
開(kāi)發(fā)注冊(cè)頁(yè)面 136
8.4.7
部署項(xiàng)目 136
8.5 小結(jié) 137
第9章 OGNL和類型轉(zhuǎn)換 139
9.1
OGNL基礎(chǔ) 140
9.1.1
數(shù)據(jù)轉(zhuǎn)移和類型轉(zhuǎn)換 140
9.1.2
OGNL基礎(chǔ) 140
9.1.3
OGNL常用符號(hào)的用法 141
9.2
Struts 2的類型轉(zhuǎn)換 143
9.2.1
內(nèi)置類型轉(zhuǎn)換器 143
9.2.2
自定義類型轉(zhuǎn)換器 143
9.2.3
注冊(cè)自定義類型轉(zhuǎn)換器 145
9.3 小結(jié) 150
第10章 Struts 2的攔截器 151
10.1
Struts 2的攔截器機(jī)制 152
10.1.1
為什么需要攔截器 152
10.1.2
攔截器的工作原理 152
10.1.3
攔截器示例 153
10.2
Struts 2內(nèi)建攔截器 155
10.2.1
默認(rèn)攔截器 155
10.2.2
配置攔截器 157
10.2.3
自定義攔截器 158
10.3
自定義權(quán)限驗(yàn)證的攔截器 159
10.4
小結(jié) 162
第11章 Hibernate初步 163
11.1
Hibernate概述 164
11.1.1
JDBC的困擾 164
11.1.2
Hibernate的優(yōu)勢(shì) 164
11.1.3
持久化和ORM 164
11.1.4
Hibernate的體系架構(gòu) 166
11.2
Hibernate的下載與安裝 167
11.3
小結(jié) 168
第12章 使用Hibernate 實(shí)現(xiàn)數(shù)據(jù)的 增刪改查 169
12.1
基于XML映射文件實(shí)現(xiàn)數(shù)據(jù)的增刪改查 170
12.1.1
Hibernate數(shù)據(jù)操作流程 170
12.1.2
添加數(shù)據(jù) 171
12.1.3
加載數(shù)據(jù) 177
12.1.4
刪除數(shù)據(jù) 178
12.1.5
修改數(shù)據(jù) 179
12.2
基于Annotation注解實(shí)現(xiàn)數(shù)據(jù)的增刪改查 179
12.3
小結(jié) 182
第13章 使用Hibernate實(shí)現(xiàn)關(guān)聯(lián)映射和繼承映射 183
13.1
基于XML映射文件實(shí)現(xiàn)關(guān)聯(lián)映射 184
13.1.1
單向多對(duì)一關(guān)聯(lián) 184
13.1.2
單向一對(duì)多映射 187
13.1.3
雙向多對(duì)一映射 188
13.1.4
雙向多對(duì)多映射 191
13.1.5
雙向一對(duì)一映射 195
13.2
基于Annotation注解實(shí)現(xiàn)關(guān)聯(lián)映射 201
13.2.1
雙向多對(duì)一映射 201
13.2.2
雙向多對(duì)多映射 204
13.2.3
雙向一對(duì)一映射 206
13.3
基于XML映射文件實(shí)現(xiàn)繼承映射 209
13.3.1
使用subclass進(jìn)行映射 209
13.3.2
使用joined-subclass進(jìn)行映射 212
13.3.3
使用union-subclass進(jìn)行映射 213
13.4
小結(jié) 214
第14章 使用Hibernate查詢數(shù)據(jù) 215
14.1
使用HQL查詢數(shù)據(jù) 216
14.1.1
簡(jiǎn)單查詢 216
14.1.2
屬性查詢 217
14.1.3
聚集函數(shù) 217
14.1.4
分組查詢 218
14.1.5
動(dòng)態(tài)實(shí)例查詢 219
14.1.6
分頁(yè)查詢 219
14.1.7
條件查詢 220
14.1.8
連接查詢 221
14.1.9
子查詢 223
14.2
使用QBC查詢數(shù)據(jù) 225
14.2.1
簡(jiǎn)單查詢 225
14.2.2
分組查詢 226
14.2.3
聚集函數(shù) 227
14.2.4
組合查詢 228
14.2.5
關(guān)聯(lián)查詢 229
14.2.6
分頁(yè)查詢 230
14.2.7
QBE查詢 230
14.2.8
離線查詢 232
14.3
小結(jié) 232
第15章 使用Hibernate緩存數(shù)據(jù) 233
15.1
緩存的概念和范圍 234
15.2
一級(jí)緩存 234
15.3
二級(jí)緩存 236
15.4
查詢緩存 241
15.5
小結(jié) 242
第16章 MyBatis框架 243
16.1
MyBatis概念與安裝 244
16.2
MyBatis的增刪改查 244
16.3
MyBatis的關(guān)聯(lián)映射 250
16.3.1
一對(duì)一關(guān)聯(lián)映射 250
16.3.2
一對(duì)多關(guān)聯(lián)映射 252
16.3.3
多對(duì)多關(guān)聯(lián)映射 256
16.4
動(dòng)態(tài)SQL 259
16.4.1
if元素 259
16.4.2
if-where元素 260
16.4.3
set-if元素 261
16.4.4
trim元素 262
16.4.5
choose、when、otherwise元素 264
16.4.6
foreach元素 265
16.5
MyBatis的注解配置 267
16.5.1
基于注解的增刪改查 267
16.5.2
基于注解的一對(duì)一關(guān)聯(lián)映射 269
16.5.3
基于注解的一對(duì)多關(guān)聯(lián)映射 270
16.5.4
基于注解的多對(duì)多關(guān)聯(lián)映射 273
16.5.5
基于注解的動(dòng)態(tài)SQL 274
16.6
MyBatis的緩存 279
16.6.1
一級(jí)緩存 279
16.6.2
二級(jí)緩存 281
16.7
小結(jié) 282
第17章 Spring的基本應(yīng)用 283
17.1
認(rèn)識(shí)Spring框架 284
17.2
了解Spring的核心機(jī)制:依賴注入/控制反轉(zhuǎn) 286
17.3
小結(jié) 289
第18章 Spring Bean的裝配模式 291
18.1
Bean工廠ApplicationContext 292
18.2
Bean的作用域 293
18.3
基于Annotation的Bean裝配 295
18.4
小結(jié) 297
第19章 面向切面編程 (Spring AOP) 299
19.1
AOP簡(jiǎn)介 300
19.2
基于XML配置文件的AOP實(shí)現(xiàn) 300
19.2.1
前置通知 300
19.2.2
返回通知 303
19.2.3
異常通知 304
19.2.4
環(huán)繞通知 305
19.3
基于@AspectJ注解的AOP實(shí)現(xiàn) 306
19.4
小結(jié) 308
第III篇 整合和實(shí)例部分
第20章 Spring整合Struts 2與 Hibernate 311
20.1
基于XML配置的S2SH整合 312
20.1.1
環(huán)境搭建 312
20.1.2
創(chuàng)建實(shí)體類及映射文件 313
20.1.3
Spring整合Hibernate 314
20.1.4
DAO層開(kāi)發(fā) 316
20.1.5
Service層開(kāi)發(fā) 317
20.1.6
Action開(kāi)發(fā) 318
20.1.7
Spring整合Struts 2 319
20.1.8
創(chuàng)建頁(yè)面 320
20.2
基于Annotation注解的S2SH整合 321
20.3
小結(jié) 325
第21章 Spring MVC 327
21.1
Spring MVC概述 328
21.2
Spring MVC常用注解 329
21.2.1
基于注解的處理器 329
21.2.2
請(qǐng)求映射方式 331
21.2.3
綁定控制器類處理方法入?yún)?334
21.2.4
控制器類處理方法的返回值類型 337
21.2.5
保存模型屬性到HttpSession 338
21.2.6
在控制器類方法之前執(zhí)行的方法 339
21.2.7
Spring MVC返回JSON數(shù)據(jù) 339
21.3
直接頁(yè)面轉(zhuǎn)發(fā)、自定義視圖與頁(yè)面重定向 341
21.4
控制器的類型轉(zhuǎn)換、格式化、數(shù)據(jù)校驗(yàn) 343
21.5
Spring MVC文件上傳 346
21.6
Spring MVC國(guó)際化 347
21.7
Spring整合Spring MVC與Hibernate 348
21.7.1
環(huán)境搭建 349
21.7.2
創(chuàng)建實(shí)體類 349
21.7.3
Spring整合Hibernate 349
21.7.4
DAO層開(kāi)發(fā) 351
21.7.5
Service層開(kāi)發(fā) 352
21.7.6
控制器開(kāi)發(fā) 352
21.7.7
Spring整合Spring MVC 353
21.7.8
創(chuàng)建登錄頁(yè) 355
21.8
Spring整合Spring MVC與MyBatis 355
21.8.1
環(huán)境搭建 356
21.8.2
創(chuàng)建實(shí)體類 356
21.8.3
Spring整合MyBatis 356
21.8.4
DAO層開(kāi)發(fā) 357
21.8.5
Service層開(kāi)發(fā) 357
21.8.6
控制器開(kāi)發(fā) 358
21.8.7
Spring整合Spring MVC 358
21.8.8
創(chuàng)建頁(yè)面 360
21.9
小結(jié) 360
第22章
Spring整合Struts 2與Hibernate 實(shí)現(xiàn)網(wǎng)上訂餐
系統(tǒng)前臺(tái) 361
22.1
需求與系統(tǒng)分析 362
22.2
數(shù)據(jù)庫(kù)設(shè)計(jì) 363
22.3
項(xiàng)目環(huán)境搭建 365
22.4
Spring及Struts 2配置文件 366
22.5
創(chuàng)建實(shí)體類和映射文件 366
22.6
創(chuàng)建DAO接口及實(shí)現(xiàn)類 371
22.7
創(chuàng)建Service接口及實(shí)現(xiàn)類 379
22.8
餐品與菜系展示 384
22.9
查詢餐品 389
22.10
查看餐品詳情 390
22.11
用戶登錄與注冊(cè) 392
22.11.1
用戶登錄 392
22.11.2
用戶注冊(cè) 395
22.12
購(gòu)物車功能 398
22.13
訂單功能 405
22.13.1
生成訂單 405
22.13.2
查看我的訂單 408
22.13.3
查看訂單明細(xì) 410
22.13.4
刪除訂單 412
22.14
小結(jié) 413
第23章 Spring整合Spring MVC與Hibernate實(shí)現(xiàn)網(wǎng)上訂餐
系統(tǒng)后臺(tái) 415
23.1
需求與系統(tǒng)分析 416
23.2
數(shù)據(jù)庫(kù)設(shè)計(jì) 416
23.3
項(xiàng)目環(huán)境搭建 417
23.4
Spring及Spring MVC配置文件 418
23.5
創(chuàng)建實(shí)體類 418
23.6
創(chuàng)建DAO接口及實(shí)現(xiàn)類 423
23.7
創(chuàng)建Service接口及實(shí)現(xiàn)類 432
23.8
后臺(tái)登錄與管理首頁(yè)面 439
23.9
餐品管理 446
23.9.1
餐品列表顯示 447
23.9.2
查詢餐品 450
23.9.3
添加餐品 450
23.9.4
餐品下架 452
23.9.5
修改餐品 453
23.10
訂單管理 455
23.10.1
創(chuàng)建訂單 455
23.10.2
查詢訂單 463
23.10.3
刪除訂單 467
23.10.4
修改訂單/查看明細(xì) 468
23.10.5
使用Echarts顯示銷售統(tǒng)計(jì) 474
23.11
客戶管理 476
23.11.1
客戶列表顯示 476
23.11.2
查詢客戶 479
23.11.3
啟用和禁用客戶 480
23.12
管理員及其權(quán)限管理 482
23.12.1
管理員列表顯示 482
23.12.2
新增管理員 483
23.12.3
設(shè)置/修改管理員權(quán)限 485
23.13
小結(jié) 489
第24章 Spring整合Spring MVC與MyBatis實(shí)現(xiàn)新聞發(fā)布系統(tǒng) 491
24.1
系統(tǒng)概述及需求分析 492
24.2
數(shù)據(jù)庫(kù)設(shè)計(jì) 493
24.3
系統(tǒng)環(huán)境搭建 495
24.4
系統(tǒng)配置文件 496
24.5
創(chuàng)建實(shí)體類 496
24.6
創(chuàng)建DAO接口及動(dòng)態(tài)提供類 499
24.7
創(chuàng)建Service接口及實(shí)現(xiàn)類 506
24.8
新聞瀏覽 512
24.8.1
新聞首頁(yè) 512
24.8.2
瀏覽新聞 515
24.9
發(fā)表評(píng)論 517
24.9.1
普通用戶登錄 517
24.9.2
發(fā)表評(píng)論 519
24.10
新聞系統(tǒng)后臺(tái) 520
24.10.1
管理員登錄與后臺(tái)管理首頁(yè) 520
24.10.2
新聞管理 522
24.10.3
評(píng)論管理 527
24.10.4
用戶管理 530
24.11
小結(jié) 533