第1章 Java EE概述 1
1.1 Java EE简介 1
1.1.1 Java EE框架的产生 1
1.1.2 什么是Java EE 2
1.1.3 Java EE规范新概念 3
1.1.4 Java EE常用技术 4
1.2 搭建Java EE开发环境 5
1.2.1 安装JSEDK 5
1.2.2 安装Java EE开发工具 6
1.2.3 安装MySQL 8
1.2.4 安装GlassFish 13
1.3 Java EE应用中的分层架构 15
1.3.1 分层架构模式 16
1.3.2 Java EE中的三层结构 17
1.3.3 结合MVC模式的分层结构 17
1.3.4 案例1-1 网络书城系统分析与设计 17
本章小结 27
习题 27
第2章 Java Web应用开发基础 28
2.1 JDBC技术 28
2.1.1 JDBC简介 28
2.1.2 JDBC访问数据库的基本步骤 29
2.1.3 案例2-1 网络书城系统数据访问层的实现 29
2.1.4 JDBC数据源与连接池 33
2.2 Servlet技术 36
2.2.1 什么是Servlet 36
2.2.2 如何建立Servlet 36
2.2.3 案例2-2 建立超级管理员登录Servlet 37
2.2.4 Servlet的配置 40
2.2.5 转发和重定向 40
2.2.6 处理请求和响应 41
2.2.7 案例2-3 使用Servlet实现验证码 43
2.3 过滤器和监听器 45
2.3.1 过滤器Filter 45
2.3.2 案例2-4 设计一个编码过滤器 45
2.3.3 监听器Listener 47
2.3.4 Servlet上下文与会话 48
2.3.5 案例2-5 统计访问人数和在线人数 49
2.4 JSP、标签和表达式语言 51
2.4.1 JSP概述 51
2.4.2 JSP隐含对象 52
2.4.3 自定义标签的设计与使用 53
2.4.4 案例2-6 设计图书分类标签 53
2.4.5 表达式语言EL和标准标签库JSTL 56
2.4.6 案例2-7 实现图书分类的管理 60
本章小结 64
习题 64
第3章 MVC框架技术Struts2 65
3.1 Struts2概述 65
3.1.1 Struts框架的历史 65
3.1.2 Struts2下载与配置 66
3.1.3 案例3-1 使用Struts2实现客户登录 67
3.1.4 Struts2的MVC原理 70
3.1.5 Struts2组件 71
3.1.6 Struts2的中文乱码问题 73
3.2 Action与结果类型 73
3.2.1 Action的实现类 73
3.2.2 在Action中访问Web对象 76
3.2.3 多方法的Action 76
3.2.4 result类型 77
3.3 输入验证 79
3.3.1 使用validate()方法 79
3.3.2 使用验证文件验证 80
3.3.3 案例3-2 实现客户登录和注册验证(使用配置文件验证) 82
3.4 Struts2国际化、标签库和OGNL表达式 86
3.4.1 Struts2国际化 86
3.4.2 常用Struts2标签 87
3.4.3 Struts2的OGNL 90
3.5 拦截器、文件上传和下载 91
3.5.1 拦截器 91
3.5.2 文件上传和下载 93
3.5.3 案例3-3 实现图书的添加 95
本章小结 99
习题 100
第4章 持久化技术JPA 101
4.1 JPA概述 101
4.1.1 JPA及其优势 101
4.1.2 Hibernate JPA 102
4.1.3 实体与实体管理器 103
4.1.4 持久性单元 106
4.1.5 案例4-1 在书城项目中配置Hibernate JPA 107
4.2 实体对象映射 108
4.2.1 实体映射基础 108
4.2.2 主键映射 110
4.2.3 映射特殊类型 111
4.2.4 案例4-2 书城项目中客户实体类的设计 112
4.3 实体关系映射 115
4.3.1 实体关系概述 115
4.3.2 一对一映射 115
4.3.3 一对多映射 118
4.3.4 多对一映射 119
4.3.5 案例4-3 书城项目的其他实体类设计 121
4.4 实体操作与事务管理 123
4.4.1 JPA实体操作 123
4.4.2 JPA查询 125
4.4.3 JPA事务管理 128
4.4.4 辅助类设计 129
4.4.5 案例4-4 基于JPA的书城Dao设计 130
本章小结 133
习题 133
第5章 轻量级框架Spring 135
5.1 Spring基础 135
5.1.1 Spring框架 135
5.1.2 Spring控制反转IoC 136
5.1.3 Bean的配置与BeanFactory 139
5.1.4 案例5-1 在书城项目中使用Spring 140
5.2 Spring的AOP 144
5.2.1 AOP的概念 144
5.2.2 使用Spring中的AOP 146
5.2.3 基于XML Schema和Annotation的Spring AOP配置 150
5.2.4 案例5-2 书城项目中的日志实现 151
5.3 Spring集成其他框架 152
5.3.1 Spring与Struts2集成 152
5.3.2 Spring与JPA集成 152
5.3.3 SSHJ架构 156
5.3.4 案例5-3 基于SSHJ架构的书城项目配置 156
5.4 Spring事务管理与任务调度 157
5.4.1 事务的基本配置 157
5.4.2 事务的传播属性 158
5.4.3 使用aop及tx标签配置事务 160
5.4.4 使用标注配置事务 160
5.4.5 任务调度 161
5.4.6 案例5-4 书城项目中事务和任务调度的配置 162
本章小结 164
习题 165
第6章 EJB架构 166
6.1 EJB概述 166
6.1.1 什么是EJB 166
6.1.2 EJB组件类型 167
6.1.3 EJB中的依赖注入 168
6.1.4 案例6-1 使用NetBeans创建企业级书城项目 169
6.2 无状态会话Bean 171
6.2.1 创建无状态会话Bean 171
6.2.2 访问无状态会话Bean 172
6.2.3 案例6-2 创建书城的无状态会话Bean 173
6.3 有状态会话Bean 176
6.3.1 创建有状态会话Bean 176
6.3.2 会话Bean的生命周期 176
6.3.3 案例6-3 书城的购物车会话Bean 178
6.4 单例会话Bean、计时器Bean和消息驱动Bean 180
6.4.1 单例会话Bean 180
6.4.2 计时器Bean 182
6.4.3 JMS与消息驱动Bean 183
6.4.4 案例6-4 书城项目中的订单消息驱动Bean 187
6.5 EJB中的拦截器和安全域 190
6.5.1 EJB中的拦截器 190
6.5.2 验证、授权与登录验证 193
6.5.3 案例6-5 基于安全域实现书城项目的管理员登录验证 194
本章小结 198
习题 198
第7章 JavaServer Faces技术 199
7.1 JSF概述 199
7.1.1 什么是JSF 199
7.1.2 JSF的优势 200
7.1.3 JSF应用的组成 200
7.1.4 模板页面与适配页面 205
7.1.5 案例7-1 在书城项目中使用JSF 207
7.2 JSF表达式语言与标签 211
7.2.1 JSF表达式语言 211
7.2.2 JSF的HTML标签 212
7.2.3 JSF核心标签 216
7.2.4 案例7-2 书城客户注册功能实现 217
7.3 JSF数据传递方法 218
7.3.1 从JSF页面传递参数给受管Bean 218
7.3.2 在请求之间传递对象 219
7.3.3 在受管Bean之间通信 220
7.4 数据类型转换与验证 220
7.4.1 标准转换器 220
7.4.2 自定义转换器 221
7.4.3 标准验证器 223
7.4.4 自定义验证器 224
7.4.5 案例7-3 为客户注册页增加验证功能 225
7.5 消息处理与国际化支持 227
7.5.1 消息处理 227
7.5.2 国际化支持 228
7.6 JSF生命周期与事件处理 231
7.6.1 JSF生命周期 231
7.6.2 Phase事件与JSF监听器 232
7.6.3 动作事件 233
7.6.4 即时事件 233
7.6.5 值变事件 234
本章小结 235
习题 236
第8章 基于EJB架构的论坛系统设计 237
8.1 系统分析与设计 237
8.1.1 系统分析 237
8.1.2 总体设计 237
8.1.3 实体类(数据模型)设计 240
8.1.4 接口设计 244
8.2 数据访问层实现 246
8.2.1 BaseDao实现 246
8.2.2 BbsUserDao实现 248
8.2.3 BbsLoginDao实现 248
8.2.4 BbsForumDao实现 249
8.2.5 BbsThemeDao实现 249
8.2.6 BbsMessageDao实现 249
8.3 业务逻辑层实现 250
8.3.1 BbsUserService实现 250
8.3.2 BbsLoginService实现 250
8.3.3 BbsForumService实现 251
8.3.4 BbsThemeService实现 251
8.3.5 BbsMessageService实现 252
8.4 系统配置 253
8.4.1 连接池和数据源配置 253
8.4.2 持久化单元配置 253
8.4.3 引入JSF框架 253
8.4.4 安全验证配置 254
8.5 控制层实现 257
8.5.1 控制层基类 257
8.5.2 版块控制类 259
8.5.3 主题控制类 260
8.5.4 帖子控制类 263
8.5.5 用户控制类 265
8.6 视图层设计 268
8.6.1 界面的总体设计 268
8.6.2 主题视图设计 272
8.6.3 帖子视图设计 276
8.6.4 用户视图设计 280
本章小结 284
习题 284