Java技术采用了两个象征性的符号,一个是一杯冒着热气的咖啡,一个是Duke这个有趣的卡通人物。Duke在线银行实例是美国Sun Microsystems公司在其《J2EE学习指南》中使用的一个完整实例,该实例涵盖了Java的最主要的核心技术,其规模大小适中。\r\n\r\n 本书紧紧围绕Duke应用实例,进行了由远及近的全面介绍和自底向上的层层分析,使读者能在一个较短时间内很快了解和掌握开发大型企业的Web应用技术。\r\n\r\n 本书从最后端的数据分析入手,进而详尽介绍和分析了构建在数据表上的企业Bean组件和承载组件的应用服务器功能;然后剖析了前端应用客户的程序模式和整个企业Bean组件的构架;接着分块介绍和分析重要的Web组件技术。本书不仅有对所有源代码的逐块解释分析,使读者能从实例运用中举一反三,而且有对体系结构、设计模式、框架构件的全面介绍,使读者能从实践到理论全部融会贯通。不仅如此,在对Duke的应用实例的解析基础上,读者能把这一实例作为一个设计模型的范例和扩充的框架应用在今后的工作实践中。同时,本书中介绍的所有技术也是应用服务器和Web服务的重要基础。\r\n\r\n 本书结合了作者丰富的美国IT工业的工作经验和多年的IT培训经验,是一部既适用于自学的参考书,又适用于培训的教程,可供计算机专业及相关专业的大学生、研究生,从事软件开发、电子商务开发的软件工程师和网络工程师学习与参考。\r\n
\r\n
第1章 Duke实例一览 \r\n\r\n 1. 1 从J2EE谈起 \r\n\r\n 1. 2 Duke在线银行实例 \r\n\r\n 1. 3 Duke的运行环境 \r\n\r\n 1. 3. 1 Duke的生存空间 \r\n\r\n 1. 3. 2 包装Duke \r\n\r\n 1. 3. 3 部署Duke \r\n\r\n 1. 4 Duke全景浏览 \r\n\r\n 1. 4. 1 设置Duke的安全机制 \r\n\r\n 1. 4. 2 创建Duke数据库 \r\n\r\n 1. 4. 3 从Web客户浏览 \r\n\r\n 1. 4. 4 从应用客户浏览 \r\n\r\n 第2章 Duke的数据模型 \r\n\r\n 2. 1 Duke数据库的逻辑视图 \r\n\r\n 2. 2 创建Duke数据库 \r\n\r\n 2. 3 Cloudscape数据库 \r\n\r\n 2. 4 使用Ant创建数据模型 \r\n\r\n 第3章 EJB概述 \r\n\r\n 3. 1 分布式组件体系结构 \r\n\r\n 3. 2 EJB的概念 \r\n\r\n 3. 3 EJB的作用 \r\n\r\n 3. 4 EJB基础和体系结构 \r\n\r\n 3. 4. 1 EJB组件 \r\n\r\n 3. 4. 2 不可见的EJB对象 \r\n\r\n 3. 4. 3 定义客户访问 \r\n\r\n 3. 4. 4 EJB容器的职责 \r\n\r\n 3. 5 会话Bean \r\n\r\n 3. 5. 1 有状态会话Bean \r\n\r\n 3. 5. 2 无状态会话Bean \r\n\r\n 3. 5. 3 会话Bean的应用 \r\n\r\n 3. 6 实体Bean \r\n\r\n 3. 6. 1 容器管理持久 \r\n\r\n 3. 6. 2 Bean管理持久 \r\n\r\n 3. 6. 3 实体Bean的应用 \r\n\r\n 3. 7 消息驱动Bean \r\n\r\n 3. 7. 1 MDB和其他的EJB的区别 \r\n\r\n 3. 7. 2 消息驱动Bean的应用 \r\n\r\n 第4章 Duke的EJB组件之一 ——实体Bean \r\n\r\n 4. 1 顾客Bean详解 \r\n\r\n 4. 1. 1 顾客对象模型(Customer Object Model) \r\n\r\n 4. 1. 2 实体Bean类 \r\n\r\n 4. 1. 3 引导接口(Home Interface) \r\n\r\n 4. 1. 4 远程接口(Remote若悬河Interface) \r\n\r\n 4. 1. 5 一个实体Bean的生命周期 \r\n\r\n 4. 2 Duke的其他实体Bean \r\n\r\n 4. 2. 1 账户Bean \r\n\r\n 4. 2. 2 交易Bean \r\n\r\n 4. 3 Duke应用程序中的异常 \r\n\r\n 4. 4 Duke的辅助类(Helper Classes) \r\n\r\n 4. 4. 1 封装类(Encapsulated Classes) \r\n\r\n 4. 4. 2 实用类(Utility Classes) \r\n\r\n 第5章 Duke的EJB组件之二——会话Bean \r\n\r\n 5. 1 顾客会话Bean详解 \r\n\r\n 5. 1. 1 顾客会话Bean对象模型 \r\n\r\n 5. 1. 2 会话Bean类 \r\n\r\n 5. 1. 3 引导接口 \r\n\r\n 5. 1. 4 有状态会话Bean的生命周期 \r\n\r\n 5. 2 Duke中其他的会话Bean \r\n\r\n 5. 2. 1 账户会话Bean \r\n\r\n 5. 2. 2 交易会话Bean \r\n\r\n 5. 3 另一种会话Bean——无状态会话Bean \r\n\r\n 5. 3. 1 无状态会话Bean \r\n\r\n 5. 3. 2 无状态会话Bean的生命周期 \r\n\r\n 5. 4 有状态会话和无状态会话的选择 \r\n\r\n 第6章 Duke的应用客户层 \r\n\r\n 6. 1 客户程序的类及类间关系 \r\n\r\n 6. 2 客户程序视图——BankAdmin \r\n\r\n 6. 2. 1 BankAdmin类的结构 \r\n\r\n 6. 2. 2 main方法 \r\n\r\n 6. 2. 3 构造方法 \r\n\r\n 6. 3 客户程序控制——EventHandle \r\n\r\n 6. 3. 1 Java事件模型 \r\n\r\n 6. 3. 2 EventHandle类的结构 \r\n\r\n 6. 3. 3 hookupEvents方法 \r\n\r\n 6. 4 客户程序数据模型——DataModel \r\n\r\n 6. 4. 1 构造方法 \r\n\r\n 6. 4. 2 数据模型方法 \r\n\r\n 6. 5 MVC设计模式 \r\n\r\n 第7章 建立和部署Duke应用程序 \r\n\r\n 7. 1 建立Duke的EJB组件 \r\n\r\n 7. 1. 1 Ant的build. xml文件 \r\n\r\n 7. 1. 2 编译EJB组件 \r\n\r\n 7. 1. 3 EJB组件的打包 \r\n\r\n 7. 1. 4 EJB部署描述 \r\n\r\n 7. 2 建立Duke应用客户程序和EAR \r\n\r\n 7. 2. 1 编译和打包应用客户程序 \r\n\r\n 7. 2. 2 装配企业应用档案文件 \r\n\r\n 7. 3 部署企业应用档案文件 \r\n\r\n 7. 3. 1 部署模型 \r\n\r\n 7. 3. 2 部署工具 \r\n\r\n 第8章 Duke的Web组件之一 ——Servlet \r\n\r\n 8. 1 Servlet概述 \r\n\r\n 8. 1. 1 Servlet API \r\n\r\n 8. 1. 2 Servlet的生命周期 \r\n\r\n 8. 2 Servlet举例 \r\n\r\n 8. 2. 1 最简单的HTTP Servlet \r\n\r\n 8. 2. 2 HTML表格Servlet \r\n\r\n 8. 2. 3 JDBC Servlet \r\n\r\n 8. 3 Servlet技术 \r\n\r\n 8. 3. 1 Cookies \r\n\r\n 8. 3. 2 会话(Session)跟踪 \r\n\r\n 8. 3. 3 Servlet交互 \r\n\r\n 8. 4 实用Servlet——SnoopServlet \r\n\r\n 第9章 Duke的Web组件之二——JSP \r\n\r\n 9. 1 JSP概述 \r\n\r\n 9. 2 JSP脚本语言元素 \r\n\r\n 9. 2. 1 JSP表达式 \r\n\r\n 9. 2. 2 JSP表达式实例 \r\n\r\n 9. 2. 3 JSP脚本件(Scriptlets) \r\n\r\n 9. 2. 4 JSP声明(Declarations) \r\n\r\n 9. 2. 5 预定义变量 \r\n\r\n 9. 2. 6 注解(Comments) \r\n\r\n 9. 3 JSP命令(Directives) \r\n\r\n 9. 3. 1 JSP page命令 \r\n\r\n 9. 3. 2 出错处理页面实例 \r\n\r\n 9. 3. 3 JSP include命令 \r\n\r\n 9. 4 在JSP中使用JavaBean \r\n\r\n 9. 4. 1 jsp:useBean \r\n\r\n 9. 4. 2 访问Bean属性 \r\n\r\n 9. 4. 3 ItemBean的实例 \r\n\r\n 第10章 Web组件的交互控制 \r\n\r\n 10. 1 用URL调用Web组件 \r\n\r\n 10. 2 在Servlet中调用Servlet \r\n\r\n 10. 2. 1 实例化一个Servlet对象 \r\n\r\n 10. 2. 2 应答重定向(Response Redirection) \r\n\r\n 10. 2. 3 请求分派(Request Dispatching) \r\n\r\n 10. 2. 4 请求分派(Request Dispatcher)的替代方法 \r\n\r\n 10. 2. 5 资源的使用方法 \r\n\r\n 10. 3 在Servlet中调用JSP页面 \r\n\r\n 10. 4 在JSP页面中调用Servlet \r\n\r\n 10. 5 在JSP页面中调用JSP页面 \r\n\r\n 第11章 自定义标签 \r\n\r\n 11. 1 构建标签的部件 \r\n\r\n 11. 1. 1 标签处理器(Tag Handler) \r\n\r\n 11. 1. 2 标签库描述(Tag Library Descriptor) \r\n\r\n 11. 1. 3 JSP页面 \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. 2. 4 互操作标签 \r\n\r\n 11. 3 Struts标签库 \r\n\r\n 11. 3. 1 struts-logic标签库 \r\n\r\n 11. 3. 2 equal标签 \r\n\r\n 11. 3. 3 iterate标签 \r\n\r\n 11. 4 Tutorial-Template标签库 \r\n\r\n 11. 4. 1 definition标签 \r\n\r\n 11. 4. 2 screen和parameter标签 \r\n\r\n 11. 4. 3 screendefinitions JSP页面 \r\n\r\n 11. 4. 4 insert标签 \r\n\r\n 第12章 Duke的Web层 \r\n\r\n 12. 1 Duke的Web组件一览 \r\n\r\n 12. 2 Web客户程序生命周期 \r\n\r\n 12. 2. 1 客户组件的初始化 \r\n\r\n 12. 2. 2 企业Bean的Facade \r\n\r\n 12. 2. 3 请求处理 \r\n\r\n 12. 2. 4 Duke的JSP组件 \r\n\r\n 12. 3 Duke的Web层设计策略 \r\n\r\n 12. 3. 1 设计模式 \r\n\r\n 12. 3. 2 Web Tier技术指南 \r\n\r\n 第13章 再谈Duke的封装和部署 \r\n\r\n 13. 1 封装一个企业应用系统 \r\n\r\n 13. 1. 1 封装组件 \r\n\r\n 13. 1. 2 封装EJB模块 \r\n\r\n 13. 1. 3 封装Web模块 \r\n\r\n 13. 1. 4 封装应用客户程序模块 \r\n\r\n 13. 2 部署描述(Deploying Descriptors) \r\n\r\n 13. 2. 1 公共部署的设置(Common Deployment Settings) \r\n\r\n 13. 2. 2 EJB部署的设置项 \r\n\r\n 13. 2. 3 Web部署设置项 \r\n\r\n 13. 3 封装和部署Duke的Web层 \r\n\r\n 13. 3. 1 封装Duke的Web组件 \r\n\r\n 13. 3. 2 Duke的Web部署描述 \r\n\r\n 13. 3. 3 部署Duke的Web模块 \r\n\r\n 第14章 Duke的安全设置 \r\n\r\n 14. 1 一些必须了解的安全性术语 \r\n\r\n 14. 2 安全模型(Security Models) \r\n\r\n 14. 2. 1 安全角色(Security Roles) \r\n\r\n 14. 2. 2 声明性(Declarative)和编程性(Programmatic)安全机制 \r\n\r\n 14. 2. 3 J2EE安全的主要特征 \r\n\r\n 14. 3 Web层的安全 \r\n\r\n 14. 3. 1 保护Web资源 \r\n\r\n 14. 3. 2 Web层认证 \r\n\r\n 14. 3. 3 Web层授权 \r\n\r\n 14. 3. 4 Web层中的编程性安全 \r\n\r\n 14. 4 EJB层的安全 \r\n\r\n 14. 4. 1 不受保护的EJB层资源 \r\n\r\n 14. 4. 2 EJB层认证 \r\n\r\n 14. 4. 3 EJB层的声明性授权 \r\n\r\n 14. 4. 4 EJB层的编程性授权 \r\n\r\n 14. 5 应用客户层的安全 \r\n\r\n 14. 5. 1 J2EE应用客户容器中的认证 \r\n\r\n 14. 5. 2 Java认证与授权服务(JAAS) \r\n\r\n 14. 6 EIS层的安全 \r\n\r\n 14. 6. 1 容器管理的资源签名(Container-Managed Resource Sign-On) \r\n\r\n 14. 6. 2 组件管理的资源签名(Component-Managed Resource Sign-On) \r\n\r\n 14. 7 安全身份标识的传播(Propagating Security Identity) \r\n\r\n 14. 7. 1 保护域 \r\n\r\n 14. 7. 2 部署一个组件的传播安全身份标识 \r\n\r\n 14. 7. 3 配置客户程序认证 \r\n\r\n 第15章 企业应用的展望 \r\n\r\n 15. 1 透视Duke \r\n\r\n 15. 1. 1 从Duke的资源角度透视 \r\n\r\n 15. 1. 2 从Duke应用角度来透视 \r\n\r\n 15. 1. 3 从Duke的技术角度来透视 \r\n\r\n 15. 2 再谈J2EE技术 \r\n\r\n 15. 2. 1 J2EE——企业级解决方案的平台 \r\n\r\n 15. 2. 2 EJB——服务器端组件的体系结构 \r\n\r\n 15. 2. 3 Servlet Web服务器的扩展功能 \r\n\r\n 15. 2. 4 JSP——动态生成Web内容 \r\n\r\n 15. 2. 5 JSTL——封装JSP的通用功能 \r\n\r\n 15. 2. 6 JSF——简化Web的开发 \r\n\r\n 15. 2. 7 JMS——连接企业应用 \r\n\r\n 15. 2. 8 JCA——集成Web企业应用 \r\n\r\n 15. 2. 9 XML——与J2EE的理想组合 \r\n\r\n 15. 3 几个重要的J2EE兼容的应用服务器 \r\n\r\n 15. 3. 1 Tomcat——轻量级的免费服务器解决方案 \r\n\r\n 15. 3. 2 WebLogic——企业集成和集中的平台 \r\n\r\n 15. 3. 3 WebSphere——理想的电子商务平台 \r\n\r\n 15. 3. 4 SunONE——高可用性的开放网络环境 \r\n\r\n 15. 3. 5 Jboss——专业的开放源代码的产品 \r\n\r\n 15. 3. 6 Oracle 9i AS——完备的集成Web平台 \r\n\r\n 15. 4 . NET与J2EE之间的比较 \r\n\r\n 15. 4. 1 Microsoft. NET平台体系结构 \r\n\r\n 15. 4. 2 . NET与J2EE的比较 \r\n\r\n 15. 5 J2EE和Web服务 \r\n\r\n 15. 5. 1 通俗解读Web服务 \r\n\r\n 15. 5. 2 Web服务的三基石 \r\n\r\n 15. 5. 3 J2EE的Web服务战略 \r\n\r\n 15. 5. 4 软件巨头们的Web服务战略 \r\n\r\n 附录A J2EE兼容应用服务器总览 \r\n\r\n 附录B J2EE版本和组件技术版本 \r\n\r\n 附录C EJB规范 \r\n\r\n 附录D Java消息服务(JMS)简介 \r\n\r\n 附录E 理解Java连接器体系结构(JCA) \r\n\r\n 附录F 事务和J2EE \r\n\r\n 附录G J2EE认证体系 \r\n\r\n 参考书目 \r\n\r\n 在线参考 \r\n
\r\n
用“日新月异”来形容软件的发展, 毫不为过, 就是对我们这些一直在美国工业界前沿, 以软件为职业的, 被称为所谓高新技术的专业人员而言, 也时常感到难以适从. 我想对一个初入门道的人来说, 就更可想而知了. 软件的高速发展, 主要有赖于两方面的因素. 一是硬件的发展. 现在一台PC机远远超过几十年前的一台大型机的功能, 而价格却便宜得与家庭普通电器一样, 并且这一趋势还在继续下去. 二是网络的发展, 特别是Internet使我们开始真正步入了信息时代. 上网. 电子邮件渐渐就像手机. 电视一样已成为我们日常生活中不可或缺的一部分. Internet的实际应用潜力无穷, 现在可以说还只是一个开端. 这一切都给软件开辟了辽阔的前景, 提供了大可用武之地. 可是从另一方面说, 软件的快速发展同时也使软件开发的环境和软件的集成变得日益复杂, 软件开发的规模也日渐扩大, 但这并不意味着软件开发的周期也随之增加. 相反, 软件开发的周期却愈来愈短, 对软件质量的要求也愈来愈高. 与之相对应的是, 各种软件技术和工具层出不穷, 各种软件开发方法. 软件质量控制. 软件管理等方法学也日渐成熟. 面对软件发展的这一现状和趋势, 无论是在学校拥有计算机基础知识的学生, 还是刚踏入IT领域的起步者, 或是已有IT工业界实际经验的专业人才, 知识更新都是至关重要的. 就像软件产品的频频升级和快速的更新换代一样, 如果我们的软件知识和技能不能跟上的话, 难免也有被淘汰出局的命运.
作为一名IT从业人员, 现在只懂几门软件语言和几项计算机理论知识, 已远远不能满足企业应用的需要. 软件是一门发展极快的应用技术, 传统院校式的培养方式已远远不够. 软件也不再是纸上谈兵, 必须要与盯工业界的企业应用紧密结合, 在实际的环境中学习和掌握实际的案例. 反复地学习. 实践. 提高, 融理论. 实践与技能为一炉, 才能真正融会贯通, 学以致用, 才能面对企业眼花缭乱的各种软件技术和工具而应对自如. 学习一门新的软件语言并不难, 掌握一项软件技术也不难, 但语言会过时, 技术会被淘汰, 要跟上软件发展的步伐, 更为重要的是在软件应用的实际中, 锻炼和培养分析问题和解决问题的综合能力, 能够运用多种软件技术和软件方法为企业提供解决方案, 并熟练地使用各种软件工具去架构一个企业应用系统. IT工业界最需要的是这样一大批软件开发应用的精兵强将, 这种综合型软件人才, 不仅具有最新的软件技术和技能, 还具有实际软件应用的解决能力.
Web的飞速发展, 使得企业的软件应用向着分布式. 多层次. 组件构架和Web服务的方向发展. J2EE是基于Java技术的第一个面向企业的分布式. 多层次的软件体系结构规范. 它一经推出, 立即形成IT工业界的企业应用开发的标准, 许多重要的软件产品均基于这一标准而开发. 一般来说, 一种新的软件技术的推出, 为了便于人们迅速了解和掌握, 软件厂家总伴随其学习指南和实例. 这些实例不仅能帮助初学者立即进入状况, 而且许多实例稍加修改或扩充可以立即用在实际中. 这些实例是初学者掌握这项软件技术的最佳途径. Duke在线银行实例是Sun Microsystems公司在其《J2EE学习指南》中使用的一个完整实例. 该实例涵盖了J2EE最主要的核心技术, 体现了J2EE的精华, 为初窥J2EE殿堂者提供了最便捷的方式.
本书以Duke在线银行应用实例为主线, 紧紧围绕J2EE的各种核心技术, 进行自底向上, 由内向外的层层分析和分部解构. 在第1章对Duke应用实例有个乌瞰式的全景直观后, 第2章从底端的数据模型入手, 分析了支撑业务逻辑的数据库结构. 紧接着的3章均围绕J2EE最为重要的组件之一的企业Bean而展开. 第3章全面概述企业Bean技术, 为了解第4. 5章打下必要的基础. 第4章详尽分析建构在数据模型之上的Duke应用实例的企业实体Bean. 第5章分析了J2EE的另一种企业Bean——企业会话Bean在Duke实例中的应用, 同时介绍了承载企业Bean组件的EJB容器和应用服务器的功能. 第6章剖析了前端应用客户的程序模式和调用EJB层的接口方法. 第7章介绍对Duke应用实例的EJB层的生成打包和部署. 接下来的各章均围绕J2EE的另一主要组件技术——Web组件而展开. 第8章首先介绍了Servlet技术, 它是Web客户端的功能延伸. 第9章详细介绍基于Servlet技术的JSP Web组件. 第10章进而介绍Servlet和JSP两种Web组件技术的交互控制转换. 第11章重点介绍基于JSP技术的用户自定义的TagLib. 在这4章的基础之上, 第12章全面解构Duke应用实例的各种Web组件, 分析了Duke应用实例的Web框架结构和J2EE的Web容器. 第13章叙述如何对Web层和整个Duke应用实例进行打包和部署. 第14章结合Duke应用实例, 专门介绍和分析企业分布式应用的安全机制. 第15章作为总结, 先从几个不同视角俯视Duke应用实例, 再进一步谈J2EE的各项重要技术, 包括一些Duke应用实例没有介绍到的技术, 接着介绍了6个最有影响的和最具典型性的基于J2EE规范建造的应用服务器, 然后简单介绍了IT工业界的另一重要的企业分布式体系结构——微软的. NET平台, 并与J2EE进行了类比, 最后介绍以J2EE技术为重要基础之一的全新的软件构架技术——Web服务为全书的结束语.
如果能通过本书, 将我在美国盯工业界多年软件开发和IT培训的经验献给中国IT业的同行和计算机专业的学生, 并有所启发和帮助, 这将是对我一年多来每每挑灯夜战的最大欣慰. 最后感谢武汉大学计算机学院的朱福喜教授和余振坤先生的精心翻译, 感谢我的夫人Charlene和女儿Suzanne, 如果没有她们的理解和支持, 将很难想象有这本书的完成.
作者
2003年春于美国新泽西州
人们常说世界真小, 这倒也是, 我在2001年访美期间在美丽的新泽西州的一次聚会上竟然碰上离别18年的学友谢小乐先生. 谢小乐先生在美国IT业界奋战10多年, 事业上有相当的成就. 他一直在美国工业界的前沿从事软件开发. 设计. 应用和咨询工作, 从程序员. 资深软件分析师, 到体系架构师. 技术负责人. 曾任数十家美国著名公司的资深软件咨询顾问. 参与并主持过各种软件应用系统的分析和开发, 取得了Sun Microsystems认证的Java软件工程师, IBM认证的WebSphere系统方案解决专家, WebSphere企业级设计专家和体系架构师. 在他谈到想为养育他的国家做点什么的时候, 我们商定了要写这本书.
为什么要写这样一本书呢?这得从J2EE和IT业界的背景谈起. Internet和WWW为企业提供了构建信息化经济的坚实基础和平台, 在这种全新的经济模式下, 为了利用Internet的优势, 各种大小企业开发能够融入Internet的企业信息系统已成为一种必然趋势. 但开发这样的企业应用系统面临着新的挑战, 它不同于一般应用系统, 不仅要保留传统的信息系统的管理, 而且要确保所有的关键性的商务功能都能够进行计算机管理, 能够频繁更新信息和服务, 以适应外界的变化. 这就要求实现这些系统在更高层次上的集成, 并增加对分散的数据源整合数据的能力, 从而服务于特定的战略需要. 此外, 在信息经济化的竞争环境里企业应用的响应时间在企业中的价值不可低估, 因此需要采用一些方法简单而有效地将这些应用程序集成到现有的企业信息系统中去. 所有这些因素都极大地影响了企业对竞争环境的响应能力, 因而, 构建企业级应用软件要在考虑维护和发挥现有的商业系统价值的同时, 分别从响应速度. 开发效率. 系统集成和自由选择4个方面来迎接开发一个企业应用系统所面临的挑战, 跟上信息经济环境的快速的竞争步伐.
J2EE就是这种背景下的产物. J2EE的目标是定义一个功能标准, 以帮助人们适应这些挑战. J2EE不只是一种计算机语言, 它是Sun Microsystems公司继Java技术后又推出的一个更高层次的全方位. 多功能的企业应用开发环境. 它包括了当今软件工业界许多最新. 最重要的软件技术. J2EE平台包含有一整套的服务. 应用程序接口和协议, 是Java技术的整体解决方案. J2EE平台通过基于组件的应用程序模型大大简化了开发过程, 同时还支持任何分布式体系和多层次的应用开发. 随着越来越多的第三方对J2EE的支持和标准认证, J2EE已被广泛用来开发企业级应用软件. 中间件技术和组件软件. 它所支持的应用程序范围从传统的企业内联网的客户一服务器应用程序, 到Internet上的电子商务Web站点. 在当时的美国, J2EE的应用可以说是如火如荼, 而在中国, 这方面却平静得多. 鉴于这种情况, 作者根据美国近一二年的IT人才市场的情况, 并且根据IT的发展趋势以及美国和中国进行的认证考试, 选择编写一本介绍J2EE的学习用书.
在本书的翻译过程中, 自始至终得到谢小乐先生的大力帮助, 使本书增色不少. 严格地说, 本书还不完全都是我们翻译的, 谢小乐先生既精通中文又精通英文, 本书的第1章和最后1章的一些重要部分, 包括前言都是他自己用中文书写的. 他依然保持着非凡的中文文采. 此外, 在我们翻译之后, 谢小乐先生还对每个章节都进行了仔细的核对和修改. 他在专业词汇的翻译上把握得很严. 很准. 仅举一例, 对于“home interface”一词, 国内现有的书籍几乎都把它翻译成“本地接口”, 这也可能是有的译者把它与“远程接口”(remote interface)相对应, 但谢小乐先生认为, 这个接口与“本地”的概念没有多大联系, 最后商定把它翻译成“引导接口”. 可以这样说, 这本书积累了谢小乐先生10多年来在业界的经验. 如果没有他的孜孜不倦的努力, 该书可能远远达不到现在这个程度, 所以这本书倾注了谢小乐先生的大量心血, 凝聚着他对养育过他的这块土地的无限热爱. 在翻译过程中, 译者常常有这样的感慨:在美国华人中, 不乏有大量学术界的精英, 同时在业界也有像谢小乐先生这样的佼佼者, 而后者对于中国的IT行业的发展更能起着直接的带动作用.
在本书的翻译过程中还曾得到白胜猛. 邓炜. 田明. 唐晓军. 吴燕明. 朱文的大力帮助, 在此一并表示感谢.
由于本书的涉及面广, 许多术语尚无固定的译法, 因此翻译难度较大. 在翻译的过程中, 虽然有谢小乐先生的帮助, 但他毕竟生活在另一个环境, 对中文术语接触不是很多, 所以, 译文中难免有不妥之处, 译文中的错误理当由译者负责, 在此, 真诚希望同行和读者朋友们不吝赐教.
随着我国进入WTO, 进一步加快软件产业国际化步伐已经成为必然趋势. J2EE在我国的广泛普及和深入应用, 将是我国软件产业发展的重要步骤. 本书的作者和译者都相信我国的IT行业发展的高峰时期还未到来, 我们都期待本书能够为中国的计算机教育和软件产业的繁荣尽一些微薄之力.
朱福喜
2003年夏于武昌珞珈山
谢小乐(Henry Xie), 美籍华人. 美国纽约州立大学计算机科学硕士. 曾任IBM. UPS. 纽约电话公司. 纽约大都会保险公司. 美国信托投资银行. 美国花旗银行等著名公司的资深软件咨询顾问. 10多年来一直在美国工业界的前沿从事软件应用. 开发. 设计和咨询的实际工作, 历经程序员. 软件工程师, 到资深软件咨询顾问. 资深软件分析师,
无封面