第1部分 技术背景
第1章 使用J2EE的原因
1.1 引言
1.2 1T组织面临的挑战
1.3 企业级应用程序开发的需求
1.4 技术选择
1.5 选择Java和J2EE的理由
1.6 警告说明
1.7 其他内容
1.8 参考文献
第2章 分布式系统入门
2.1 分布式应用程序或系统的概念
2.2 构建分布式程序的理由
2.3 Java对分布式程序的作用
2.4 分布式对象系统
2.5 J2EE的作用
2.6 在线参考文献
第3章 J2EE漫游
3.1 引言
3.2 J2EE平台
3.3 J2EE技术漫游
3.3.1 通信服务
3.3.2 通用服务
3.3.3 组件技术
3.4 参考文献
第4章 Java和远程方法调用
4.1 引言一
4.2 远程方法调用(RMl)
4.2.1 远程接口
4.2.2 子类化服务器类
4.2.3 运行rmic编译器
4.2.4 启动注册表
4.3 RMIClient类
4.4 RMI的性能
4.5 参数传递
4.6 在线参考文献
第5章 可激活的服务器
5.1 引言
5.2 扩展RMI
5.3 实现可激活的服务器
5.3.1 远程接口
5.3.2 Client类
5.3.3 可激活的服务器
5.3.4 服务器设置
5.4 运行可激活的客户机朋艮务器
5.5 小结
5.6 在线参考文献
第6章 JNDI
6.1 引言
6.2 使用JNDI的必需条件
6.3 LDAP
6.4 LDAP的功能
6.5 使用LDAP
6.6 使用JNDI
6.7 在LDAP中保存数据
6.8 JNDI、RMI和LDAP
6.9 小结
第7章 Java消息服务(JMS)
7.1 引言
7.2 消息服务器和JMS
7.2.1 什么是消息服务
7.2.2 为什么使用消息服务
7.2.3 什么是JMS
7.2.4 JMSAPl概念
7.3 点对点通信
7.4 发布/订阅通信
7.5 JMS API
7.5.1 连接工厂
7.5:2 连接
7.5.3 会话
7.5.4 消息
7.5.5 目标
7.5.6 消息生产者
7.5.7 消息消费者
7.6 点对点应用程序的开发步骤
7.6.1 发布目标
7.6.2 定义客户端
7.6.3 定义接收消息的客户端
7.6.4 启动消息服务器
7.6.5 编译并启动客户端
7.7 发布/订阅应用程序的开发步骤
7.7.1 发布主题
7.7.2 定义发布者客户端
7.7.3 定义订阅者客户端
7.7.4 启动消息服务器
7.7.5 编译并启动客户端
7.8 其他的JMS特性
7.8.1 指定消息的持久性
7.8.2 设置消息优先级
7.8.3 定义消息持续的时间
7.8.4 持久订阅
7.8.5 主题消息选择器
7.8.6 客户端验证
7.8.7 事务
7.9 小结
7.10 在线参考文献
第8章 Java、IDL和ORB
8.1 引言
8.2 CORBA
8.3 JavaIDL
8.3.1 JavaORB
8.3.2 Java命名服务器
8.3.3 将IDL转化成Java
8.3.4 实现服务器
8.3.5 实现客户端
8.3.6 编译服务器和客户端
8.3.7 运行应用程序
8.3.8 JavaIDL和RM卜
8.4 在线参考文献
第9章 Java数据库连接
9.1 引言
9.2 什么是JDBC
9.3 驱动程序提供的内容
9.4注册驱动程序
9.5 打开连接
9.6 从数据库中获取数据
9.7 创建表
9.8 applet和数据库
9.9 以批处理方式更新
9.10可滚动和可更新的ResultSet
9.11 可更新的ResultSet
9.12 JDBC数据源
9.13 连接池
9.14 RowSet对象
9.15 JDBC元数据
9.15.1 DatabaseMetaData
9.15.2 ResultSetMetaData
9.16 在线参考文献
9.17 参考文献
第10章 XML和Java
10.1 引言
10.2 XML介绍
10.2.1 什么是XML
10.2.2 XML文档
10.2.3 XML词汇表
10.2.4 使用DTD
10.3 XSL转换
10.4 处理XML
10.5 JAXPAPI
10.6 SAXAPl
10.7 DOMAPI
10.8 载入XML文档
10.9 在Java中创建XML文档
10.10 在JAX中使用XSLT
第11章 JavaMailAPl:Mail在其中
11.1 引言
11.2 JavaMailAPI
11.3 安装JavaMail
11.4 发送Email
11.5 接收消息
11.6 回复消息
11.7 多部分的MIME消息
11.8 把原始文本加入回复邮件
11.9 邮件转发
11.10 发送附件
11.11 发送HTML
11.12 小结
11.13 在线参考文献
第11部分 EJB体系结构
第12章 EJB体系结构
12.1 引言
12.2 EJB服务器的组成元素
12.3 EJB组件的组成元素
12.3.1 本地接口和远程接口
12.3.2 在“坚果壳”(指容器)中开发和部署EJB~H.件的过程
12.3.3 EJB组件类和接口
12.4 从应用程序客户机访问EJB
12.5 参考文献
第13章 无状态会话EJB
13.1 引言
13.2 无状态会话EJB的生命周期
13.3 无状态会话EJB'的开发过程
13.4 业务逻辑接口
13.5 生命周期接口
13.6 组件类
13.6.1 SessionComem对象+
13.6.2 为什么组件类不“实现”业务或生命周期接口
13.7 部署描述符文件
13.7.1 ejb-jar.xml文件
13.7.2 JBoss中的扣oss.xml文件
13.8 部署EJB组件
13.9 从Java应用程序客户机访问EJB
第14章 实体EJB:如何实现容器管理的实体EJB
14.1 引言
14.2 实体EJB生命周期
14.3 开发实体EJB的过程
14.4 业务逻辑接口
14.5 生命周期接口
14.5.1 Creator方法
14.5.2 find方法
14:5.3 Home方法
14.5.4 Select方法
14.6主键和主键类
14.7 组件类
14.8 部署描述符文件
14.8.1 ejb-jar.xml文件
14.8.2 JBossjboss.xml文件
14.8.3 JBoss jbosscmp-jdbc.xml文件
14.9 EJB查询语言
14.9.1 查询语言语句
14.9.2 <query>部署描述符
14.10 从Java应用程序客户机中访问EJB
14.11 容器管理关联
14.11.1 在组件类中声明容器管理关联
14.11.2 关联部署描述符
14.11.3 Jboss jbosscmp-jbc.xml文件
14.12 参考文献
第15章 集成EJB
15.1 引言
15.2 BOokStoreEJB间的交互
15.3 环境命名上下文(ENC)
15.4 集成EJB时需要考虑的一些设计问题
15.4.1 作为界面的会话EJB
15.4.2 在EJB中使用JNDI
15.4.3 不用实体EJB的时候
15.4.4 组件类和业务逻辑接口一致性的编译期检查
15.4.5 通过使用bulkaccessor/updator方法提高性能
15.5 CartEJB程序清单
15.6 计时器服务’
第16章 消息驱动的EJB
16.1 引言
16.2 消息驱动EJB的生命周期
16.3 组件类
16.4 部署描述符文件
16.4.1 ejb-iar.xml文件
16.4.2 ejb-jar.xml文件(EJB 2.1)
16.4.3 JBoss的jboss.xml文件
16.4.4 JBOss的JBoss-destinations-service.xml文件
16.4.5 连接到JMS主题的DebugMonitor
16.5 从其他的EJB访问MDB
第III部分 ServLets和JSP
第17章 JavaWeb应用
17.1 引言
17.2 什么是Servlet
17.3 Web应用
17.4 Web应用的结构
17.5 Servlet的工作原理
17.6 为什么使用servlet
17.7 ServletAPI的结构
17.8 开发和部署Web应用的步骤
17.9 启动Tomcat'
17.10 第二个serlvet示例
17.11 选择dOGet还是dOPost
17.12 Tomcat-
17.13 小结
17.14 在线参考文献
17.15 参考文献
第18章 会话管理和生命周期监控
18.1 引言
18.2 会话管理
18.3 会话跟踪
18.3.1 URL重写
18.3.2 隐藏字段
18.3.3 安全套接字层会话
18.3.4 COOkies
18.3.5 选择会话跟踪的方法
18.4 会话示例
18.5 更多的会话细节
18.6 会话状态
18.7 会话生命周期监控
18.8 servlet上下文
18.9 ServletContext示例
18.10 servlet生命周期事件
18.11 参考文献
第19章 JSP
19.1 引言
19.2 什么是JSP
19.3 简单的JSP
19.4 JSP的组件
19.4.1 指令
19.4.2 动作
19.4.3 隐式对象
19.4.4 JSP脚本
19.5 使JSP具有交互性
19.6 为什么使用JSP
19.7 JSP的问题
第20章 JSP标记和隐式对象
20.1 引言
20.2 JSP标记
20.2.1 JSP指令
20.2.2 脚本元素
20.2.3 动作
20.3 隐式对象
20.4 作用域
第21章 JSP标记库
21.1 引言
21.1 为什么使用标记库
21.3 关键概念
21.4 创建定制标记
21.5 Tag接口
21.6 创建标记库
21.6.1 实现标记处理程序类
21.6.2 定义标记库描述符
21.6.3 映射标记库
21.6.4导入标记库
21.6.5 运行Web应用
21.7 为标记添加特性
21.8 包含正文内容
21.9 开发标记库的原则
21.10 引入脚本变量
21.11 嵌套标记
21.12 标记验证
21.13 处理标记异常
21.14 JSTL
21.15 小结
21.16 在线参考文献
第22章 请求调度
22.1 引言
22.2 ServletChaining
22.3 请求调度
22.4 获取RequestDispatcher
22.4.1 转发请求
22.4.2 转发的示例
22.4.3 通过请求调度实现包含
第23章 过滤
23.1 引言
23.2 什么是过滤器
23.3 过滤器能做些什么
23.4 过滤器API
23.5 实现一个简单的过滤器
23.6 日志过滤器示例
23.7 包装请求和响应对象
23.8 过滤XML来生成HTML
第24章 Web应用程序安全化
24.1 引言
24.2 传统的方法
24.2.1 使用Web服务器
24.2.2 DIY
24.3 容器管理的安全性
24.3.1 定义用户
24.3.2 配置对Web资源的访问
24.3.3 身份验证的4种类型
24.4 程序化的安全性
24.5 配置JSP文件
24.5.1 启用或禁用EL评估
24.5.2 启用或禁用脚本
24.5.3 页面编码的声明
24.5.4 定义隐式包含
24.6 小结
24.7 在线参考文献
第25章 部署配置
25.1 引言
25.2 上下文初始化
25.3 servlet初始化
25.4 servlet加载
25.5 会话配置
25.6 欢迎页面
25.7 错误页面
25.8 MIME映射
25.9 分布式应用程序
25.10 J2EEl.3中的部署描述符
25.11 在J2SEl.4中部署J2EE应用程序
第26章 从SorvloUJSP中访问EJB
26.1 引言
26.2 EJB的客户端访问
26.3 从Web应用程序访问EJB
26.3.1 Web归档
26.3.2企业级归档
26.4 缓存EJB引用
26.5 示例
26.6 小结
第1V部分 其他技术
第27章 部署要点:事务
27.1 引言
27.2 事务的概念
27.3 EJB服务器支持的事务类型
27.4 容器管理的事务
27.4.1 Required特性
27.4.2 NotSupported特性
27.4.3 Supports特性
27.4.4 RequiresNew特性
27.4.5 Mandatory特性
27.4.6 Never特性
27.4.7 事务部署描述符
27.5 Bean管理的事务
27.5.1 User-Transaction接口
27.5.2 UserTransaction对象的获取和使用
27.6 事务隔离等级
27.6.1 锁模式
27.6.2 指定隔离等级
27.7 事务及异常事件
27.8 参考文献
第28章 部署要点:安全性
28.1 引言
28.2 安全概念和体系结构
28.2.1 身份验证
28.2.2 访问控制(授权)
28.3 EJB容器管理的安全性
28.3.1 声明的安全性
28.3.2 程序化安全性
28.3.3 利益相关者的责任
28.4 Java身份验证和授权服务(JAAS)的使用实例
28.5 参考文献
第29章 Bean管理的持久性
29.1 引言
29.2 再谈实体EJB生命周期
29.3 BooklternEJB:BMP版
29.4 部署描述符文件
29.5 从客户端访问BooklternBMP实体
第30章 有状态会话EJB
30.1 引言
30.2 有状态会话EJB的生命周期
30.3 实现类中可容许的实例变量的规则
30.4 有状态会话EJB的开发过程
30.4.1 PurchaseEJB的业务逻辑接口
30.4.2 PurchaseEJB的生命周期接口
30.4.3 PurchaseEJB组件类
30.5 使用SessionSynchronization接口的事务同步化
30.6 部署描述符文件
第31章 J2EE连接器体系结构
31.1 引言
31.2 体系结构概述
31.3 连接服务
31.4 事务服务
31.5 安全服务
31.6 通用客户端接口(CCl)
31.7 部署资源适配器
31.8 参考文献
第32章 从Java到SVG
32.1 引言
32.2 SVG的概念
32.2.1 SVG的优点
32.2.2 SVG的缺点
32.3.3 获得SVG查看器
32.2.4 SVG的形式
32.3 使用Java创建SVG
32.3.1 使用DOMAPI
32.3.2 将XML转换成SVG
32.4 Batik的使用
32.4.1 SVG查看器
32.4.2 SVG光栅器
32.4.3 SVG生成器:从Java图形生成SVG内容
32.4.4 SwinaDraw程序
32.5 Sewlet和JSP
32.6 小结
32.7 在线参考文献
32.8 附录:SVGCreatOr.java
第33章 Web服务
33.1 引言:
33.2 Web服务的概念
32.2.1 SOAP的概念
33.2.2 带附件的SOAP
33.2.3 WSDL的概念
33.2.4 UDDI的概念
33.3 Axis的概念
33.4 基于AxisWeb月艮务的客户端
33.5 创建简单的Web服务驱动程序
33.5.1 为Web服务设置Tomcat'
33.5.2 创建简单的Web服务
33.5.3 配置Web服务
33.5.4 WSDL的作用
33.6 JavaWeb服务开发包
33.7 Java的带附件SOAPAPI
33.8 Web服务和J2EE
33.9 小结
33.10 参考文献
第V部分 设计
第34章 J2EE模式
34.1 引言
34.2 模式背后的动机
34.3 设计模式
34.3.1 什么是设计模式
34.3.2 设计模式不是什么
34.3.3 体系结构模式
34.3.4 归类模式
34.3.5 何时使用模式
34.3.6 设计模式的优点及限制
34.4 什么是J2EE设计模式
34.5 J2EE模式目录
34.6 FrontController模式
34.6.1 上下文
34.6.2 问题
34.6.3 强制性
34.6.4 解决方案
34.6.5 策略
34.6.6 结果
34.6.7 相关模式
34.7 请求-事件—调度程序模式
34.7.1 上下文
34.7.2 问题
34.7.3 强制性
34.7.4 解决方案
34.7.5 策略
34.7.6 结果
34.7.7 相关模式
34.8 基于J2EE的模型—视图—控制器
34.8.1 上下文
34.8.2 问题
34.8.3 强制性
34.8.4 解决方案
34.8.5 策略
34.8.6 结果
34.8.7 相关模式
34.9 小结
34.10 进阶阅读材料
34.11 参考文献
第35章 故障跟踪J2EE案例研究
35.1 引言
35.2 故障跟踪应用
35.2.1 变更请求
35.2.2 问题报告
35.3 使用故障跟踪系统
35.4 故障跟踪系统的设计
35.5 小结和结论