本書包含實用教程、實驗指導和綜合應用實習三部分,實用教程部分首先介紹Java EE 開發(fā)環(huán)境構建,并通過一個簡單的Java EE 程序介紹開發(fā)過程、簡單調(diào)試方法,以了解大致過程;其次系統(tǒng)介紹Struts 2 基礎、Struts 2 標簽庫、Struts 2 類型轉換及輸入校驗、Struts 2 攔截器、Struts 2 的其他應用,通過綜合應用案例把Struts 2 的相關內(nèi)容串起來;再次介紹Hibernate 基礎、Hibernate 映射機制、Hibernate 對持久化對象的操作、Hibernate 高級特性,通過應用案例整合Hibernate 與Struts 2;最后介紹Spring 基礎、Spring 的AOP及事務支持、Spring 的其他功能,通過案例用Spring 整合各種Java EE 框架,案例分別采用Spring 與Struts 2 整合、Spring 與Hibernate 整合、Spring 與Struts 2 和Hibernate 整合的方法,讀者可以清楚地進行對比。習題主要用于強化基本概念。實驗指導部分著重訓練學生的動手能力,訓練內(nèi)容仍然是實用教程部分的實例。綜合應用實習部分介紹學生成績管理系統(tǒng)。本書免費提供教學課件、程序源代碼和沒有沖突的Jar 包。
南京師范大學計算機科學與技術學院,副教授,東南大學本科,曾任計算機軟件系主任,獲選南京師范大學教學名師培養(yǎng)人選。主編5套計算機系列教材,獲教育部優(yōu)秀教材二等獎、電子部優(yōu)秀教材二等獎、兩次獲江蘇省優(yōu)秀教學成果二等獎、江蘇省暢銷圖書編輯二等獎、全國高校出版社優(yōu)秀暢銷書二等獎、兩次獲南京師范大學優(yōu)秀教學成果一等獎、南京師范大學精品教材一等獎。參加主持國家八六三計劃子項目、江蘇省科技開發(fā)項目,主持南京市科技開發(fā)項目、泰州市科委項目、金陵石化公司項目,獲江蘇省優(yōu)秀軟件獎,江蘇省科技進步獎、南京市創(chuàng)新成果獎。獲國家發(fā)明專利和實用新型專利20多個。
目 錄
第1部分 實 用 教 程
第1章 Java EE平臺及開發(fā)入門 1
1.1 Java EE的開發(fā)方式 1
1.2 Java EE平臺構建 2
1.2.1 軟件的安裝 2
1.2.2 整合開發(fā)環(huán)境 13
1.3 Java EE開發(fā)入門 16
1.3.1 MyEclipse 2017集成開發(fā)
環(huán)境 16
1.3.2 一個簡單的Java EE程序 20
1.3.3 Java EE程序的簡單調(diào)試 33
1.3.4 管理Java EE項目 35
習題1 38
第2章 Struts 2基礎 39
2.1 Struts 2框架開發(fā)入門 39
2.1.1 MVC基本思想 39
2.1.2 MVC實現(xiàn)方式 40
2.1.3 簡單Struts 2開發(fā) 41
2.2 Struts 2原理及工作流程 45
2.2.1 Struts 2工作原理 45
2.2.2 Struts 2項目運行流程 46
2.3 Struts 2的控制器Action類 47
2.3.1 使用ActionSupport 47
2.3.2 Action傳值 48
2.3.3 Action訪問Servlet API 49
2.3.4 Action返回結果 51
2.3.5 在Action中定義多方法 51
2.4 解密Struts 2程序文件 52
2.4.1 web.xml文件 52
2.4.2 struts.xml文件 53
2.4.3 struts.properties文件 55
2.5 Struts 2配置詳解 57
2.5.1 <action>配置詳解 57
2.5.2 <result>配置詳解 59
2.5.3 <package>配置詳解 62
習題2 64
第3章 Struts 2標簽庫 65
3.1 Struts 2的OGNL 65
3.2 Struts 2的標簽庫 67
3.2.1 數(shù)據(jù)標簽 67
3.2.2 控制標簽 77
3.2.3 表單標簽 85
3.2.4 非表單標簽 93
習題3 95
第4章 Struts 2類型轉換及輸入校驗 96
4.1 Struts 2內(nèi)置類型轉換器 96
4.2 自定義類型轉換器 99
4.2.1 繼承DefaultTypeConverter類
實現(xiàn)轉換器 99
4.2.2 繼承StrutsTypeConverter類
實現(xiàn)轉換器 102
4.3 數(shù)組和集合類型的轉換 104
4.3.1 數(shù)組類型轉換器 104
4.3.2 集合類型轉換器 106
4.4 Struts 2輸入校驗 107
4.4.1 使用execute()方法校驗 109
4.4.2 重寫validate()方法校驗 110
4.4.3 使用Struts 2校驗框架校驗 110
4.4.4 客戶端校驗 113
習題4 114
第5章 Struts 2應用進階 115
5.1 Struts 2攔截器 115
5.1.1 攔截器概述 115
5.1.2 攔截器配置 117
5.1.3 自定義攔截器 121
5.1.4 攔截器應用實例 123
5.2 Struts 2文件操作 125
5.2.1 單文件上傳 125
5.2.2 多文件上傳 128
5.2.3 文件下載 129
5.3 Struts 2國際化 131
5.3.1 國際化原理 131
5.3.2 資源文件的訪問方式 132
5.3.3 國際化應用實例 133
習題5 136
第6章 Struts 2綜合應用案例 137
6.1 “圖書管理系統(tǒng)”主界面設計 137
6.1.1 頭部設計 137
6.1.2 整體設計 139
6.2 實現(xiàn)“登錄驗證”功能 140
6.3 實現(xiàn)“借書”功能 143
6.3.1 總體界面設計 143
6.3.2 查詢已借圖書 146
6.3.3 “借書”功能 154
6.4 實現(xiàn)“圖書管理”功能 159
6.4.1 總體界面設計 159
6.4.2 “圖書追加”功能 161
6.4.3 “圖書刪除”功能 167
6.4.4 “圖書查詢”功能 169
6.4.5 “圖書修改”功能 170
習題6 171
第7章 Hibernate基礎 172
7.1 ORM簡介 172
7.2 第一個Hibernate程序 172
7.3 Hibernate各種文件的作用 180
7.3.1 POJO類及其映射文件 180
7.3.2 Hibernate核心配置文件 182
7.4 HibernateSessionFactory類 183
7.4.1 框架生成類代碼 183
7.4.2 獲取Session對象的流程 185
7.4.3 核心接口 186
習題7 188
第8章 Hibernate映射機制 189
8.1 主鍵映射 189
8.1.1 代理主鍵映射 189
8.1.2 自然主鍵映射 191
8.1.3 復合主鍵映射 191
8.2 數(shù)據(jù)類型映射 195
8.3 對象關系映射 196
8.3.1 繼承關系映射 197
8.3.2 關聯(lián)關系映射 205
8.4 動態(tài)類的使用 217
習題8 219
第9章 Hibernate對持久化對象的操作 220
9.1 操作持久化對象的常用方法 220
9.1.1 save()方法 220
9.1.2 get()和load()方法 220
9.1.3 update()方法 221
9.1.4 delete()方法 221
9.1.5 saveOrUpdate()方法 221
9.2 HQL查詢 222
9.2.1 基本查詢 222
9.2.2 條件查詢 223
9.2.3 分頁查詢 224
9.2.4 連接查詢 224
9.2.5 子查詢 225
9.2.6 SQL查詢 226
9. 3 Hibernate的批量操作 229
9.3.1 批量插入 229
9.3.2 批量更新 230
9.3.3 批量刪除 231
9.4 持久對象的生命周期 232
習題9 233
第10章 Hibernate高級特性 234
10.1 Hibernate事務管理 234
10.1.1 事務的概念 234
10.1.2 Hibernate的事務 234
10.2 Hibernate并發(fā)處理 236
10.2.1 并發(fā)產(chǎn)生的問題 236
10.2.2 解決方案 238
10.3 Hibernate的攔截器 239
10.3.1 Interceptor接口 239
10.3.2 應用舉例 241
習題10 243
第11章 Hibernate與Struts 2整合應用
案例 244
11.1 Hibernate與Struts 2系統(tǒng)的整合 244
11.2 添加Hibernate及開發(fā)持久層 245
11.3 功能實現(xiàn) 255
11.3.1 “登錄”功能 256
11.3.2 “查詢已借圖書”功能 256
11.3.3 “借書”功能 259
11.3.4 “圖書管理”功能 261
習題11 264
第12章 MyBatis基礎 265
12.1 MyBatis簡介 265
12.2 第一個MyBatis程序 265
12.3 MyBatis原理及工作流程 272
12.4 MyBatis配置入門 273
12.4.1 MyBatis的映射文件 273
12.4.2 MyBatis核心配置文件 274
12.4.3 與Hibernate類比 274
12.5 MyBatis與Struts 2整合應用 275
12.5.1 整合原理 275
12.5.2 應用案例 276
習題12 281
第13章 Spring基礎 282
13.1 Spring開發(fā)入門 282
13.1.1 Spring概述 282
13.1.2 Spring簡單應用 283
13.2 Spring的核心機制——依賴注入 286
13.2.1 依賴注入的概念 286
13.2.2 依賴注入的兩種方式 289
13.3 Spring容器中的Bean 291
13.3.1 Bean的定義和屬性 292
13.3.2 Bean的生命周期 294
13.3.3 Bean的管理 298
13.3.4 Bean的引用 300
13.4 Spring對集合屬性的注入 301
13.4.1 對List的注入 301
13.4.2 對Set的注入 302
13.4.3 對Map的注入 303
習題13 304
第14章 Spring MVC基礎 305
14.1 Spring MVC概述 305
14.2 第一個Spring MVC程序 306
14.3 Spring MVC內(nèi)部工作原理 309
14.4 基于注解的控制器實現(xiàn) 310
14.5 與持久層框架的整合應用 312
14.5.1 Spring MVC與MyBatis
整合 312
14.5.2 Spring MVC與Hibernate
整合 314
習題14 317
第15章 Spring的其他功能 318
15.1 Spring后處理器 318
15.1.1 Bean后處理器 318
15.1.2 容器后處理器 320
15.2 Spring的AOP 321
15.2.1 代理機制 322
15.2.2 AOP的術語與概念 325
15.2.3 Spring的AOP基礎支持 327
15.2.4 Spring的AOP擴展支持 335
15.3 定時器的應用 342
15.3.1 使用程序直接啟動方式 342
15.3.2 使用Web監(jiān)聽方式 343
15.3.3 Spring定制定時器 343
習題15 345
第16章 用Spring整合各種Java EE框架 346
16.1 Spring與Struts 2整合 346
16.1.1 整合原理 346
16.1.2 應用實例 346
16.2 Spring與Hibernate整合 348
16.2.1 整合原理 348
16.2.2 應用實例 348
16.3 Spring與MyBatis整合 357
16.3.1 整合原理 357
16.3.2 應用實例 357
16.3.3 Mapper接口簡化實現(xiàn) 361
16.4 Spring與Struts 2、Hibernate三者
的整合 363
16.4.1 整合原理 363
16.4.2 項目架構 363
16.4.3 修改DAO實現(xiàn)類 365
16.4.4 編寫業(yè)務邏輯接口及實
現(xiàn)類 370
16.4.5 “登錄”功能的實現(xiàn) 373
16.4.6 “查詢已借圖書”功能的
實現(xiàn) 375
16.4.7 “借書”功能的實現(xiàn) 377
16.4.8 “圖書管理”功能的實現(xiàn) 379
16.5 Spring與Spring MVC、MyBatis
三者的整合 383
16.5.1 整合原理 383
16.5.2 應用實例 384
習題16 389
第2部分 實 驗 指 導
實驗1 Struts 2基礎應用 390
實驗目的 390
實驗內(nèi)容 390
思考與練習 390
實驗2 Struts 2綜合應用 391
實驗目的 391
實驗內(nèi)容 391
思考與練習 392
實驗3 Hibernate基礎應用 392
實驗目的 392
實驗內(nèi)容 392
思考與練習 392
實驗4 Hibernate與Struts 2整合應用 392
實驗目的 392
實驗內(nèi)容 392
思考與練習 393
實驗5 MyBatis基礎應用 393
實驗目的 393
實驗內(nèi)容 393
思考與練習 393
實驗6 Spring基礎應用 393
實驗目的 393
實驗內(nèi)容 393
思考與練習 393
實驗7 Spring MVC基礎應用 393
實驗目的 393
實驗內(nèi)容 394
思考與練習 394
實驗8 Spring AOP應用 394
實驗目的 394
實驗內(nèi)容 394
思考與練習 394
實驗9 Spring與Struts 2整合應用 394
實驗目的 394
實驗內(nèi)容 394
思考與練習 394
實驗10 Spring與Hibernate整合應用 394
實驗目的 394
實驗內(nèi)容 394
思考與練習 395
實驗11 Spring與MyBatis整合應用 395
實驗目的 395
實驗內(nèi)容 395
思考與練習 395
實驗12 SSH2架構應用 395
實驗目的 395
實驗內(nèi)容 395
思考與練習 395
實驗13 SSM架構應用 395
實驗目的 395
實驗內(nèi)容 395
思考與練習 395
第3部分 綜合應用實習
P1.1 數(shù)據(jù)庫準備 396
P1.2 Java EE系統(tǒng)分層架構 397
P1.2.1 分層模型 397
P1.2.2 多框架整合實施方案 397
P1.3 搭建項目總體框架 398
P1.4 持久層開發(fā) 399
P1.4.1 生成POJO類及映射 399
P1.4.2 實現(xiàn)DAO接口組件 403
P1.5 業(yè)務層開發(fā) 410
P1.5.1 系統(tǒng)登錄功能用Service 410
P1.5.2 學生信息管理功能用
Service 411
P1.5.3 學生成績管理功能用
Service 413
P1.6 表示層開發(fā) 416
P1.6.1 通用功能實現(xiàn) 416
P1.6.2 “學生信息管理”功能
實現(xiàn) 424
P1.6.3 “學生成績管理”功能
實現(xiàn) 437
附錄A 系統(tǒng)數(shù)據(jù)庫 446
A.1 登錄表 446
A.2 讀者信息表 446
A.3 圖書信息表 446
A.4 借閱信息表 447