第一部分 Java EE基础及服务 1
第1章 Java Web开发模型及其演化 1
1.1 应用模式演化 1
1.1.1 单机应用 1
1.1.2 C/S应用 1
1.1.3 B/S应用 2
1.1.4 云应用 3
1.2 JavaWeb开发模型演化 4
1.2.1 原始阶段 4
1.2.2 模型阶段 4
1.2.3 框架阶段 5
1.3 Java EE多层架构 5
1.3.1 概述 5
1.3.2 表现层 6
1.3.3 业务层 6
1.3.4 持久层 6
1.4 本章小结 6
第2章 Java EE基础服务 8
2.1 概述 8
2.1.1 JavaEE基础服务架构 8
2.1.2 Java EE提供的服务 9
2.2 JNDI(Java命名和目录服务) 9
2.2.1 基本原理 9
2.2.2 JNDI API 10
2.2.3 应用示例 11
2.3 RMI(远程方法调用) 13
2.3.1 基本原理 13
2.3.2 RMI API 15
2.3.3 应用示例 15
2.4 JDBC(Java数据库互连) 17
2.4.1 基本原理 17
2.4.2 JDBC API 19
2.4.3 应用示例 20
2.5 JTA(Java事务API) 22
2.5.1 基本原理 22
2.5.2 JTAAPI 24
2.5.3 应用示例 25
2.6 JMS(Java消息服务) 25
2.6.1 基本原理 25
2.6.2 JMS API 27
2.6.3 消息服务器配置 28
2.6.4 应用示例 29
2.7 本章小结 30
第二部分 Java Web开发基础 32
第3章 JavaWeb应用概述 32
3.1 静态网页和交互式网页 32
3.2 Java Web应用体系结构 32
3.2.1 HTML 32
3.2.2 HTTP 34
3.2.3 JSP和Servlet技术 35
3.2.4 Java Web应用基本组成 36
3.2.5 Java Web应用文档结构 36
3.3 Java Web运行与开发环境 37
3.3.1 运行环境 37
3.3.2 开发环境 38
3.4 本章小结 41
第4章 JSP技术 42
4.1 JSP简介 42
4.1.1 JSP特点 42
4.1.2 JSP工作原理 42
4.2 第一个JSP程序 43
4.3 JSP基本语法 45
4.3.1 脚本元素 45
4.3.2 指令元素 46
4.3.3 动作元素 47
4.3.4 注释 54
4.4 JSP内置对象 54
4.4.1 out对象 54
4.4.2 request对象 54
4.4.3 response对象 56
4.4.4 session对象 57
4.4.5 application对象 60
4.4.6 page和pageContext对象 61
4.4.7 exception对象 61
4.5 对象范围 61
4.6 本章小结 62
第5章 Servlet技术 63
5.1 Servlet概述 63
5.1.1 Servlet工作原理 63
5.1.2 Servlet生命周期 64
5.2 编写第一个Servlet 64
5.2.1 编写Servlet 64
5.2.2 部署 66
5.2.3 访问Servlet 66
5.3 Servlet主要接口及实现类 67
5.3.1 javax.servlet.Servlet接口 67
5.3.2 ServletConfig接口 67
5.3.3 iavax.servlet.GenericServlet类 67
5.3.4 javax.servlet.http.HttpServlet类 68
5.3.5 HttpServletRequest和HttpServletResponse 68
5.4 Servlet与客户端进行通信 68
5.4.1 request对象 69
5.4.2 response对象 69
5.4.3 Servlet上下文 69
5.4.4 请求转发 70
5.4.5 Cookie对象 71
5.4.6 应用示例 72
5.5 过滤器 75
5.5.1 过滤器工作原理 75
5.5.2 过滤框架及部署 75
5.5.3 应用示例 76
5.6 Servlet生命周期事件 79
5.6.1 应用事件监听器 79
5.6.2 监听器注册部署 80
5.6.3 生命周期事件应用 80
5.7 本章小结 81
第6章 EL与JSTL 83
6.1 EL 83
6.1.1 即时计算和延迟计算 83
6.1.2 []与.操作符 84
6.1.3 运算符 84
6.1.4 EL内置对象 84
6.2 JSTL 86
6.2.1 JSTL配置 86
6.2.2 核心标签库 86
6.2.3 国际化标签库 92
6.2.4 函数标签库 96
6.2.5 其他标签库 97
6.3 本章小结 97
第7章 基于MVC的开发 98
7.1 MVC概述 98
7.1.1 Model 98
7.1.2 View 98
7.1.3 Controller 98
7.1.4 JavaWeb的MVC实现模式 98
7.2 MVC开发实例 99
7.2.1 系统分析及功能设计 99
7.2.2 MVC模块设计 99
7.2.3 详细设计 100
7.3 系统实现 102
7.3.1 视图部分实现 102
7.3.2 模型部分实现 104
7.3.3 控制器部分实现 107
7.3.4 其他部分实现 108
7.4 系统部署 110
7.5 本章小结 111
第三部分 轻量级框架SSH 112
第8章 Struts 2 112
8.1 Struts 2的工作原理 112
8.2 Struts 2配置 113
8.2.1 web.xml配置 113
8.2.2 struts.xml配置 114
8.3 简单示例 115
8.3.1 创建工程 115
8.3.2 业务控制器Action 116
8.3.3 struts.xml配置 116
8.3.4 视图文件 117
8.3.5 运行示例 118
8.4 Action 118
8.4.1 Action实现 118
8.4.2 Action配置 121
8.5 拦截器 125
8.5.1 Struts 2拦截器原理 125
8.5.2 Struts 2内建拦截器 126
8.5.3 自定义拦截器 128
8.6 OGNL和类型转换 130
8.6.1 OGNL概述 130
8.6.2 OGNL表达式 131
8.6.3 OGNL融入Struts2框架 133
8.6.4 Struts 2内建类型转换器 135
8.6.5 自定义类型转换器 139
8.7 Struts2的标签库 141
8.7.1 数据标签 141
8.7.2 控制标签 147
8.7.3 表单UI标签 150
8.7.4 非表单UI标签 153
8.8 输入校验 154
8.8.1 Struts 2内建校验器 154
8.8.2 自定义校验器 159
本章小结 161
第9章 Hibernate 162
9.1 数据持久化与ORM 162
9.1.1 数据持久化 162
9.1.2 ORM 162
9.2 Hibernate简介 164
9.2.1 简介 164
9.2.2 Hibernate框架与接口 165
9.3 第一个Hibernate应用 168
9.3.1 创建数据库 169
9.3.2 创建Hibernate项目 169
9.3.3 创建持久化类 170
9.3.4 编写Hibernate映射文件 171
9.3.5 编写Hibernate配置文件 171
9.3.6 编写SessionFactory和DAO文件 172
9.3.7 编写HTML页面和jsp文件 174
9.3.8 构建、部署并运行程序 175
9.3.9 基于MyEelipse的Hibernate反向工程 175
9.4 实体状态及持久化操作 176
9.4.1 瞬时态 176
9.4.2 持久态 176
9.4.3 脱管态 177
9.4.4 移除态 177
9.5 Hibernate实体映射 178
9.5.1 Hibernate实体映射概述 178
9.5.2 Hibernate实体类/数据表映射 178
9.5.3 Hibernate复合主键及嵌入式主键 182
9.5.4 Hibernate特殊属性映射 186
9.6 Hibernate实体关系映射 188
9.6.1 Hibernate一对一关联 190
9.6.2 Hibernate一对多关联和多对一关联 193
9.6.3 Hibernate多对多关联 195
9.6.4 Hibernate继承关联 197
9.7 Hibernate基本数据查询 202
9.7.1 Hibernate数据检索 202
9.7.2 Query接口 203
9.7.3 HQL基本语法 203
9.7.4 HQL返回结果 206
9.7.5 HQL中的参数绑定 207
9.7.6 实现一般SQL查询 208
9.7.7 命名查询 208
9.8 本章小结 209
第10章 Spring 210
10.1 Spring简介 210
10.1.1 Spring的发展及特点 210
10.1.2 Spring的体系结构 211
10.2 Spring第一个实例 212
10.3 SpringIoC容器与Beans 215
10.3.1 BeanFactory和ApplicationContext 215
10.3.2 Bean基本装配 218
10.3.3 依赖注入 219
10.3.4 基于注解的Bean配置 228
10.4 Spring AOP 232
10.4.1 AOP基础 232
10.4.2 SpringAOP中的Annotation配置 233
10.4.3 Spring AOP中的文件配置 237
10.5 Spring事务管理与任务调度 238
10.5.1 Spring中事务基本概念 238
10.5.2 Spring事务的配置 240
10.6 Spring集成 246
10.6.1 Spring整合Struts 2 246
10.6.2 Spring整合Hibernate 249
10.7 本章小结 252
第四部分 经典Java EE框架 253
第11章 JSF 253
11.1 JSF概述 253
11.1.1 工作原理 253
11.1.2 配置文件 254
11.2 简单示例 255
11.3 UI组件 260
11.3.1 概述 260
11.3.2 HTML组件标签 260
11.3.3 核心组件标签 265
11.4 验证器、转换器和事件监听器 265
11.4.1 验证器 265
11.4.2 转换器 267
11.4.3 事件监听器 271
11.5 本章小结 273
第12章 EJB 274
12.1 EJB基本概念 274
12.1.1 EJB发展历史及意义 274
12.1.2 EJB运行服务器 274
12.1.3 第一个EJB 275
12.1.4 EJB3运行环境以及在JBoss中的部署 277
12.2 会话Bean 279
12.2.1 会话Bean概述 279
12.2.2 无状态会话Bean 279
12.2.3 有状态会话Bean 283
12.3 依赖注入 285
12.3.1 EJB3中的依赖注入 285
12.3.2 资源类型的注入 288
12.4 消息驱动Bean 289
12.4.1 消息驱动Bean原理 289
12.4.2 消息驱动Bean开发 289
12.5 EJB访问其他资源 293
12.5.1 访问数据源 293
12.5.2 访问定时服务 294
12.5.3 事务处理 296
12.5.4 拦截器 303
12.6 本章小结 304
第13章 JPA 305
13.1 JPA简介 305
13.1.1 简介 305
13.1.2 JPA与其他持久化技术的比较 306
13.1.3 JPA与EJB3之间的关系 306
13.1.4 JPA的主要类和接口 306
13.2 第一个JPA应用 308
13.2.1 创建JPA项目 309
13.2.2 创建基于注解的持久化类 309
13.2.3 编写JPA配置文件 310
13.2.4 编写EntityManagerHelper和DAO文件 311
13.2.5 基于MyEclipse的JPA反向工程 313
13.3 使用JPA完成实体状态的操作 313
13.3.1 实体的状态及操作 313
13.3.2 获取实体管理器工厂 316
13.3.3 获取实体管理器 317
13.3.4 使用实体管理器 318
13.3.5 处理事务 321
13.4 使用JPA完成查询 326
13.4.1 使用EntityManager根据主键查询对象 326
13.4.2 编写简单查询 326
13.4.3 创建Query对象 327
13.4.4 使用命名查询 327
13.4.5 处理查询中的变量 327
13.4.6 得到查询结果 328
13.4.7 使用分页查询 329
13.4.8 访问查询结果 329
13.4.9 使用标准SQL语句 330
13.5 JPA进阶 332
13.5.1 把查询的多个值封装成对象 332
13.5.2 使用存储过程 332
13.5.3 JPA实体生命周期回调方法 333
13.6 本章小结 335
第五部分 案例项目开发实践 336
第14章 案例项目开发示例 336
14.1 系统简介 336
14.1.1 背景 336
14.1.2 业务功能需求 336
14.2 系统分析 337
14.2.1 分析类 337
14.2.2 ER图 337
14.3 数据库表结构设计 338
14.4 基于MVC的Java Web模型 339
14.4.1 系统设计 339
14.4.2 系统各层的实现 340
14.5 基于轻量级SSH框架 346
14.5.1 系统设计 346
14.5.2 系统各层的实现 346
14.6 基于经典Java EE框架 356
14.6.1 系统设计 356
14.6.2 系统各层的实现 356
14.7 本章小结 365