第1章 Java EE應用 1
1.1 Java EE應用概述 2
1.1.1 Java EE應用的分層模型 2
1.1.2 Java EE應用的組件 3
1.1.3 Java EE應用的結構和優勢 4
1.2 輕量級Java EE應用相關技術 4
1.2.1 JSP、Servlet和JavaBean及替代技術 4
1.2.2 MyBatis 3及替代技術 5
1.2.3 Spring 5及替代技術 6
1.2.4 使用開源框架的好處 7
1.3 本章小結 7
第2章 Spring MVC簡介 8
2.1 MVC思想概述 9
2.1.1 傳統Model1和Model2 9
2.1.2 MVC思想及其優勢 10
2.2 Struts 2和Spring MVC 11
2.2.1 Spring MVC的優勢 11
2.2.2 Spring MVC和Struts 2的區彆 11
2.3 開發第一個Spring MVC應用 12
2.3.1 Spring的下載和安裝 12
2.3.2 Spring MVC的DispatcherServlet 13
2.3.3 基於Controller接口的控製器 14
示例:第一個Spring MVC應用 14
示例:基於注解的控製器 18
2.4 詳解DispatcherServlet 20
2.5 Spring MVC執行的流程 22
2.5.1 Spring MVC應用的開發步驟 22
2.5.2 Spring MVC執行的流程 24
2.6 本章小結 25
第3章 Spring MVC的常用注解 26
3.1 @Controller注解 27
示例:@Controller注解的使用 27
3.2 @RequestMapping注解 29
3.2.1 @RequestMapping注解簡介 29
3.2.2 請求處理方法中可齣現的參數類型 32
3.2.3 請求處理方法可返迴的類型 33
3.2.4 Model和ModelMap 33
示例:Model和ModelMap的使用 34
3.2.5 ModelAndView 35
示例:ModelAndView的使用 35
3.2.6 頁麵轉發 35
3.3 @RequestParam注解 36
示例:@RequestMapping和@RequestParam注解的使用 37
3.4 @PathVariable注解 41
3.5 @MatrixVariable注解 42
3.6 @CrossOrigin注解 42
示例:@PathVariable注解和@MatrixVariable注解的使用 43
示例:@CrossOrigin注解的使用 45
3.7 @RequestHeader注解 46
示例:@RequestHeader注解的使用 47
3.8 @CookieValue注解 48
示例:@CookieValue注解的使用 49
3.9 @RequestAttribute注解 50
3.10 @SessionAttribute注解 50
示例:@RequestAttribute注解和@SessionAttribute注解的使用 51
3.11 @SessionAttributes注解 53
示例:@SessionAttributes注解的使用 53
3.12 @ModelAttribute注解 55
示例:@ModelAttribute注解的使用 55
3.13 @RequestBody注解 62
3.13.1 HttpMessageConverter<T>接口 62
3.13.2 轉換JSON數據 64
示例:@RequestBody接收JSON格式的數據 65
示例:自定義HttpMessageConverter接收JSON格式的數據 68
3.14 @ResponseBody注解 70
示例:@ResponseBody返迴JSON格式的數據 70
示例:自定義HttpMessageConverter返迴JSON格式的數據 72
3.15 轉換XML數據 72
示例:接收XML格式的數據 72
示例:返迴XML格式的數據 75
3.16 @RestController注解 76
示例:@RestController注解的使用 76
3.17 Spring MVC的異常處理 77
3.17.1 Spring MVC異常處理接口以及實現類 77
示例:SimpleMappingExceptionResolver處理異常 78
3.17.2 @ResponseStatus注解 82
示例:@ResponseStatus處理異常 82
3.17.3 @ExceptionHandle注解 84
示例:@ExceptionHandler處理異常 84
3.17.4 @ControllerAdvice注解 87
示例:@ControllerAdvice處理異常 87
3.17.5 @RestControllerAdvice注解 91
示例:@RestControllerAdvice注解的使用 91
3.18 本章小結 92
第4章 Spring MVC的標簽庫 93
4.1 錶單標簽庫 94
4.1.1 form標簽 94
4.1.2 input標簽 95
示例:form和input標簽的使用 95
4.1.3 password標簽 97
4.1.4 hidden標簽 98
4.1.5 textarea標簽 98
4.1.6 checkbox標簽 99
示例:checkbox標簽的使用 99
4.1.7 checkboxes標簽 101
示例:checkboxes標簽的使用 101
4.1.8 radiobutton標簽 105
示例:radiobutton標簽的使用 105
4.1.9 radiobuttons標簽 106
示例:radiobuttons標簽的使用 107
4.1.10 select標簽 108
4.1.11 option標簽 109
4.1.12 options標簽 109
示例:select、option和options標簽的使用 109
4.1.13 errors標簽 113
示例:errors標簽的使用 114
4.2 本章小結 116
第5章 Spring MVC的國際化 117
5.1 Spring MVC國際化的相關知識 118
5.1.1 messageSource接口 118
5.1.2 localeResolver接口 118
5.1.3 message標簽 119
5.2 Spring MVC的國際化處理 119
5.2.1 AcceptHeaderLocaleResolver 119
示例:基於瀏覽器請求的國際化實現 119
5.2.2 SessionLocaleResolver 122
示例:基於HttpSession的國際化實現 123
5.2.3 CookieLocaleResolver 125
示例:基於Cookie的國際化實現 125
5.3 本章小結 127
第6章 Spring MVC的數據轉換、格式化和
數據校驗 128
6.1 數據綁定流程 129
6.2 數據轉換 129
6.2.1 ConversionService 129
6.2.2 Spring支持的轉換器 130
示例:使用ConversionService轉換數據 131
示例:使用@InitBinder添加自定義編輯器轉換數據 134
示例:使用WebBindingInitializer注冊全局自定義編輯器轉換數據 135
6.2.3 多種轉換器的優先順序 135
6.3 數據格式化 136
示例:使用Formatter格式化數據 137
示例:使用FormatterRegistrar注冊Formatter 138
示例:使用AnnotationFormatterFactory<A extends Annotation>格式化數據 139
6.4 數據校驗 142
6.4.1 Spring的Validation校驗框架 143
示例:測試Spring的Validation校驗 143
6.4.2 JSR 303校驗 146
示例:測試JSR 303校驗 147
6.5 本章小結 152
第7章 Spring MVC的文件上傳下載和
攔截器機製 153
7.1 文件上傳 154
示例:Spring MVC的文件上傳 154
示例:使用對象接收上傳文件 157
7.2 文件下載 158
示例:Spring MVC的文件下載 158
7.3 攔截器 160
7.3.1 HandlerInterceptor接口 160
示例:攔截器實現用戶權限驗證 161
7.4 本章小結 164
第8章 MyBatis簡介 165
8.1 ORM和MyBatis 166
8.1.1 對象/關係數據庫映射(ORM) 166
8.1.2 基本映射方式 167
8.1.3 流行的ORM框架簡介 168
8.1.4 MyBatis概述 168
8.2 MyBatis入門 169
8.2.1 MyBatis下載和安裝 169
示例:MyBatis的數據庫操作入門 170
8.3 本章小結 175
第9章 MyBatis的基本用法 176
9.1 MyBatis體係結構 177
9.1.1 SqlSessionFactory 177
9.1.2 SqlSession 177
9.2 深入MyBatis的配置文件 179
9.2.1 MyBatis的配置文件結構 180
9.2.2 properties屬性 180
9.2.3 settings設置 181
9.2.4 typeAliases類型命名 183
9.2.5 typeHandlers類型處理器 184
9.2.6 objectFactory對象工廠 185
9.2.7 environments配置環境 185
9.2.8 mapper映射器 187
9.3 MyBatis日誌信息配置 188
9.3.1 log4j.properties配置日誌 188
9.3.2 log4j.xml配置日誌 189
9.4 深入Mapper XML映射文件 190
9.4.1 select 191
9.4.2 insert、update和delete 192
9.4.3 sql 194
9.4.4 參數(Parameters) 195
示例:測試select、insert、update和delete操作 195
9.4.5 ResultMaps 200
示例:測試ResultMaps 201
9.5 本章小結 208
第10章 深入使用MyBatis 209
10.1 MyBatis關聯映射 210
10.1.1 一對一 210
示例:OneToOneTest 210
10.1.2 一對多 213
示例:OneToManyTest 213
10.1.3 多對多 218
示例:ManyToManyTest 218
10.2 MyBatis動態SQL 225
示例:DynamicSQLTest 225
10.2.1 if 226
10.2.2 choose(when、otherwise) 229
10.2.3 where 230
10.2.4 set 232
10.2.5 foreach 233
10.2.6 bind 234
10.3 MyBatis調用存儲過程 234
示例:MyBatis調用存儲過程 235
10.3.1 插入數據 235
10.3.2 查詢數據返迴集閤 237
10.3.3 根據id查詢數據返迴對象 238
10.3.4 修改數據 239
10.3.5 刪除數據 241
10.4 MyBatis事務管理 242
10.4.1 事務的概念 242
10.4.2 Transaction接口 243
10.4.3 事務的配置創建和使用 243
10.5 MyBatis緩存機製 247
10.5.1 一級緩存(SqlSession級彆) 247
示例:OneLevelCacheTest 247
10.5.2 二級緩存(mapper級彆) 251
示例:TwoLevelCacheTest 251
10.6 本章小結 254
第11章 MyBatis的注解配置 255
11.1 常用注解 256
11.2 注解的使用 256
示例:測試select、insert、update和delete操作 257
示例:測試一對一關聯 262
示例:測試一對多關聯 263
示例:測試多對多關聯 265
示例:測試動態SQL 267
示例:測試調用存儲過程 274
示例:測試二級緩存 276
11.3 本章小結 278
第12章 Spring 5整閤MyBatis 3 279
12.1 開發環境搭建 280
12.2 準備所需的jar包 280
12.3 準備數據庫資源 280
12.4 完成配置文件 281
12.5 持久層功能實現 283
12.6 服務層功能實現 284
12.7 控製層功能實現 286
12.8 JSP頁麵 288
12.9 測試Spring 5整閤MyBatis 3 289
12.10 本章小結 290
第13章 實戰項目:人事管理係統 291
13.1 項目簡介及係統結構 292
13.1.1 係統功能介紹 292
13.1.2 相關技術介紹 293
13.1.3 係統結構 293
13.1.4 係統的功能模塊 294
13.2 數據錶和持久化類 294
13.2.1 設計數據庫錶 294
13.2.2 設計持久化實體 296
13.2.3 創建持久化實體類 297
13.3 實現DAO持久層 303
13.3.1 公共常量類 304
13.3.2 定義DAO接口 304
13.3.3 部署DAO層 318
13.4 實現Service持久層 319
13.4.1 業務邏輯組件的設計 319
13.4.2 實現業務邏輯組件 320
13.4.3 事務管理 335
13.4.4 部署業務邏輯組件 335
13.5 實現Web層 335
13.5.1 控製器的處理順序 335
13.5.2 用戶管理 339
13.5.3 部門管理 342
13.5.4 職位管理 345
13.5.5 員工管理 348
13.5.6 公告管理 351
13.5.7 下載中心 355
13.6 本章小結 359
附錄A EL錶達式和JSTL標簽庫 360
· · · · · · (
收起)