第1章 Java EE应用 1
1.1 Java EE应用概述 2
1.1.1 JavaEE应用的分层模型 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 MyBatis3及替代技术 5
1.2.3 Spring4及替代技术 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 Struts2和Spring MVC 11
2.3 开发第一个SpringMVC应用 11
2.3.1 Spring的下载和安装 11
2.3.2 SpringMVC的DispatcherServlet 12
2.3.3 基于Controller接口的控制器 13
示例:第一个SpringMVC应用 13
示例:基于注解的控制器 17
2.4 详解DispatcherServlet 19
2.5 Spring MVC执行的流程 21
2.5.1 Spring MVC应用的开发步骤 22
2.5.2 Spring MVC执行的流程 23
2.6 本章小结 24
第3章 Spring MVC的常用注解 25
3.1 @Controller注解 26
示例:@Controller注解的使用 26
3.2 @RequestMapping注解 28
3.2.1 @RequestMapping注解 28
3.2.2 请求处理方法可出现的参数类型 30
3.2.3 请求处理方法可返回的类型 31
3.2.4 Model和ModelAndView 31
示例:Model和ModelMap的使用 32
示例:ModelAndView的使用 33
3.3 参数绑定注解 33
3.3.1 @RequestParam注解 33
示例:@RequestMapping和@RequestParam注解的使用 34
3.3.2 @PathVariable注解 38
3.3.3 @RequestHeader注解 38
3.3.4 @CookieValue注解 39
示例:@PathVariable、@RequestHeader和@CookieValue注解的使用 39
3.3.5 @SessionAttributes注解 41
示例:@SessionAttributes注解的使用 41
3.3.6 @ModelAttribute注解 42
示例:@ModelAttribute注解的使用 43
3.4 信息转换 49
3.4.1 HttpMessageConverter<T>接口 49
3.4.2 转换JSON数据 51
示例:接收JSON格式的数据 51
示例:自定义HttpMessageConverter接收JSON格式的数据 55
示例:返回JSON格式的数据 57
示例:自定义HttpMessageConverter返回JSON格式的数据 58
3.4.3 转换XML数据 59
示例:接收XML格式的数据 59
示例:返回XML格式的数据 61
3.5 本章小结 62
第4章 Spring MVC的标签库 64
4.1 表单标签库 65
4.1.1 form标签 65
4.1.2 input标签 66
示例:form和input标签的使用 66
4.1.3 password标签 68
4.1.4 hidden标签 69
4.1.5 textarea标签 69
4.1.6 checkbox标签 70
示例: checkbox标签的使用 70
4.1.7 checkboxes标签 71
示例: checkboxes标签的使用 72
4.1.8 radiobutton标签 76
示例:radiobutton标签的使用 76
4.1.9 radiobuttons标签 77
示例:radiobuttons标签的使用 77
4.1.10 select标签 79
4.1.11 option标签 79
4.1.12 options标签 79
示例:select、option和options标签的使用 80
4.1.13 errors标签 83
示例:errors标签的使用 84
4.2 本章小结 86
第5章 Spring MVC的国际化 87
5.1 Spring MVC国际化的相关知识 88
5.1.1 messageSource 88
5.1.2 localeResolver 88
5.1.3 message标签 89
5.2 AcceptHeaderLocaleResolver国际化 89
示例:基于浏览器请求的国际化实现 89
5.3 SessionLocaleResolver国际化 92
示例:基于HttpSession的国际化实现 93
5.4 CookieLocaleResolver国际化 95
示例:基于Cookie的国际化实现 95
5.5 本章小结 96
第6章 Spring MVC的数据转换、格式化和数据校验 97
6.1 数据绑定流程 98
6.2 数据转换 98
6.2.1 ConversionService 98
6.2.2 Spring支持的转换器 99
示例:使用ConversionService转换数据 100
示例:使用@InitBinder添加自定义编辑器转换数据 103
示例:使用WebBindingInitializer注册全局自定义编辑器转换数据 103
6.2.3 多种转换器的优先顺序 104
6.3 数据格式化 104
示例:使用Formatter格式化数据 105
示例:使用FormatterRegistrar注册Formatter 107
示例:使用AnnotationFormatterFactory<Aextends Annotation>格式化数据 108
6.4 数据校验 110
6.4.1 Spring的Validation校验框架 111
示例:测试Spring的Validation校验 112
6.4.2 JSR303校验 114
示例:测试JSR303校验 115
6.5 本章小结 120
第7章 Spring MVC的文件上传和下载 121
7.1 文件上传 122
示例:Spring MVC的文件上传 122
示例:使用对象接收上传文件 124
7.2 文件下载 125
示例:Spring MVC的文件下载 125
7.3 拦截器 126
7.3.1 HandlerInterceptor接口 127
示例:拦截器实现用户权限验证 127
7.4 本章小结 131
第8章 MyBatis简介 132
8.1 ORM和MyBatis 133
8.1.1 对象/关系数据库映射(ORM) 133
8.1.2 基本映射方式 134
8.1.3 流行的ORM框架简介 135
8.1.4 MyBatis概述 135
8.2 MyBatis入门 136
8.2.1 MyBatis下载和安装 136
8.2.2 MyBatis的数据库操作 137
8.3 本章小结 142
第9章 MyBatis的基本用法 143
9.1 MyBatis的体系结构 144
9.1.1 SqlSessionFactory 144
9.1.2 SqlSession 144
9.2 深入MyBatis的配置文件 146
9.2.1 MyBatis的配置文件结构 147
9.2.2 properties属性 147
9.2.3 settings设置 148
9.2.4 typeAliases类型命名 150
9.2.5 typeHandlers类型处理器 151
9.2.6 objectFactory对象工厂 152
9.2.7 environments配置环境 152
9.2.8 mapper映射器 154
9.3 深入MapperXML映射文件 155
9.3.1 select 155
9.3.2 insert、update和delete 157
9.3.3 sql 158
9.3.4 参数(Parameters) 159
示例:测试select、insert、update和delete操作 159
9.3.5 ResultMaps 163
示例:测试ResultMaps 163
9.4 本章小结 169
第10章 MyBatis的关联映射和动态SQL 170
10.1 MyBatis的关联映射 171
10.1.1 一对一 171
示例:OneToOneTest 171
10.1.2 一对多 174
示例:OneToManyTest 174
10.1.3 多对多 179
示例:ManyToManyTest 179
10.2 动态SQL 185
示例:DynamicSQLTest 185
10.2.1 if 186
10.2.2 choose(when、otherwise) 188
10.2.3 where 190
10.2.4 set 191
10.2.5 foreach 192
10.2.6 bind 193
10.3 本章小结 194
第11章 MyBatis的事务管理和缓存机制 195
11.1 MyBatis的事务管理 196
11.1.1 事务的概念 196
11.1.2 Transaction接口 196
11.1.3 事务的配置创建和使用 197
11.2 MyBatis的缓存机制 201
11.2.1 一级缓存(SqlSession级别) 201
示例OneLevelCacheTest 201
11.2.2 二级缓存(mapper级别) 204
示例:TwoLevelCacheTest 204
11.3 本章小结 207
第12章 MyBatis的注解配置 208
12.1 常用Annotation注解 209
12.2 Annotation注解的使用 209
示例:测试select、insert、update和delete操作 210
示例:AOneToOneTest 213
示例:AOneToManyTest 215
示例:AManyToManyTest 216
示例:ADynamicSQLTest 218
12.3 本章小结 224
第13章 Spring4整合MyBatis3 225
13.1 开发环境搭建 226
13.2 准备所需的jar包 226
13.3 准备数据库资源 226
13.4 完成配置文件 227
13.5 持久层功能实现 229
13.6 服务层功能实现 230
13.7 控制层功能实现 232
13.8 jsp页面 233
13.9 测试Spring4整合MyBatis3 234
13.10 本章小结 235
第14章 实战项目:人事管理系统 236
14.1 项目简介及系统结构 237
14.1.1 系统功能介绍 237
14.1.2 相关技术介绍 238
14.1.3 系统结构 238
14.1.4 系统的功能模块 239
14.2 数据表和持久化类 239
14.2.1 设计数据库表 239
14.2.2 设计持久化实体 241
14.2.3 创建持久化实体类 242
14.3 实现DAO持久层 248
14.3.1 公共常量类 249
14.3.2 定义DAO接口 249
14.3.3 部署DAO层 263
14.4 实现Service持久层 264
14.4.1 业务逻辑组件的设计 264
14.4.2 实现业务逻辑组件 264
14.4.3 事务管理 279
14.4.4 部署业务逻辑组件 279
14.5 实现Web层 280
14.5.1 控制器的处理顺序 280
14.5.2 用户管理 283
14.5.3 部门管理 287
14.5.4 职位管理 290
14.5.5 员工管理 292
14.5.6 公告管理 296
14.5.7 下载中心 299
14.6 本章小结 303
附录A EL表达式和JSTL标签库 304