第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
· · · · · · (
收起)