SUN公司的企业版Java 2平台,定义了开发多层企业级应用的标准,而《J2EE宝典》这本书全面、详细地介绍了该平台所有令人兴奋的开发工具。它是最先面世的全面介绍J2EE 1.3版本的书籍之一。本书包含了所有J2EE的基本技术,包括企业级JavaBean,JSP,Servlet,JNDI,JTA,CORBA和JDBC,同时还专门介绍了Java如何同XML以及其他技术协同工作,以及创建企业级系统所需要注意的问题。开发者完全可以通过使用这本书开发和部署一个全面的、稳定的、安全的、高效的企业级应用系统。\r\n
\r\n
前言 \r\n\r\n 第1部分 快速入门 \r\n\r\n 第1章 定义企业级应用 \r\n\r\n 1. 1 介绍企业级应用 \r\n\r\n 1. 1. 1 网站不仅要漂亮 \r\n\r\n 1. 1. 2 企业级应用的结构 \r\n\r\n 1. 1. 3 企业级应用组件 \r\n\r\n 1. 2 J2EE介绍 \r\n\r\n 1. 2. 1 企业级Java简史 \r\n\r\n 1. 2. 2 了解J2EE \r\n\r\n 1. 2. 3 并不仅仅用于企业级应用 \r\n\r\n 1. 2. 4 决定使用哪个部分 \r\n\r\n 1. 3 准备工作 \r\n\r\n 1. 3. 1 下载并安装J2EE \r\n\r\n 1. 3. 2 决定项目类型 \r\n\r\n 1. 4 小结 \r\n\r\n 第2章 介绍企业级应用 \r\n\r\n 2. 1 公司对客户应用 \r\n\r\n 2. 1. 1 例1:电子商务网站 \r\n\r\n 2. 1. 2 例2:机票预订系统 \r\n\r\n 2. 2 企业对企业应用 \r\n\r\n 2. 2. 1 存货系统 \r\n\r\n 2. 2. 2 电子支付 \r\n\r\n 2. 3 后台应用 \r\n\r\n 2. 3. 1 通信应用 \r\n\r\n 2. 3. 2 月度电子新闻 \r\n\r\n 2. 4 小结 \r\n\r\n 第2部分 内容发布 \r\n\r\n 第3章 使用Servlet创建动态内容 \r\n\r\n 3. 1 什么是Servlet \r\n\r\n 3. 2 创建基本的HttpServlet \r\n\r\n 3. 2. 1 使用Servlet创建静态页面 \r\n\r\n 3. 2. 2 在哪里运行Servlet \r\n\r\n 3. 2. 3 增加动态元素 \r\n\r\n 3. 3 介绍Servlet API \r\n\r\n 3. 3. 1 Servlet家族 \r\n\r\n 3. 3. 2 ServletRequest家族 \r\n\r\n 3. 3. 3 ServletResponse家族 \r\n\r\n 3. 4 保存和共享信息 \r\n\r\n 3. 4. 1 会话跟踪 \r\n\r\n 3. 4. 2 使用ServletContext \r\n\r\n 3. 5 使用filter(), forward(), include()方法增加新功能 \r\n\r\n 3. 5. 1 在Servlet中使用过滤器 \r\n\r\n 3. 5. 2 使用forward()在servlet间转移控制 \r\n\r\n 3. 5. 3 在不同资源间拼接内容 \r\n\r\n 3. 6 小结 \r\n\r\n 第4章 使用JSP \r\n\r\n 4. 1 创建基本的JSP页面 \r\n\r\n 4. 1. 1 创建. 保存和访问JSP页面 \r\n\r\n 4. 1. 2 JSP的生命周期 \r\n\r\n 4. 1. 3 在JSP中增加动态元素 \r\n\r\n 4. 2 在JSP中增加Java特征 \r\n\r\n 4. 2. 1 在JSP中嵌入Java代码 \r\n\r\n 4. 2. 2 使用JSP指令 \r\n\r\n 4. 2. 3 使用动作传输控制 \r\n\r\n 4. 2. 4 访问内部Java对象 \r\n\r\n 4. 3 添力JavaBean \r\n\r\n 4. 3. 1 Bean属性协定 \r\n\r\n 4. 3. 2 JSP Bean标记 \r\n\r\n 4. 4 使用自定义标记 \r\n\r\n 4. 4. 1 返回当前时间的类 \r\n\r\n 4. 4. 2 标记库描述器 \r\n\r\n 4. 4. 3 在JSP页面中使用自定义标记 \r\n\r\n 4. 4. 4 在标记中增加标记 \r\n\r\n 4. 4. 5 自定义标记的属性 \r\n\r\n 4. 5 同时使用JSP和Servlet \r\n\r\n 4. 6 小结 \r\n\r\n 第5章 使用JavaMail发送和接收电子邮件 \r\n\r\n 5. 1 什么是电子邮件 \r\n\r\n 5. 1. 1 电子邮件的一天 \r\n\r\n 5. 1. 2 邮件的格式 \r\n\r\n 5. 1. 3 服务器的类型 \r\n\r\n 5. 2 介绍JavaMail \r\n\r\n 5. 2. 1 JavaMail包 \r\n\r\n 5. 2. 2 JavaMail需求 \r\n\r\n 5. 2. 3 下载JavaMail \r\n\r\n 5. 2. 4 JavaMail术语 \r\n\r\n 5. 3 发送电子邮件 \r\n\r\n 5. 3. 1 设置电子邮件 \r\n\r\n 5. 3. 2 构造邮件 \r\n\r\n 5. 3. 3 发送邮件 \r\n\r\n 5. 3. 4 发送到新闻组 \r\n\r\n 5. 3. 5 带附件的邮件 \r\n\r\n 5. 4 接收电子邮件 \r\n\r\n 5. 4. 1 准备接收邮件 \r\n\r\n 5. 4. 2 管理收到的邮件 \r\n\r\n 5. 5 建立电子邮件过滤器 \r\n\r\n 5. 5. 1 构造一个查询 \r\n\r\n 5. 5. 2 管理邮件 \r\n\r\n 5. 6 小结 \r\n\r\n 第3部分 数据库搜索 \r\n\r\n 第6章 操作关系型数据库 \r\n\r\n 6. 1 什么是关系型数据库 \r\n\r\n 6. 1. 1 关系型数据库中的数据是如何组织的 \r\n\r\n 6. 1. 2 协商通信的语言 \r\n\r\n 6. 1. 3 查找可用数据库 \r\n\r\n 6. 2 在RDBMS中定义信息 \r\n\r\n 6. 2. 1 SQL介绍 \r\n\r\n 6. 2. 2 数据库设计 \r\n\r\n 6. 2. 3 使用数据类型表示数据 \r\n\r\n 6. 2. 4 表管理 \r\n\r\n 6. 2. 5 提高数据库性能 \r\n\r\n 6. 3 数据管理 \r\n\r\n 6. 3. 1 增加新的记录 \r\n\r\n 6. 3. 2 修改现存的记录 \r\n\r\n 6. 3. 3 删除行 \r\n\r\n 6. 4 信息查询 \r\n\r\n 6. 4. 1 创建简单查询 \r\n\r\n 6. 4. 2 实现复杂查询 \r\n\r\n 6. 5 小结 \r\n\r\n 第7章 使用JDBC操作关系型数据库 \r\n\r\n 7. 1 Java对数据库的抽象 \r\n\r\n 7. 1. 1 JDBC简史 \r\n\r\n 7. 1. 2 隐藏实现 \r\n\r\n 7. 2 应用JDBC \r\n\r\n 7. 2. 1 查找JDBC类 \r\n\r\n 7. 2. 2 介绍JDBC驱动程序 \r\n\r\n 7. 2. 3 查找适合自己数据库的驱动程序 \r\n\r\n 7. 3 连接数据库 \r\n\r\n 7. 3. 1 表示单一数据库连接 \r\n\r\n 7. 3. 2 使用核心类建立连接 \r\n\r\n 7. 3. 3 使用企业级类建立连接 \r\n\r\n 7. 4 数据库数据结构 \r\n\r\n 7. 4. 1 将SQL数据类型转换成Java数据类型 \r\n\r\n 7. 4. 2 表示查询返回的信息 \r\n\r\n 7. 4. 3 利用获得的结果 \r\n\r\n 7. 4. 4 管理自定义的数据类型 \r\n\r\n 7. 5 操作数据库 \r\n\r\n 7. 5. 1 在Java中描述一个SQL语句 \r\n\r\n 7. 5. 2 查询数据库 \r\n\r\n 7. 5. 3 修改数据库 \r\n\r\n 7. 6 使用企业级特征 \r\n\r\n 7. 6. 1 动作批处理 \r\n\r\n 7. 6. 2 为快速访问缓冲语句 \r\n\r\n 7. 6. 3 事务管理 \r\n\r\n 7. 7 小结 \r\n\r\n 第8章 使用目录服务和LDAP \r\n\r\n 8. 1 介绍目录服务 \r\n\r\n 8. 1. 1 什么是目录服务 \r\n\r\n 8. 1. 2 何时使用目录服务 \r\n\r\n 8. 2 介绍LDAP \r\n\r\n 8. 2. 1 LDAP历史简介 \r\n\r\n 8. 2. 2 LDAP数据库如何构造数据 \r\n\r\n 8. 2. 3 标准语言 \r\n\r\n 8. 2. 4 使用LDAP的软件 \r\n\r\n 8. 3 在LDAP数据库中定义信息 \r\n\r\n 8. 3. 1 设计新的数据库 \r\n\r\n 8. 3. 2 标准的LDAP介绍 \r\n\r\n 8. 4 数据库交互 \r\n\r\n 8. 4. 1 连接数据库 \r\n\r\n 8. 4. 2 查询LDAP数据库 \r\n\r\n 8. 4. 3 修改LDAP数据库中的值 \r\n\r\n 8. 5 自定义数据结构 \r\n\r\n 8. 5. 1 数据层次 \r\n\r\n 8. 5. 2 复制 \r\n\r\n 8. 5. 3 模式 \r\n\r\n 8. 6 小结 \r\n\r\n 第9章 使用JNDI访问目录服务 \r\n\r\n 9. 1 Java对目录服务的抽象 \r\n\r\n 9. 1. 1 JNDI简史 \r\n\r\n 9. 1. 2 实现隐藏 \r\n\r\n 9. 1. 3 包和类 \r\n\r\n 9. 2 连接一个服务 \r\n\r\n 9. 2. 1 连接内容 \r\n\r\n 9. 2. 2 连接命名服务 \r\n\r\n 9. 2. 3 连接目录服务 \r\n\r\n 9. 3 操作数据库 \r\n\r\n 9. 3. 1 一般查询 \r\n\r\n 9. 3. 2 修改现存数据 \r\n\r\n 9. 3. 3 改变目录服务结构 \r\n\r\n 9. 4 小结 \r\n\r\n 第4部分 使用XML在系统间通信 \r\n\r\n 第10章 XML基础 \r\n\r\n 10. 1 什么是XML \r\n\r\n 10. 1. 1 创建XML \r\n\r\n 10. 1. 2 显示XML \r\n\r\n 10. 1. 3 相同文件的不同视角 \r\n\r\n 10. 2 XML文档和描述 \r\n\r\n 10. 2. 1 Word中的简历 \r\n\r\n 10. 2. 2 HTML形式的简历 \r\n\r\n 10. 2. 3 XML形式的简历 \r\n\r\n 10. 3 用于配置的XML \r\n\r\n 10. 4 使用XML存储和共享数据 \r\n\r\n 10. 4. 1 使用ObjectOutputStream进行串行化 \r\n\r\n 10. 4. 2 使用XML保存状态 \r\n\r\n 10. 5 XML语法 \r\n\r\n 10. 5. 1 元素 \r\n\r\n 10. 5. 2 名字空间 \r\n\r\n 10. 5. 3 属性 \r\n\r\n 10. 6 小结 \r\n\r\n 第11章 使用DTD和模式描述文档 \r\n\r\n 11. 1 生成有效的XML文档 \r\n\r\n 11. 1. 1 阅读DTD \r\n\r\n 11. 1. 2 文档和DTD的连接 \r\n\r\n 11. 2 编写文档类型定义 \r\n\r\n 11. 2. 1 元素声明 \r\n\r\n 11. 2. 2 实体声明 \r\n\r\n 11. 2. 3 属性声明 \r\n\r\n 11. 3 XML有效性检查 \r\n\r\n 11. 4 使用XML模式描述文档 \r\n\r\n 11. 4. 1 模式的shell \r\n\r\n 11. 4. 2 元素和属性 \r\n\r\n 11. 4. 3 简单类型 \r\n\r\n 11. 4. 4 复杂类型 \r\n\r\n 11. 5 小结 \r\n\r\n 第12章 使用JAXP解析文档 \r\n\r\n 12. 1 JAXP简介 \r\n\r\n 12. 1. 1 JAX包 \r\n\r\n 12. 1. 2 安装JAXP和例子 \r\n\r\n 12. 1. 3 安装测试 \r\n\r\n 12. 1. 4 剧本的内容 \r\n\r\n 12. 1. 5 格式良好文档的检查 \r\n\r\n 12. 1. 6 有效性检查 \r\n\r\n 12. 2 5 SAX研究 \r\n\r\n 12. 2. 1 使用SAX调用 \r\n\r\n 12. 2. 2 使用DefaultHandler处理事件 \r\n\r\n 12. 3 使用DOM \r\n\r\n 12. 3. 1 创建一个文档 \r\n\r\n 12. 3. 2 遍历文档 \r\n\r\n 12. 3. 3 创建XML \r\n\r\n 12. 4 小结 \r\n\r\n 第13章 使用JDOM同XML文档交互 \r\n\r\n 13. 1 使用JDOM \r\n\r\n 13. 1. 1 为什么使用JDOM \r\n\r\n 13. 1. 2 安装JDOM并测试安装 \r\n\r\n 13. 1. 3 再访DOM例子 \r\n\r\n 13. 2 JDOM API \r\n\r\n 13. 2. 1 创建文档 \r\n\r\n 13. 2. 2 处理文档 \r\n\r\n 13. 2. 3 输出文档 \r\n\r\n 13. 3 小结 \r\n\r\n 第14章 转换和绑定XML文档 \r\n\r\n 14. 1 显示XML文档 \r\n\r\n 14. 1. 1 使用级联样式表 \r\n\r\n 14. 1. 2 使用XSLT显示文件 \r\n\r\n 14. 2 转换XML文档 \r\n\r\n 14. 2. 1 莎士比亚剧本的另一个DTD \r\n\r\n 14. 2. 2 使用样式表进行转换 \r\n\r\n 14. 3 用JAXB实现绑定 \r\n\r\n 14. 3. 1 安装和运行JAXB \r\n\r\n 14. 3. 2 用户素材例子介绍 \r\n\r\n 14. 3. 3 改善绑定模式 \r\n\r\n 14. 3. 4 UserStory.java文件 \r\n\r\n 14. 4 使用JAXB绑定 \r\n\r\n 14. 4. 1 反列举:从XML文档得到Java对象 \r\n\r\n 14. 4. 2 向内容树添加内容 \r\n\r\n 14. 4. 3 对象的有效性检查 \r\n\r\n 14. 4. 4 列举:由Java对象到XML文档 \r\n\r\n 14. 4. 5 扩展由模式编译器产生的类 \r\n\r\n 14. 5 小结 \r\n\r\n 第5部分 系统抽象 \r\n\r\n 第15章 探索RMI机制 \r\n\r\n 15. 1 基本的RMI应用组件 \r\n\r\n 15. 1. 1 远程接口 \r\n\r\n 15. 1. 2 在服务器上实现远程接口 \r\n\r\n 15. 1. 3 启动服务 \r\n\r\n 15. 1. 4 客户端调整 \r\n\r\n 15. 1. 5 编译代码 \r\n\r\n 15. 1. 6 运行RMI应用程序 \r\n\r\n 15. 2 运行分布式版本 \r\n\r\n 15. 2. 1 将文件分到两个目录 \r\n\r\n 15. 2. 2 创建和调用安全策略 \r\n\r\n 15. 2. 3 设置代码库 \r\n\r\n 15. 2. 4 从一台机器中的两个目录运行应用程序 \r\n\r\n 15. 2. 5 运行http类服务器 \r\n\r\n 15. 2. 6 在两个不同主机上运行程序 \r\n\r\n 15. 3 使用非远程对象 \r\n\r\n 15. 3. 1 发送Person对象取代String对象 \r\n\r\n 15. 3. 2 对象串行化 \r\n\r\n 15. 3. 3 性能问题 \r\n\r\n 15. 4 激活服务 \r\n\r\n 15. 4. 1 改变远程接口的实现 \r\n\r\n 15. 4. 2 修改设置类 \r\n\r\n 15. 4. 3 运行范例 \r\n\r\n 15. 5 小结 \r\n\r\n 第16章 企业级JavaBean \r\n\r\n 16. 1 这种新级别抽象的介绍 \r\n\r\n 16. 1. 1 什么是EJB \r\n\r\n 16. 1. 2 寻找开发环境 \r\n\r\n 16. 2 探索EJB服务的组件 \r\n\r\n 16. 2. 1 EJB应用术语 \r\n\r\n 16. 2. 2 bean的类型 \r\n\r\n 16. 2. 3 应用范例 \r\n\r\n 16. 2. 4 介绍EJB类和接口 \r\n\r\n 16. 3 在服务器端使用企业级bean \r\n\r\n 16. 3. 1 会话bean \r\n\r\n 16. 3. 2 实体bean \r\n\r\n 16. 3. 3 本地接口 \r\n\r\n 16. 3. 4 部署bean到EJB服务器 \r\n\r\n 16. 4 在客户端使用企业级Bean \r\n\r\n 16. 4. 1 查询并使用bean \r\n\r\n 16. 4. 2 bean的应用 \r\n\r\n 16. 5 小结 \r\n\r\n 第17章 高级EJB技术 \r\n\r\n 17. 1 扩展企业级JavaBean \r\n\r\n 17. 1. 1 本地bean提供更好性能 \r\n\r\n 17. 1. 2 方法和数据的距离 \r\n\r\n 17. 1. 3 bean间通信 \r\n\r\n 17. 1. 4 在事务中组合bean \r\n\r\n 17. 2 使用消息驱动bean \r\n\r\n 17. 2. 1 消息驱动Bean在应用中的角色 \r\n\r\n 17. 2. 2 编写消息驱动bean \r\n\r\n 17. 3 理解容器管理持续性 \r\n\r\n 17. 3. 1 介绍CMP概念 \r\n\r\n 17. 3. 2 编写CMP实体bean \r\n\r\n 17. 3. 3 容器管理的关系 \r\n\r\n 17. 3. 4 EBJ QL \r\n\r\n 17. 4 管理bean的安全问题 \r\n\r\n 17. 4. 1 标识用户 \r\n\r\n 17. 4. 2 配置用户访问能力 \r\n\r\n 17. 5 处理bean的配置问题 \r\n\r\n 17. 5. 1 已有的配置技术概述 \r\n\r\n 17. 5. 2 提供系统未知的配置属性 \r\n\r\n 17. 6 代码的使用者 \r\n\r\n 17. 6. 1 EJB开发角色 \r\n\r\n 17. 6. 2 非开发角色 \r\n\r\n 17. 7 小结 \r\n\r\n 第18章 介绍CORBA \r\n\r\n 18. 1 使用CORBA的需求 \r\n\r\n 18. 2 CORBA是什么 \r\n\r\n 18. 3 对象管理体系结构 \r\n\r\n 18. 3. 1 对象服务 \r\n\r\n 18. 3. 2 通用工具 \r\n\r\n 18. 3. 3 域接口 \r\n\r\n 18. 3. 4 应用程序接口 \r\n\r\n 18. 3. 5 对象请求代理 \r\n\r\n 18. 3. 6 idltojava编译器 \r\n\r\n 18. 4 范例:简单的利息计算 \r\n\r\n 18. 4. 1 第1步:编写IDL接口 \r\n\r\n 18. 4. 2 第2步:编译IDL文件 \r\n\r\n 18. 4. 3 第3步:编写InterestServer \r\n\r\n 18. 4. 4 第4步:编写客户端代码 \r\n\r\n 18. 4. 5 第5步:编译并运行应用程序 \r\n\r\n 18. 5 CORBA服务 \r\n\r\n 18. 6 CORBA和RMI的区别 \r\n\r\n 18. 7 小结 \r\n\r\n 第19章 企业级CORBA应用 \r\n\r\n 19. 1 建立CORBA对象 \r\n\r\n 19. 2 开发CORBA服务器 \r\n\r\n 19. 3 开发CORBA客户端 \r\n\r\n 19. 3. 1 从客户端应用程序访问CORBA对象 \r\n\r\n 19. 3. 2 编译和运行应用程序 \r\n\r\n 19. 3. 3 从Servlet访问CORBA对象 \r\n\r\n 19. 3. 4 编译和运行Servlet \r\n\r\n 19. 4 小结 \r\n\r\n 第20章 使用Jini服务 \r\n\r\n 20. 1 快速浏览Jini \r\n\r\n 20. 1. 1 为什么需要Jini \r\n\r\n 20. 1. 2 Jini资源 \r\n\r\n 20. 2 介绍范例 \r\n\r\n 20. 2. 1 Calculator(计算器)接口 \r\n\r\n 20. 2. 2 Adder(加法器类)和Subtractor(减法器类) \r\n\r\n 20. 2. 3 Client(客户端类) \r\n\r\n 20. 3 启动并且运行Jini \r\n\r\n 20. 3. 1 安装Jini \r\n\r\n 20. 3. 2 GUI工具 \r\n\r\n 20. 4 简单代理Jini计算器服务 \r\n\r\n 20. 4. 1 计算器(Calculator)接口 \r\n\r\n 20. 4. 2 加法和减法服务代理 \r\n\r\n 20. 4. 3 创建服务 \r\n\r\n 20. 4. 4 Jini计算器的客户端 \r\n\r\n 20. 4. 5 编译应用程序 \r\n\r\n 20. 4. 6 运行分布式应用程序 \r\n\r\n 20. 5 在Jini计算器中使用属性 \r\n\r\n 20. 5. 1 设置服务厨性 \r\n\r\n 20. 5. 2 在客户端创建过滤器 \r\n\r\n 20. 5. 3 使用ServiceItemFilter对象 \r\n\r\n 20. 5. 4 运行范例 \r\n\r\n 20. 6 缓存服务 \r\n\r\n 20. 6. 1 一个简单的查询缓存范例 \r\n\r\n 20. 6. 2 使用ServiceDiscoveryListener \r\n\r\n 20. 7 使用RMI桩作为瘦代理 \r\n\r\n 20. 7. 1 RMI版本的代理 \r\n\r\n 20. 7. 2 RMIAddingService \r\n\r\n 20. 8 小结 \r\n\r\n 第6部分 构建大型系统 \r\n\r\n 第21章 实现Web服务 \r\n\r\n 21. 1 HelloWorld服务 \r\n\r\n 21. 1. 1 配置Axis \r\n\r\n 21. 1. 2 HelloWorld Web服务的客户端 \r\n\r\n 21. 1. 3 一个本地的问候服务 \r\n\r\n 21. 1. 4 使用tcpmon了解幕后细节 \r\n\r\n 21. 2 理解简单对象访问协议 \r\n\r\n 21. 2. 1 SOAP消息的结构 \r\n\r\n 21. 2. 2 SOAP与HTTP \r\n\r\n 21. 3 部署Web服务 \r\n\r\n 21. 3. 1 为例子程序准备环境 \r\n\r\n 21. 3. 2 使用部署描述器 \r\n\r\n 21. 3. 3 运行已部署的服务 \r\n\r\n 21. 4 使用UDDI查找Web服务 \r\n\r\n 21. 4. 1 UDDI资源 \r\n\r\n 21. 4. 2 通过UDDI探索Web服务 \r\n\r\n 21. 5 创建并使用WSDL文件 \r\n\r\n 21. 5. 1 从HelloService生成WSDL文件 \r\n\r\n 21. 5. 2 根据WSDL创建客户端 \r\n\r\n 21. 5. 3 使用WSDL文件创建服务 \r\n\r\n 21. 6 发送Java对象给你的Web服务 \r\n\r\n 21. 6. 1 JavaBean版HelloService的类 \r\n\r\n 21. 6. 2 部署并运行应用程序 \r\n\r\n 21. 6. 3 发送JavaBean \r\n\r\n 21. 7 小结 \r\n\r\n 第22章 Java消息服务 \r\n\r\n 22. 1 位于中间的消息 \r\n\r\n 22. 2 JMS出现之前的情况 \r\n\r\n 22. 3 MOM遭遇JMS \r\n\r\n 22. 3. 1 提供应用程序独立性的JMS \r\n\r\n 22. 3. 2 纯JMS供应商 \r\n\r\n 22. 4 消息系统的种类 \r\n\r\n 22. 4. 1 点到点 \r\n\r\n 22. 4. 2 发布/订阅 \r\n\r\n 22. 5 JMS概览 \r\n\r\n 22. 5. 1 消息术语 \r\n\r\n 22. 5. 2 接口概览 \r\n\r\n 22. 5. 3 操作流程概览 \r\n\r\n 22. 6 JMS系统的建立 \r\n\r\n 22. 7 被管理对象 \r\n\r\n 22. 8 发送与接收消息 \r\n\r\n 22. 8. 1 点到点——发送消息 \r\n\r\n 22. 8. 2 点到点——接收消息 \r\n\r\n 22. 8. 3 发布/订阅——发送消息 \r\n\r\n 22. 8. 4 发布/订阅——接收消息 \r\n\r\n 22. 8. 5 消息监听器 \r\n\r\n 22. 8. 6 连接与会话 \r\n\r\n 22. 9 消息的细节 \r\n\r\n 22. 9. 1 消息标头 \r\n\r\n 22. 9. 2 消息属性 \r\n\r\n 22. 9. 3 消息主体 \r\n\r\n 22. 10 使用JMS开发应用程序 \r\n\r\n 22. 10. 1 连接与会话 \r\n\r\n 22. 10. 2 资源管理 \r\n\r\n 22. 10. 3 持续性及持续订阅 \r\n\r\n 22. 10. 4 JMS和线程 \r\n\r\n 22. 10. 5 JM5事务 \r\n\r\n 22. 11 一个范例 \r\n\r\n 22. 11. 1 文本消息的简单收发 \r\n\r\n 22. 11. 2 增添属性 \r\n\r\n 22. 11. 3 增加消息选择 \r\n\r\n 22. 12 JMS和J2EE \r\n\r\n 22. 12. 1 连接到已有系统 \r\n\r\n 22. 12. 2 消息驱动的bean \r\n\r\n 22. 12. 3 分布式应用程序 \r\n\r\n 22. 13 小结 \r\n\r\n 第23章 使用JTA/JTS管理事务 \r\n\r\n 23. 1 什么是事务 \r\n\r\n 23. 1. 1 事务的特征 \r\n\r\n 23. 1. 2 事务处理术语 \r\n\r\n 23. 1. 3 事务处理组件 \r\n\r\n 23. 1. 4 分布式事务 \r\n\r\n 23. 1. 5 两阶段提交 \r\n\r\n 23. 1. 6 事务处理标准 \r\n\r\n 23. 2 Java事务服务 \r\n\r\n 23. 3 Java事务API \r\n\r\n 23. 3. 1 JTA接口与类 \r\n\r\n 23. 3. 2 UserTransaction接口 \r\n\r\n 23. 3. 3 Status接口 \r\n\r\n 23. 3. 4 Synchronization接口 \r\n\r\n 23. 4 如何使用JTA/JTS \r\n\r\n 23. 4. 1 容器管理的事务 \r\n\r\n 23. 4. 2 出错处理 \r\n\r\n 23. 4. 3 会话bean的重新初始化 \r\n\r\n 23. 4. 4 bean管理的事务 \r\n\r\n 23. 4. 5 事务超时 \r\n\r\n 23. 4. 6 事务隔离 \r\n\r\n 23. 5 ACME饰品公司——购物车演示 \r\n\r\n 23. 5. 1 创建数据库和表 \r\n\r\n 23. 5. 2 订单会话bean \r\n\r\n 23. 5. 3 库存会话bean \r\n\r\n 23. 5. 4 目录会话bean \r\n\r\n 23. 5. 5 购物车客户端应用程序 \r\n\r\n 23. 5. 6 打包与部署 \r\n\r\n 23. 5. 7 建立数据源 \r\n\r\n 23. 5. 8 运行购物车演示程序 \r\n\r\n 23. 6 小结 \r\n\r\n 第24章 系统体系结构问题 \r\n\r\n 24. 1 设计真实的系统 \r\n\r\n 24. 1. 1 理解客户 \r\n\r\n 24. 1. 2 善待工作伙伴 \r\n\r\n 24. 2 分割工作负载 \r\n\r\n 24. 2. 1 将工作分摊到不同的应用层 \r\n\r\n 24. 2. 2 当一台机器不够时 \r\n\r\n 24. 3 选择一种设计方法 \r\n\r\n 24. 3. 1 大规模系统技术的选择 \r\n\r\n 24. 3. 2 设计选择 \r\n\r\n 24. 4 实现安全性 \r\n\r\n 24. 4. 1 连接安全 \r\n\r\n 24. 4. 2 数据安全 \r\n\r\n 24. 4. 3 系统安全 \r\n\r\n 24. 4. 4 用户安全 \r\n\r\n 24. 5 小结 \r\n\r\n 第25章 J2EE设计模式 \r\n\r\n 25. 1 设计模式基础 \r\n\r\n 25. 1. 1 什么是设计模式 \r\n\r\n 25. 1. 2 核心Java库里的设计模式 \r\n\r\n 25. 2 企业级设计模式介绍 \r\n\r\n 25. 2. 1 企业级设计模式的角色 \r\n\r\n 25. 2. 2 J2EE标准企业级设计模式 \r\n\r\n 25. 3 小结 \r\n\r\n 附录A 安装J2EE参考实现 \r\n\r\n 附录B J2EE API版本要求 \r\n\r\n 附录C J2EE厂商和系统 \r\n
\r\n
我们非常高兴能够向广大读者推荐这本关于J2EE出色的专业指南. 应该说, 我们还没有看到过任何一本像本书一样全面. 深入介绍J2EE的书籍. 以往我们所看到的或者是从某个应用产品的角度去讨论J2EE技术, 或者仅局限于J2EE技术的某个部分.
本书的几名作者在Java技术上有着很深的造诣. 他们同时也参与了(Java 2宝典》一书的撰写工作. 应该说这些作者对于Java的过去. 现在和未来有着更为清醒的认识. 那么他们及时向读者推荐这样一本书, 从一个方面表明了J2EE技术的重要性.
本书全面. 细致地介绍了J2EE技术的各个方面. 在首先介绍了—些基础知识后, 马上进入到企业级编程的各个层次:包括数据表现. 业务逻辑实现和数据存储. 同时针对企业级应用环境又着重介绍了JNDI, JTA, CORBA, JINI, JMS等复杂技术. 为了配合应用级通讯协议向XML技术上发展的趋势, 本书又花了大量篇幅介绍了Java对XML的识别和转换技术. 在本书的最后, 作者强调了企业级系统的设计原则, 介绍了J2EE API的选择方法, 以及J2EE标准企业级设计模式. 可以看到本书的整体架构极为清楚, 从而为读者使用J2EE搭建自己的企业级系统提供了良好的开发参考.
另外书中提供了大量的例子进行演示, 这些例子的代码质量保证了读者在进行开发时的可参考性. 更重要的是本书还提供了很多相关技术网站的URL, 从而丰富了学习资料的来源.
参加本书翻译工作的有马琳. 杨旭. 郑谦. 涂宇澄. 曾波. 马良. 李喆. 何颖醛. 刘航. 杨涛. 付泓. 毕朋. 刘相峰. 尚红昕. 王勇. 韩旭. 殷昊. 盖江南. 林瑶. 赵刚. 李军. 顾群. 赵迎等. 限于水平, 错误和不妥之处在所难免, 敬请广大读者批评指正.
欢迎使用《J2EE宝典》. 这本书作为《Java 2宝典》的姊妹篇, 主要是面向希望更多地了解企业级应用的读者. 目前, 企业级编程是一个热门话题, 越来越多的公司认为他们需要一个在线的产品来替代他们现有的石头加水泥的版本. 这个在线的产品不仅仅是一堆网页, 还包括一个完整的电子目录和销售系统.
XML是企业级市场最大的推动者, 当公司为了某种需求开始协同工作以平滑供应链管理, 他们就开始建设第二代或第三代系统. 这些企业通过同他们的供应商和合作伙伴进行合作来实现这个目标. 实现这样的系统需要互操作性, 并且整个行业都需要围绕这个需求而推进. 需要增加新的供应商或合作伙伴吗?去看看XML DTD吧, 你很快就能够在自己的系统中增加新的功能.
本书中我们将参考许多大家所熟悉的商业站点, 并作为例子来说明大规模的商业应用是如何做到不仅集成他们自己的网站, 还将他们的合作伙伴和供应商集成到一个单一系统中. 通过向DELL订购计算机就可以跟踪生产和销售过程的每个环节. 一旦某个运输商出现了问题, 我们可以通过DELL网站去跟踪这个运输商关于这次销售的信息. DELL使用不止一个运输商, 但是给我们的感觉好像他们都一样.
本书的目的
本书的目的是向读者介绍所有的企业级Java API. 许多书籍可能涉及到J2EE规范的某些特定元素, 如流行的企业级Java Bean和XML. 但是这些主题定位的错误在于没有将其他界面作为一个整体进行介绍, 而这正是一个Java程序员感觉最需要的. 例如, 你知道在J2EE中用于处理电子邮件和新闻组的API吗?
作为一个程序员, 我喜欢了解所有可能的选择. 如果了解它们, 就可以在其上有更多的投入, 如果我不了解它们, 则可能会错过一些十分有用的信息, 而这些信息会使自己的生活更加轻松. 本书的目的是为了拓宽读者对这些API的视野, 而这些API对于创建企业级应用是大有裨益的. 本书的重点主要放在J2EE规范, 但是我们同样会介绍其他一些类库, 这些类库对我们的应用会很有帮助. 我们并不想对每个主题都做深入的介绍, 有些内容会由别的书籍讲述. 我们所做的事是充分. 全面地介绍每个主题, 通过编写简单的例子程序使读者获得更多的信息, 并在出现问题时能找到正确的答案. J2EE是一个庞大的规范, 如果我们对每个主题都进行深入的介绍, 那么这就可能需要用汽车来运输这一本书了. 毫无疑问你已经有满满一书架编程方面的书, 不再需要更多这样的书. 读者可以将这本书作为对J2EE各个主题的介绍, 并通过参考其他书籍以在特定的主题获得更为专业的知识.
本书的读者对象
本书的阅读对象是中级到高级程序员. 我们假设读者已经掌握了一些Java编程知识. 本书不会去介绍编程语言, 而是认为读者已经知道如何在其所使用的开发环境编译和调试Java程序.
如果你正在寻找一本入门级的Java参考书, 我们建议你阅读由Aaron Walsh, Justin Couch和Daniel H. Steinberg编写的“Java 2 Bible”(编者注:此书的中译本《Java 2宝典》已由电子工业出版社翻译出版).
对于中级程序员, 本书将向你介绍作为J2EE程序员可能使用到的所有技术. 也许你以前从没使用过J2EE, 这本书将告诉你如何起步以及如何提高这方面的技能.
对于高级程序员, 本书可以作为你向更为专业的编程领域扩展知识的工具. 通过使用本书, 可以在你的工作领域探索更多的可能, 或找到解决问题的新途径. 当然如果以前没有听说过这个领域, 那你可以通过阅读本书获得新的知识. 由于J2EE所涵盖的内容非常广, 所以总是存在着你没有听说过的主题. 甚至对于具有6年以上编程经验的程序员, 我也能保证你会发现有新的主题出现在你面前.
本书的组织结构
本书分成几个独立的部分, 每个部分主要介绍一个企业级主题. 在每个部分, 其中的每个章节在技术上也是独立的.
我们的计划是覆盖开发一个企业级应用所需要的每个部分. 也就是说, 我们不会介绍Java的API, 而是介绍Java运行的核心技术. 我们认为对于一个最好的程序员, 必须对核心技术有一个全面的了解. 事实上, 许多企业级API都需要这些知识. 如果不理解一个XML文档是如何构成的, 包含哪些术语, 你将会发现使用XML解析API或定义如何在Web服务器中装载企业级JavaBean是非常困难的.
读者可以只读那些对你的工作有帮助的部分, 而不需要一部分接一部分地阅读. 如果你没有写过企业级应用, 那么我们强烈建议你阅读本书的第1部分. 然后, 跳到那些对你的需求有帮助的章节. 如果需要本书的其他部分来帮助说明某些技术, 书中会显示一个交叉参考到相应的章节.
本书由6部分组成, 从系统的应用界面讲到系统后台. 每个部分包含一些主题, 下面简要介绍这些部分.
第1部分 快速入门
这个介绍性的部分说明企业级应用以及J2EE规范的不同部分:为什么需要使用该规范, 一个企业级应用有哪些组成, 以及一些例子. 高级的用户可以跳过这个部分进人那些更为专业的章节.
第2部分 内容发布
本部分主要讲述那些用于同外部用户交互的API——用于接收输入并发送输出. 它们都是用于表示的, 这个部分很少包含程序逻辑. 它们更多的是将预置的逻辑按照正确的顺序进行装配并将输出显示给用户. 多数情况下, 输出的是一个网页, 但是(我们将会看到)输出决不仅仅是一些漂亮的页面.
第3部分 数据库搜索
每个企业级系统的核心是数据库, 在数据库中包含大量的信息. 事实上, 如果不具备某种形式的查询能力, 将会发现你的应用程序基本上不能做任何事情. 数据库不仅仅只包含你所使用的Oracle或Access. 专业性的数据库产品有多种不同的存在目的, 有些情况下仅仅使用Oracle会是一个错误方案.
第4部分 使用XML在系统间通信
电子商务系统变得越来越复杂, 而不同系统间无缝通信的能力变得越来越重要. 作为一个开发者, 越来越少去开发一个完整的端到端系统. 我保证在你的最终产品中需要包含第三方的软件. 用于这个目的最常使用的技术是XML. 作为一个基于文本的结构化的数据格式, 它在这个方面有出色的表现. 但是使用XML需要大量的知识, 所以我们使用了整整一个部分来学习XML的所有知识.
第5部分 系统抽象
如果系统越来越复杂或负载增长迅速, 一个简单的两层应用程序将不再能够满足需求. 为了解决这个问题, 近几年出现了不少新的技术, 允许你从原始的数据资源中抽象出商业逻辑集合. 这些集合可以有许多不同的最终用户表现形式.
第6部分 构建大型系统
向大系统的迁移可以参考像amazon. com这样的网站的需求. 这个需求的解决方案需要非常专业的技术和知识. 目前间隔多长时常会出现一次系统完全崩溃阶情况呢?基本上这是不可能的, 所以你需要知道如何建立一个可以在部分崩溃情况下仍能正常工作的系统的方法. 这个部分将介绍开发这种应用程序所需要的Java技术.
附录
这里除了一些相当有用的代码和例子外, 还包括许多你需要知道的其他信息. 这个附录包含了SUN公司J2EE规范的参考实现, 产品和J2EE系统供应商列表.
本书中使用的图标该图标提供了关于当前主题的附加信息, 这是一种一般化的信息, 不是主要的概念. 该图标通常用于详细说明细节化的技术问题.
该图标提供了特别的信息或建议. 它们表示在完成某项工作上更为有效的方式或者是一种可能不太明显的技巧.
该图标向读者就一个潜在的问题或错误发出警告.
该图标为读者指示在其他章节中的有关信息.
相关网站
读者可以参看本书的相关网站http://www.hungryminds.com/extras. 在这个网站可以下载本书列出的所有代码以及例子程序.