本书全面介绍了J2EE(Java2 Enterprise Edition)的相关技术,如EJB、JSP/Servlet、JMS、JTA/JTS等。同时,本书从体系结构的角度,分析讲解开发企业级应用程序的各个层次,以便让读者理解J2EE相关技术之间的关系以及它们在体系结构中所处的位置和发挥的作用。\r\n\r\n 本书将帮助读者理解基于组件的开发,学会用EJB开发企业Internet/Intranet应用程序;全面了解J2EE相关技术,理解它们之间的关系以及它们在J2EE体系结构中所处的地位;通过实际的J2EE开发,让读者了解开发的各个重要环节和基本方法。\r\n\r\n 本书面向具备了一定的Java基础且希望用J2EE进行高级Java应用程序开发的读者。\r\n
\r\n
第1章 J2EE概述 \r\n\r\n 1. 1 J2EE的产生背景 \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. 1. 4 实现多层应用程序的解决方案 \r\n\r\n 1. 2 J2EE技术 \r\n\r\n 1. 2. 1 J2EE的优势 \r\n\r\n 1. 2. 2 J2EE的体系结构 \r\n\r\n 1. 2. 3 J2EE的服务器端运行环境 \r\n\r\n 1. 2. 4 J2EE相关技术概览 \r\n\r\n 1. 2. 5 J2EE的开发角色 \r\n\r\n 1. 3 J2EE的应用 \r\n\r\n 1. 3. 1 多层J2EE应用程序 \r\n\r\n 1. 3. 2 独立客户端应用程序 \r\n\r\n 1. 3. 3 简单Web应用程序 \r\n\r\n 1. 3. 4 BTB(Business to Business)企业对企业应用程序 \r\n\r\n 1. 4 本章小结 \r\n\r\n 第2章 服务器端组件 \r\n\r\n 2. 1 Enterprise Bean \r\n\r\n 2. 1. 1 Enterprise Bean的分类 \r\n\r\n 2. 1. 2 EJB的客户端 \r\n\r\n 2. 1. 3 几种EJB的适用场合 \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 Enterprise Bean的组成 \r\n\r\n 2. 3. 1 Enterprise Bean类 \r\n\r\n 2. 3. 2 EJB对象(EJB Object) \r\n\r\n 2. 3. 3 Remote Interface \r\n\r\n 2. 3. 4 Local Interface \r\n\r\n 2. 3. 5 Home对象和Home Interface \r\n\r\n 2. 3. 6 部署描述文件(Deployment Descriptors) \r\n\r\n 2. 3. 7 集成 \r\n\r\n 2. 4 Enterprise Bean的调用 \r\n\r\n 2. 4. 1 使用JNDI寻找Home对象 \r\n\r\n 2. 4. 2 Enterprise Bean调用实例 \r\n\r\n 2. 5 本章小结 \r\n\r\n 第3章 Session Bean \r\n\r\n 3. 1 Sessinn Bean基础 \r\n\r\n 3. 1. 1 Session Bean的生命周期 \r\n\r\n 3. 1. 2 Session Bean的分类 \r\n\r\n 3. 2 Hello World无状态Session Bean \r\n\r\n 3. 2. 1 Home Interface \r\n\r\n 3. 2. 2 Remote Interface \r\n\r\n 3. 2. 3 Bean类 \r\n\r\n 3. 2. 4 部署描述文件 \r\n\r\n 3. 2. 5 Enterprise Bean的集成 \r\n\r\n 3. 2. 6 编写客户端代码 \r\n\r\n 3. 2. 7 HelloBean小结 \r\n\r\n 3. 3 有状态Session Bean \r\n\r\n 3. 3. 1 有状态Session Bean池 \r\n\r\n 3. 3. 2 CountBean \r\n\r\n 3. 4 本章小结 \r\n\r\n 第4章 永久性存储基础 \r\n\r\n 4. 1 永久性存储 \r\n\r\n 4. 1. 1 Java对象序列化 \r\n\r\n 4. 1. 2 对象——关系映射 \r\n\r\n 4. 1. 3 对象数据库 \r\n\r\n 4. 2 JDBC基础 \r\n\r\n 4. 2. 1 JDBC概要 \r\n\r\n 4. 2. 2 数据库的连接 \r\n\r\n 4. 2. 3 数据源 \r\n\r\n 4. 2. 4 Statement简介 \r\n\r\n 4. 2. 5 ResultSet简介 \r\n\r\n 4. 2. 6 PreparedStatement简介 \r\n\r\n 4. 2. 7 CallableStatement简介 \r\n\r\n 4. 3 Entity Bean基础 \r\n\r\n 4. 3. 1 什么是Entity Bean \r\n\r\n 4. 3. 2 Entity Bean所包含的文件 \r\n\r\n 4. 3. 3 Entity Bean的一些特点 \r\n\r\n 4. 3. 4 Entity上下文对象 \r\n\r\n 4. 4 本章小结 \r\n\r\n 第5章 Entity Bean \r\n\r\n 5. 1 BMP Entity Bean \r\n\r\n 5. 1. 1 Entity Bean基础 \r\n\r\n 5. 1. 2 Entity Bean的finder方法 \r\n\r\n 5. 1. 3 BMP实例——Account Bean \r\n\r\n 5. 1. 4 BMP Entity Bean的生命周期 \r\n\r\n 5. 2 CMP Entity Bean \r\n\r\n 5. 2. 1 CMP Entity Bean的特点 \r\n\r\n 5. 2. 2 编写CMP Entity Bean的基本规则 \r\n\r\n 5. 2. 3 CMP Entity Bean实例 \r\n\r\n 5. 2. 4 CMP Entity Bean的生命周期 \r\n\r\n 5. 3 本章小结 \r\n\r\n 第6章 数据库表关系 \r\n\r\n 6. 1 关系基数(Cardinality) \r\n\r\n 6. 1. 1 关系基数 \r\n\r\n 6. 1. 2 CMP和BMP的不同点 \r\n\r\n 6. 1. 3 用BMP实现一对一关系 \r\n\r\n 6. 1. 4 使用CMP实现一对一关系 \r\n\r\n 6. 1. 5 用BMP实现一对多关系 \r\n\r\n 6. 1. 6 用CMP实现一对多关系 \r\n\r\n 6. 1. 7 用BMP实现多对多关系 \r\n\r\n 6. 1. 8 用CMP实现多对多关系 \r\n\r\n 6. 2 关系的方向性(Directionality) \r\n\r\n 6. 2. 1 在BMP中实现方向性 \r\n\r\n 6. 2. 2 在CMP中实现方向性 \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 第7章 Java Servlets技术 \r\n\r\n 7. 1 Java Servlet技术基础 \r\n\r\n 7. 1. 1 Servlet简单实例 \r\n\r\n 7. 1. 2 用HttpSessinn对象跟踪保存客户端状态变量 \r\n\r\n 7. 1. 3 Cookies \r\n\r\n 7. 1. 4 在Servlet中使用其他资源 \r\n\r\n 7. 1. 5 在Servlet之间共享资源 \r\n\r\n 7. 2 Servlet技术在J2EE中的应用 \r\n\r\n 7. 2. 1 搭建简单的开发平台 \r\n\r\n 7. 2. 2 Adder实例 \r\n\r\n 7. 2. 3 设置ContextRoot \r\n\r\n 7. 2. 4 设置JNDI名 \r\n\r\n 7. 2. 5 部署和运行 \r\n\r\n 7. 3 本章小结 \r\n\r\n 第8章 Java Server Pages技术 \r\n\r\n 8. 1 Web应用程序设计的JSP方法 \r\n\r\n 8. 1. 1 JSP技术的作用 \r\n\r\n 8. 1. 2 JSP页面的外观 \r\n\r\n 8. 2 JSP基本语法 \r\n\r\n 8. 2. 1 JSP小脚本 \r\n\r\n 8. 2. 2 JSP指令 \r\n\r\n 8. 2. 3 JSP动作 \r\n\r\n 8. 2. 4 JSP页面中的隐含对象 \r\n\r\n 8. 3 JSP页面中的Java Bean组件 \r\n\r\n 8. 3. 1 Java Bean编写规范 \r\n\r\n 8. 3. 2 在JSP页面中使用Java Bean \r\n\r\n 8. 3. 3 使用Java Bean作为JSP和Enterprise Bean的中介 \r\n\r\n 8. 4 本章小结 \r\n\r\n 第9章 自定义标签库 \r\n\r\n 9. 1 自定义标签库简介 \r\n\r\n 9. 1. 1 自定义标签 \r\n\r\n 9. 1. 2 使用自定义标签库的好处 \r\n\r\n 9. 1. 3 自定义标签的使用方法 \r\n\r\n 9. 1. 4 标签体 \r\n\r\n 9. 2 编写自定义标签 \r\n\r\n 9. 2. 1 标签处理类 \r\n\r\n 9. 2. 2 标签库描述及件(Tag Library Descriptors) \r\n\r\n 9. 2. 3 标签属性 \r\n\r\n 9. 2. 4 属性值的有效性验证 \r\n\r\n 9. 2. 5 带有标签体的标签 \r\n\r\n 9. 2. 6 脚本变量 \r\n\r\n 9. 2. 7 标签之间的协同操作 \r\n\r\n 9. 3 iterate标签实例 \r\n\r\n 9. 3. 1 iterate标签的使用 \r\n\r\n 9. 3. 2 标签处理类 \r\n\r\n 9. 3. 3 标签辅助信息类 \r\n\r\n 9. 4 通过自定义标签访问EJB \r\n\r\n 9. 4. 1 编写JSP文件 \r\n\r\n 9. 4. 2 编写标签库描述文件 \r\n\r\n 9. 4. 3 编写标签处理类 \r\n\r\n 9. 5 本章小结 \r\n\r\n 第10章 事务处理 \r\n\r\n 10. 1 事务处理基础 \r\n\r\n 10. 1. 1 为什么需要事务处理 \r\n\r\n 10. 1. 2 基本术语 \r\n\r\n 10. 1. 3 事务处理模型 \r\n\r\n 10. 2 EJB中的事务处理 \r\n\r\n 10. 2. 1 Bean实现的事务处理 \r\n\r\n 10. 2. 2 容器管理的事务处理 \r\n\r\n 10. 2. 3 客户端控制的事务处理 \r\n\r\n 10. 2. 4 三种管理事务的方式的比较 \r\n\r\n 10. 2. 5 Entity Bean的事务处理 \r\n\r\n 10. 3 容器管理的事务处理 \r\n\r\n 10. 3. 1 事务属性 \r\n\r\n 10. 3. 2 容器管理的事务的滚回(Roll Back) \r\n\r\n 10. 3. 3 同步Session Bean的成员变量值 \r\n\r\n 10. 3. 4 容器管理的事务中不能使用的方法 \r\n\r\n 10. 4 Bean管理的事务处理 \r\n\r\n 10. 4. 1 JDBC事务处理 \r\n\r\n 10. 4. 2 JTA事务处理 \r\n\r\n 10. 4. 3 Bean管理的事务中不能使用的方法 \r\n\r\n 10. 4. 4 Bean管理的事务和容器管理的事务 \r\n\r\n 10. 4. 5 客户端控制的事务处理 \r\n\r\n 10. 5 事务的并发控制 \r\n\r\n 10. 6 本章小结 \r\n\r\n 第11章 安全性 \r\n\r\n 11. 1 认证 \r\n\r\n 11. 1. 1 J2EE用户. 域和组 \r\n\r\n 11. 1. 2 管理用户和组 \r\n\r\n 11. 1. 3 客户端认证 \r\n\r\n 11. 2 授权 \r\n\r\n 11. 2. 1 定义角色(Role) \r\n\r\n 11. 2. 2 设置方法的访问权限 \r\n\r\n 11. 2. 3 把角色映射到用户或组 \r\n\r\n 11. 2. 4 安全授权的传递 \r\n\r\n 11. 2. 5 编码实现安全逻辑 \r\n\r\n 11. 3 认证与授权的实例描述 \r\n\r\n 11. 3. 1 J2EE应用程序客户端 \r\n\r\n 11. 3. 2 Web浏览器客户端 \r\n\r\n 11. 4 本章小结 \r\n\r\n 第12章 JMS和Message-Driven Bean \r\n\r\n 12. 1 JMS基础 \r\n\r\n 12. 1. 1 概述 \r\n\r\n 12. 1. 2 JMS API的基本概念 \r\n\r\n 12. 1. 3 JMS API编程模型 \r\n\r\n 12. 1. 4 一个简单的JMS应用程序 \r\n\r\n 12. 1. 5 提高JMS应用程序的可靠性 \r\n\r\n 12. 2 Message-Driven Bean \r\n\r\n 12. 2. 1 MDB概述 \r\n\r\n 12. 2. 2 编写Message-Driven Bean \r\n\r\n 12. 2. 3 一个Message-Driven Bean的实例 \r\n\r\n 12. 2. 4 Message-Driven Bean中的分布式事务处理 \r\n\r\n 12. 3 Message-Driven Bean与Session Bean的协同工作 \r\n\r\n 12. 3. 1 概述 \r\n\r\n 12. 3. 2 编写Publisher Session Bean \r\n\r\n 12. 3. 3 编写Message-Driven Bean \r\n\r\n 12. 3. 4 编写客户端程序 \r\n\r\n 12. 3. 5 应用程序的部署和运行 \r\n\r\n 12. 4 Message-Driven Bean与Entity Bean的协同工作 \r\n\r\n 12. 4. 1 概述 \r\n\r\n 12. 4. 2 编写应用程序客户端:HumanResourceClient. java \r\n\r\n 12. 4. 3 编写两个Message-Driven Bean \r\n\r\n 12. 4. 4 编写SetupOffice Entity Bean \r\n\r\n 12. 4. 5 编写ScheduleMsgBean \r\n\r\n 12. 4. 6 应用程序的部署和运行 \r\n\r\n 12. 5 本章小结 \r\n\r\n 第13章 J2EE高级话题 \r\n\r\n 13. 1 CORBA模型 \r\n\r\n 13. 1. 1 CORBA含义 \r\n\r\n 13. 1. 2 理解CORBA \r\n\r\n 13. 1. 3 为什么要关心CORBA \r\n\r\n 13. 1. 4 CORBA的工作原理 \r\n\r\n 13. 2 RMI-IIOP \r\n\r\n 13. 2. 1 RMI-CORBA互操作的必要性 \r\n\r\n 13. 2. 2 RMI与CORBA的合并 \r\n\r\n 13. 2. 3 解析RMI与CORBA的差别 \r\n\r\n 13. 3 结合RMI和CORBA的应用开发步骤 \r\n\r\n 13. 3. 1 RMI-IIOP客户端与CORBA对象实现 \r\n\r\n 13. 3. 2 CORBA客户端与RMI-IIOP对象实现 \r\n\r\n 13. 4 本章小结 \r\n\r\n 第14章 开发前的准备工作 \r\n\r\n 14. 1 系统开发环境 \r\n\r\n 14. 2 应用服务器——BAS \r\n\r\n 14. 2. 1 应用服务器简介 \r\n\r\n 14. 2. 2 应用服务器的适用领域 \r\n\r\n 14. 2. 3 应用服务的各种性能 \r\n\r\n 14. 2. 4 Application Server种类 \r\n\r\n 14. 2. 5 Borland Application Server 4. 5简介 \r\n\r\n 14. 3 开发工具Borland Jbuilder 5 \r\n\r\n 14. 3. 1 初识Jbuilder 5环境 \r\n\r\n 14. 3. 2 开发前的环境配置 \r\n\r\n 14. 4 JDataStore简介 \r\n\r\n 14. 4. 1 JDataStore Explore的功能简介 \r\n\r\n 14. 4. 2 JDataStore Explore的操作 \r\n\r\n 14. 5 本章小结 \r\n\r\n 第15章 Esite实例分析 \r\n\r\n 15. 1 Esite实例简介 \r\n\r\n 15. 1. 1 运行实例前的设置 \r\n\r\n 15. 1. 2 预览Esite实例 \r\n\r\n 15. 2 数据库结构分析 \r\n\r\n 15. 3 EJB结构分析 \r\n\r\n 15. 3. 1 Entity Bean \r\n\r\n 15. 3. 2 Session Bean \r\n\r\n 15. 4 功能模块分析 \r\n\r\n 15. 5 分析汇总 \r\n\r\n 15. 6 本章小结 \r\n\r\n 第16章 EJB层的开发 \r\n\r\n 16. 1 Entity Bean的开发 \r\n\r\n 16. 1. 1 新建项目和空EJB组 \r\n\r\n 16. 1. 2 Entity Bean “User”的开发 \r\n\r\n 16. 1. 3 Entity Bean “Inventory”的开发 \r\n\r\n 16. 1. 4 Entity Bean “Order”和“Orderitem”的开发 \r\n\r\n 16. 1. 5 Entity Bean “ShoppingCart”的开发 \r\n\r\n 16. 2 Session Bean的开发 \r\n\r\n 16. 2. 1 Session Bean “ServerDataModule”的开发 \r\n\r\n 16. 2. 2 ServerDataModuleBean类深入分析 \r\n\r\n 16. 2. 3 Session Bean“Cart”的开发 \r\n\r\n 16. 3 本章小结 \r\n\r\n 第17章 Web层的开发 \r\n\r\n 17. 1 开发ClientDataModule类 \r\n\r\n 17. 1. 1 建立ClientDataModule框架 \r\n\r\n 17. 1. 2 ClientDataModule类源代码分析 \r\n\r\n 17. 2 Servlet相关开发 \r\n\r\n 17. 2. 1 开发sessionBean类 \r\n\r\n 17. 2. 2 Login类的开发 \r\n\r\n 17. 2. 3 NewUserServlet类的开发 \r\n\r\n 17. 2. 4 Search类的开发 \r\n\r\n 17. 2. 5 AddItem类的开发 \r\n\r\n 17. 2. 6 RemoveItem类的开发 \r\n\r\n 17. 2. 7 Purchase类的开发 \r\n\r\n 17. 2. 8 Logout类的开发 \r\n\r\n 17. 3 JSP页面的开发 \r\n\r\n 17. 3. 1 welcome. jsp页面的开发 \r\n\r\n 17. 3. 2 searchresults. jsp页面的开发 \r\n\r\n 17. 3. 3 shoppingcart. jsp页面的开发 \r\n\r\n 17. 4 本章小结 \r\n\r\n 第18章 集成Esite系统 \r\n\r\n 18. 1 在BAS中部署EJB \r\n\r\n 18. 2 配置Tomcat服务器的运行 \r\n\r\n 18. 3 运行Esite \r\n\r\n 18. 4 本章小结 \r\n\r\n 第19章 客户端应用程序 \r\n\r\n 19. 1 开发Application类和Frame类 \r\n\r\n 19. 1. 1 建工Application和Frame框架 \r\n\r\n 19. 1. 2 添加库存管理功能 \r\n\r\n 19. 2 BookstoreManagerFrame的源代码分析 \r\n\r\n 19. 3 本章小结 \r\n\r\n 附录1 EJB快速参考手册 \r\n\r\n 附录2 OMG IDL语法 \r\n
\r\n
一. 概述
J2EE是目前市场上主流的企业级分布式应用程序开发平台, 它是在Sun公司的领导下, 多家公司参与共同制定的应用程序开发规范, 正是因为它是一种规范, 所以能够得到业界的支持, 从而具备了灵活的可移植性, 同时因为Java本身所具有的“一次编写, 到处执行”的特性, 也具备了应用程序的跨平台性. 使用J2EE架构, 能够快速. 高效地开发出可移植的. 跨平台的. 具有强大功能的企业级应用程序.
本书全面介绍了J2EE(Java 2 Enterprise Edition)的相关技术, 如EJB. JSP/Servlet. JMS. JTA/JTS等. 同时, 本书从体系结构的角度, 分析讲解了开发企业级应用程序的各个层次, 以便让读者理解J2EE相关技术之间的关系以及它们在体系结构中所处的位置和所发挥的作用.
二. 本书结构
本书侧重J2EE的核心编程, 而没有展开介绍应用程序服务器.
在结构上, 本书可分为两个部分, 第一部分介绍J2EE的编程基础. 这部分逐一介绍了J2EE相关技术的基础知识, 其中的实例采用的是J2SDKEE 1. 3自带的J2EE应用服务器和Deploytool部署工具, 这是Sun公司提供的官方参考版本, 主要用于学习使用.
在实际的应用程序开发过程中是不会使用NotePad的, 应用服务器和部署工具也不会使用学习版本, 所以在本书的第二部分详细介绍了如何使用Jbuilder和Borland公司的BAS应用服务器开发和部署J2EE应用程序. 使用Jbuilder是因为它是业界的首选IDE, 使用BAS是因为BAS是和Jbuilder结合得最好的应用服务器. 但是这并不意味着这是最合理的选择, IDE和应用服务器的选择依赖于用户的资金投入. 开发人员的水平. 各个应用服务器对J2EE规范的支持水平等因素. 用户应该根据实际情况作出选择.
三. 本书的读者对象
本书面向具有一定Java基础而希望用J2EE开发企业应用程序的读者.
首先, 读者必须具备一定的Java基础编程经验, 所以本书不会讲解如何配置CLASSPATH. 如何打包应用程序等. 在阅读本书之前, 读者应该对Java的基本语法和JVM有所了解, 并且应该了解如何使用Java的基础类库中最核心的部分, 如输入输出流等.
此外本书还涉及到了XML相关的知识, 读者在阅读本书之前, 还应该对XML的作用和基本语法有所了解. 但XML并不是J2EE的核心内容, 所以本书并没有对XML作专门介绍.
四. 本书的特点
丰富的实例, 不同层次. 不同难度. 循序渐进.
侧重于J2EE的整体架构, 全面介绍J2EE相关技术以及它们之间的关系和它们所发挥的作用.
介绍全新的计算模式:分布式计算.
五. 本书的目的
理解基于组件的开发, 学会用EJB开发企业Internet/Intranet应用程序.
全面了解J2EE相关技术, 理解它们之间的关系以及它们在J2EE体系结构中所处的地位.
通过实际的J2EE开发, 让读者了解开发的各个重要环节和基本方法.
由于作者水平有限, 疏漏之处在所难免, 请读者批评指正.
编者