第0章 学习Java的正确方法
0.1 我适合不适合编程
0.2 走出象牙塔
0.3 学习Java,应该如此疯狂
第1章 经典Java EE应用和开发环境
1.1 经典Java EE应用概述
1.1.1 Java EE 6相关规范
1.1.2 经典Java EE应用的分层模型
1.1.3 经典Java EE应用的组件
1.1.4 经典Java EE应用架构的优势
1.1.5 常用的企业服务器
1.2 经典Java EE应用相关技术
1.2.1 JSP、Servlet和JavaBean及替代技术
1.2.2 JSF及替代技术
1.2.3 EJB组件技术简介
1.3 JBoss的下载和安装
1.3.1 下载和安装JBoss服务器
1.3.2 配置JBoss的服务端口
1.3.3 进入控制台
1.3.4 部署Web应用
1.4 WebLogic的下载和安装
1.4.1 WebLogic的下载和安装
1.4.2 WebLogic的基本配置
1.4.3 修改WebLogic的服务端口
1.4.4 部署Web应用
1.5 NetBeans的安装和使用
1.5.1 NetBeans的下载和安装
1.5.2 使用NetBeans开发Java EE应用
1.5.3 打开NetBeans项目
1.5.4 导入Eclipse项目
1.6 使用SVN进行协作开发
1.6.1 下载和安装SVN服务器
1.6.2 配置SVN资源库
1.6.3 下载和安装SVN客户端
1.6.4 发布项目到服务器
1.6.5 从服务器下载项目
1.6.6 提交(Commit)修改
1.6.7 同步(Update)本地文件
1.6.8 添加文件和目录
1.6.9 删除文件和目录
1.6.10 查看文件或目录的版本变革
1.6.11 从以前版本重新开始
1.6.12 创建分支
1.6.13 沿着分支开发
1.6.14 合并分支
1.6.15 使用NetBeans作为SVN客户端
1.7 本章小结
第2章 JSF的基本用法
2.1 MVC和JSF
2.1.1 MVC和常见MVC框架
2.1.2 JSF的优势
2.2 下载和安装JSF
2.3 JSF使用入门
2.3.1 从输入页面开始
2.3.2 开发托管Bean
2.3.3 定义导航规则
2.4 解读JSF配置
2.4.1 配置核心控制器(FacesServlet)
2.4.2 JSF配置文件结构
2.5 托管Bean和表达式语言
2.5.1 托管Bean的属性和表达式语言
2.5.2 托管Bean的方法
2.5.3 托管Bean的分类
2.5.4 初始化托管Bean的属性
2.5.5 通过FacesContext访问应用环境
2.6 导航模型
2.6.1 静态导航
2.6.2 动态导航
2.7 使用UI标签创建视图页面
2.7.1 UI标签概述
2.7.2 UI标签的通用属性
2.7.3 表单相关标签
2.7.4 其他标签
2.8 JSF的运行流程和生命周期
2.8.1 恢复视图阶段
2.8.2 应用请求值阶段
2.8.3 处理输入校验阶段
2.8.4 更新模型的值阶段
2.8.5 调用应用阶段
2.8.6 生成响应阶段
2.9 利用JSF的消息
2.10 本章小结
第3章 深入使用JSF
3.1 JSF事件机制
3.1.1 Java事件模型概述
3.1.2 Java事件模型示例
3.1.3 JSF事件模型
3.1.4 Action事件
3.1.5 值改变事件
3.1.6 生命周期事件
3.1.7 将监听器绑定到Bean属性
3.2 JSF的国际化支持
3.2.1 加载国际化资源文件
3.2.2 使用国际化消息
3.2.3 动态数据国际化
3.2.4.让用户选择语言
3.3 使用转换器完成类型转换
3.3.1 转换器概述、用途
3.3.2 JSF内建转换器
3.3.3 使用转换器
3.3.4 转换失败后的错误消息
3.4 自定义转换器
3.4.1 实现转换器类
3.4.2 注册转换器
3.4.3 使用自定义转换器
3.4.4 绑定到Bean属性的转换器
3.5 使用验证器进行输入校验
3.5.1 输入校验概述
3.5.2 JSF内置校验器
3.5.3 校验失败后的错误消息
3.5.4 必填校验器
3.6 自定义校验器
3.6.1 开发自定义校验器
3.6.2 注册校验器
3.6.3 使用自定义校验器
3.6.4 为自定义校验器开发专用标签
3.6.5 使用托管Bean的方法执行校验
3.6.6 绑定到Bean属性的校验器
3.7 本章小结
第4章 利用JDBC和JTA访问数据库和管理全局事务
4.1 JDBC和容器管理的数据源
4.1.1 JDBC概述
4.1.2 使用JDBC执行数据库访问
4.1.3 使用WebLogic服务器管理的数据源
4.1.4 使用JBoss服务器管理的数据源
4.2 事务和JTA
4.2.1 事务的基本概念
4.2.2 分布式事务处理、XA规范和2PC协议
4.2.3 使用JTA全局事务保证多数据库的一致性
4.3 事务隔离、传播属性的设置
4.3.1 并发访问和隔离
4.3.2 事务属性
4.4 EJB的事务管理
4.4.1 容器管理事务(CMT)
4.4.2 Bean管理事务(BMT)
4.5 事务超时设置
4.6 本章小结
第5章 JNDI和远程方法调用
5.1 JNDI的概念
5.1.1 命名服务
5.1.2 目录服务
5.1.3 JNDI的优点
5.2 JNDI编程入门
5.2.1 文件系统的命名服务
5.2.2 JNDI编程
5.3 服务器提供的INDI支持
5.3.1 WebLogic的JNDI支持
5.3.2 JBoss的JNDI支持
5.4 RMI概述
5.4.1 RMI的相关概念
5.4.2 RMI的作用和意义
5.5 RMI编程
5.5.1 开发RMI服务器
5.5.2 开发RMI客户端
5.5.3 RMI的基本原理
5.6 同时作为客户端和服务器的RMI程序
5.6.1 开发客户端程序
5.6.2 开发服务器端程序
5.7 本章小结
第6章 利用JMS实现企业消息处理
6.1 面向消息的架构和JMS概述
6.1.1 面向消息的应用架构
6.1.2 JMS的基础知识和优势
6.1.3 JMS的两个重要版本
6.2 PTP类型的JMS
6.2.1 配置PTP的JMS服务器
6.2.2 PTP消息的发送
6.2.3 PTP消息的同步接收
6.2.4 PTP消息的异步接收
6.3 Pub.Sub类型的JMS
6.3.1 配置Pub.Sub模型的JMS服务器
6.3.2 消息的生产、消费
6.3.3 可靠的JMS订阅
6.4 JMS消息
6.4.1 JMS消息类型
6.4.2 JMS消息头和消息属性
6.4.3 重用消息对象
6.4.4 JMS传递方式和有效时间
6.4.5 设置消息的优先级
6.4.6 消息的确认方式
6.4.7 消息选择器
6.4.8 消息的临时目的
6.5 使用队列浏览器查看全部消息
6.6 JMS和事务
6.6.1 使用事务性Session
6.6.2 利用JTA全局事务
6.7 JMS服务器的异常监听
6.8 JMS集群
6.9 本章小结
第7章 利用JavaMail实现E-mail
7.1 E-mail简介
7.1.1 SMTP协议简介
7.1.2 POP3协议简介
7.1.3 IMAP4协议简介
7.1.4 E.mail的用途.
7.2 JavaMail介绍
7.2.1 JavaMail下载和安装
7.2.2 JavaMail的常用API
7.2.3 使用JavaMail发送邮件
7.2.4 使用JavaMail接收邮件
7.3 应用服务器的JavaMail支持
7.3.1 在WebLogic中配置JavaMail
7.3.2 通过WebLogic的邮件支持来发送邮件
7.3.3 在JBoss中配置JavaMail
7.4 本章小结
第8章 会话EJB
8.1 EJB概述
8.1.1 EJB的概念和意义
8.1.2 EJB的发展历史
8.1.3 EJB的优势和使用场景
8.2 EJB的分类
8.2.1 Session Bean的概念和作用
8.2.2 Message Driven Bean的概念和作用
8.2.3 实体和JPA
8.3 开发无状态的Session Bean
8.3.1 开发远程调用的无状态Session Bean
8.3.2 开发本地调用的无状态Session Bean
8.4 发布Session Bean
8.4.1 打包EJB.JAR
8.4.2 Annotation与部署描述文件
8.5 开发有状态的Session Beall
8.6 Session Bean的生命周期
8.6.1 无状态Session Bean的生命周期
8.6.2 有状态Session Bean的生命周期
8.6.3 定制Session Bean的生命周期行为
8.7 在Session Bean中使用事务
8.7.1 容器管理事务
8.7.2 Bean管理事务
8.8 拦截器
8.9 依赖注入
8.9.1 EJB注入
8.9.2 资源注入
8.10 配置EJB引用
8.11 使用计时器进行任务调度
8.12 本章小结
第9章 消息驱动EJB
9.1 JMS和EJB
9.1.1 为什么使用MDB
9.1.2 使用MDB的设计原则
9.2 使用消息驱动Bean
9.2.1 使用@MessageDriven和@ActivationConfigProperty
9.2.2 实现MessageListener
9.2.3 MDB的生命周期
9.2.4 MDB中的依赖注入
9.2.5 事务管理和异常处理
9.3 使用NetBeans开发E腰
9.3.1 使用NetBeans开发Session Bean
9.3.2 使用NetBeans开发MDB
9.4 本章小结
第10章 Java持久化API(JPA)
lO.1 实体简介
10.1.1 对象/关系数据库映射(ORM)
10.1.2 JPA的映射规则
10.1.3 JPA规范简介
10.2 实体入门
10.2.1 开发实体.
10.2.2 在Java SE环境下使用Hibernate JPA实现
10.2.3 在Java SE环境下使用TopLink JPA实现
10.2.4 在Java SE环境下使用EntityManager
10.2.5 使用orm.xml管理O/R映射
10.3 理解实体
10.3.1 持久化上下文和持久化单元
10.3.2 实体类的要求
10.3.3 实体的状态
10.3.4 管理实体的方法
10.4 实体的基本映射
10.4.1 映射实体类的属性
10.4.2 将实体映射到多个表
10.4.3 映射复合类型的属性
10.4.4 映射实体类的主键
10.5 关联关系映射
10.5.1 单向N—1关联
10.5.2 单向1—1关联
10.5.3 单向1—N关联
10.5.4 单向N—N关联
10.5.5 双向1—1关联
10.5.6 双向1—N关联
10.5.7 双向N—N关联
10.5.8 使用Map集合记录关联实体
10.5.9 对关联实体进行排序
10.6 继承关系映射
10.6.1 整个类层次对应一张表的映射策略
10.6.2 连接子类的映射策略
10.6.3 每个具体类对应一张表的映射策略
10.7 使用抽象实体和非实体父类
10.7.1 抽象实体
10.7.2 非实体父类
10.7.3 重定义子类实体的外键列
10.8 实体的生命周期和监听器
10.8.1 实体的生命周期与回调事件
10.8.2 使用专门的监听器实现回调
10.8.3 为全部实体配置默认监听器
10.8.4 排除监听器
10.9 本章小结
第11章 JPA的查询支持
11.1 查询API
11.1.1 面向对象的JPQL
11.1.2 查询API简介
11.2 执行查询
11.2.1 使用Query创建查询
11.2.2 设置查询参数
11.2.3 取得查询结果
11.3 JPQL语法
11.3.1 使用from子句
11.3.2 使用select子句
11.3.3 查询部分属性
11.3.4 查询中使用构造器
11.3.5 使用distinct排除相同的记录
11.3.6 Where子句和条件表达式
11.3.7 使用JPQL函数
11.3.8 多态查询
11.3.9 关联和连接
11.3.10 使用order by进行结果排序
11.3.11 JPQL查询的聚集函数
11.3.12 使用group by进行分组
11.3.13 结果集分页
11.3.14 使用子查询
11.3.15 命名查询
11.4 批量更新和批量删除
11.4.1 批量更新
11.4.2 批量删除
11.5 原生SQL查询
11.5.1 使用原生SQL查询
11.5.2 结果集映射和实体查询
11.5.3 使用命名的原生SQL查询
11.5.4 调用存储过程
11.6 本章小结
第12章 Web层和EJB的整合
12.1 Java EE应用的架构
12.1.1 SSH架构的复习和应用架构的思考
12.1.2 MVC层和业务层整合
12.1.3 DAO模式和EAO模式
12.1.4 使用Session Facade模式
12.2 从Web层访问Session Bean
12.2.1 使用依赖注入访问无状态Session Bean.
12.2.2 通过EJB引用访问有状态Session Bean
12.2.3 在工具类中调用Session Bean
12.3 在Web层使用JPA
12.3.1 使用容器管理的EntityManager
12.3.2 在容器内使用应用程序管理的EntityManager
12.3.3 通过ThreadLocal在容器外使用安全的EntityManager
12.4 基于JBoss的JSF+EJB 3+JPA整合
12.4.1 开发JPA实体
12.4.2 开发EAO对象
12.4.3 开发业务逻辑组件
12.4.4 定义JSF的托管Bean来处理请求
12.5 基于WebLogic的Struts 2+EJB 3+JPA整合
12.5.1 开发实体并配置持久化单元
12.5.2 开发EAO组件和业务逻辑组件
12.5.3 配置EJB引用
12.5.4 定义Action来处理用户请求
12.6 本章小结
第13章 EJB和Web Service
13.1 Web Service概述
13.1.1 Web Service概述
13.1.2 Web Service平台概述
13.1.3 Web Service的广泛应用
13.2 JAX-WS:Java EE 5 WlebService平台
13.2.1 JavaEE的Web Service支持
13.2.2 为什么选择EJB开发Web Servicej
13.3 使用JAX.WS 2.0开发Web Service
13.3.1 使用@WebService
13.3.2 使用@WebMethod
13.3.3 使用@SOAPBinding指定Web Service风格
13.3.4 使用@WebParam
13.3.5 使用@WebResult
13.3.6 使用@OneWay
13.4 客户端调用Web Service
13.5 本章小结
第14章 利用JAAS开发安全的应用
14.1 JAAS概述
14.1.1 JavaEE应用的安全概述
14.1.2 安全域、用户、组和角色概念
14.1.3 JAAS的基本流程
14.2 管理服务器的用户和组
14.2.1 管理WebLogic服务器上的用户和组
14.2.2 管理JBoss服务器上的用户和角色
14.2.3 使用RDBMS管理Jboss服务器上的用户和角色
14.3 开发安全的Web应用
14.3.1 声明安全性
14.3.2 映射安全角色
14.3.3 基于JBoss服务器的表单登录
14.3.4 基于WebLogic服务器的安全角色映射
14.3.5 基于WebLogic服务器的表单登录
14.3.6 Web应用中编程式安全
14.4 开发安全的Java EE应用
14.4.1 为EJB声明安全性
14.4.2 应用客户端访问被保护的方法
14.4.3 使用Web组件调用EJB被保护的方法
14.4.4 EJB中编程式安全
14.5 使用SSL建立安全连接
14.5.1 SSL基础知识
14.5.2.安装和配置SSL支持
14.5.3 在配置描述符中指定安全连接
14.6 本章小结
第3篇应用实践
第15章 电子拍卖系统
15.1 系统功能简介和架构设计
15.1.1 系统功能简介
15.1.2 系统架构设计
15.2 持久层设计
15.2.1 系统实体
15.2.2 系统E.R图和数据表
15.2.3 实现JPA实体
15.2.4 管理持久化单元
15.3 实现系统EAO层
15.3.1 实现EA0基类
15.3.2 实现系统EA0组件
15.4 实现业务逻辑层
15.4.1 定义业务逻辑组件接口
15.4.2 依赖注入EA0组件
15.4.3 业务逻辑组件中的异常处理
15.4.4 处理用户竞价
15.4.5 判断拍卖物品状态
15.4.6 事务管理
15.5 实现系统Web层
15.5.1 安装JSF
15.5.2 处理用户登录
15.5.3 图形验证码
15.5.4 登录控制
15.5.5 添加物品
15.5.6 处理用户竞价
15.6 使用SiteMesh页面装饰
15.6.1 在Web应用中安装SiteMesh
15.6.2 定义页面装饰
15.7 本章小结