首页>参考读物>计算机科学与技术>综合

J2EE 技术内幕
作者 : (美)Joseph J.Bambara Paul R.Allen等
译者 : 刘堃 等
出版日期 : 2002-06-01
ISBN : 7-111-10200-2
定价 : 65.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 600
开本 : 16开
原书名 : J2EE Unleashed
原出版社:
属性分类: 店面
包含CD :
绝版 : 已绝版
图书简介

本书从Java技术的背景和企业系统开发过程开始谈起,然后着眼于J2EE应用开发中需要做的工作,并谈到了一些关键技术。包括Java命名和目录接口、轻型目录访问协议、Java数据库连接、Java服务器端小程序(servlet)、Java服务器页面(JSP)、模型-视图-控制器(MVC)和企业JavaBeans(EJB)。然后又论述了J2EE应用的专用组件,主要集中在JavaMail、Java消息服务(JMS)和可扩展标记语言(XML)。最后还讨论了启用和部署程序所涉及的许多问题。 全书包括19章及三个附录,内容非常全面实用,是企业构建基于Web的应用和分布式应用时非常宝贵的参考资源。

图书前言

使用J2EE开发应用程序同开发其他类型的应用程序非常相似,但却有自己独特的优势。相似是因为开发过程中的迭代步骤是相同的;真正的优势是指J2EE提供了过程标准,就像数据库标准SQL一样。 J2EE标志着技术成为标准的时刻。同数据库开发中的SQL一样,软件开发供应商大多支持J2EE作为开发企业应用程序的标准。 本书讨论范围 本书的作者都是纽约金融部门计算机解决方案供应商的顾问,平均有12年的开发经验。随着技术发展,我们需要不断汲取新技术,并应用之。 在本书中,我们尝试在多层面上讨论J2EE,为使用J2EE构建基于Web和分布式企业系统提供操作性很强的指导。 本书的组织结构 本书从Java技术的背景和企业系统开发过程开始谈起。然后着眼于J2EE应用开发中需要做的工作,并谈到了一些关键技术,包括Java命名和目录接口(JNDI, Java Naming and Directory Interface)、轻型目录访问协议(LDAP,Lightweight Directory Access Protocol)、Java数据库连接(JDBC,Java Database Connectivity)、Java服务器端小程序(Java Servlet)、Java服务器页面 (JSP,JavaServer Pages)、模型-视图-控制器(MVC, Model-View-Controller)和企业JavaBeans(EJB)。然后又论述了J2EE应用的专用组件,主要集中在JavaMail、Java消息服务(JMS,Java Message Service)和可扩展标记语言(XML,eXtensible Markup Language)。最后几章讨论了启用和部署程序所涉及的许多问题。附录中包含了支持本书内容的参考资料(包括配置本书使用的商业和范例软件的说明),并提供了其他参考信息以扩展所学内容。每章内容概述如下: 第1章为“Java、分布式计算和J2EE”。从Java的背景谈起,谈到了当前Web应用开发的需求,也提到了J2EE规范和认证考试,这些可以验证供应商平台的兼容性。本章概要讨论了J2EE应用程序的打包方式,介绍了本书后面章节要研究的范例应用程序。 第2章为“J2EE应用设计和开发”。从J2EE结构总体开始谈起,进行了开发方法和过程的分析。本章讨论了开发环境,其中包括当前可用的各种集成开发环境(IDE,Integrated Development Environment)。本章还讨论了J2EE应用程序安全方面的问题,以及在设计、创建、组装和部署J2EE应用程序时需要的各种角色。 第3章为“设计J2EE应用”。首先讨论了建模工具的历史,其中建模工具包括数据库、过程和对象建模工具。然后解释了建模的重要性,以及建模和Java如何完美结合。本章着眼于如何从建模中生成EJB和其他类型的类,还解释了范例应用程序中使用的模型。 第4章为“构建J2EE应用程序的任务列表”。任务列表可以用在J2EE开发项目的起始阶段。本章包含了建立对数据库的访问,以及开发数据定义语言 (DDL,Data Definition Language)和数据操作语言(DML,Data Manipulation Language)的各个步骤。还包含了构建应用程序的业务逻辑和数据库访问的各个步骤,包括工具类、会话bean和实体bean。它还包含导航和应用程序流的映射,例如Struts、XML文件、servlet和JSP页面的使用。 第5章为“建立资源访问:JNDI和LDAP”。描述了普通的命名服务,重点讨论了Java命名和目录接口。本章讨论了JNDI的结构和接口,解释并举例演示了分布式应用程序的组件如何使用JNDI相互定位。另外,本章还介绍了目录服务,详细讨论了轻型目录访问协议。 第6章为“建立数据访问:JDBC”。解释了Java数据库连接技术,这是Java平台不可分割的一部分。本章根据Core程序包讨论了JDBC,包括驱动程序类型、数据库连接、处理查询结果、把SQL类型映射到Java,以及获取数据库的相关信息。还讨论了JDBC 2.0可选程序包API,包括使用JNDI的数据库命名机制、连接池、分布式事务、数据集(RowSet)和高级数据类型。还介绍了在SilverStream应用服务器中使用JDBC的代码范例,包括SilverStream连接池,以及在SilverStream应用服务器中从会话bean访问JDBC。 第7章为“建立控制流:servlet”。论述了Java Servlet。对构建交互式Web应用来说,Java servlet是当前最流行的选择。本章介绍了Java Servlet,讨论了对于企业Web应用开发和部署来说,servlet在J2EE框架中所处的角色。本章介绍了Servlet API,集中讨论如何构建Java Servlet来产生HTTP请求的响应。 第8章为“Java服务器页面:介绍”。介绍了Java服务器页面,从解释它们的含义和所处结构开始,覆盖了可以使用JSP的各种模型,包括模型1和模型2。并结合Java服务器页面关联的视图部分讨论了模型-视图-控制器结构。本章还把JSP同Java servlet做了一番比较。 第9章为“Java服务器页面:使用标签库进行实际开发”。讨论了JSP页面的语法,包括对象作用域、隐含创建的对象、注释、声明、表达式、脚本和指令。本章包含创建JSP的各个步骤,包括如何使用JavaBean组件。还讨论了异常处理和HTML表单处理,最后讨论了标签库,其中标签库封装了可以在许多页面上重复使用的动作。 第10章为“为应用构建用户界面”。描述了本书使用的范例程序的用户界面部分。本章还提供了与模型-视图-控制器相关的其他信息,以及在Struts标签库中的实现方法。 第11章为“企业JavaBeans:介绍”。从企业JavaBeans和分布式程序设计开始,演示了EJB如何紧密结合到分布式计算结构中,以及如何把对象组织成合适的程序包层次结构。本章介绍了EJB容器、EJB会话bean、EJB 实体bean和EJB消息驱动bean。讨论了EJB的各个属性,包括持久性、状态和事务能力。本章还提及在EJB的创建和部署中涉及的各种角色(开发者、组装者和部署者)。 第12章为“企业JavaBeans:构建会话bean”。集中讨论了构建EJB会话bean中需要的步骤和问题,其中包括会话bean的有状态和无状态实现之间的比较。本章引导读者学习bean的创建和相关的Home和Remote接口。还提供了调用会话bean的范例代码。 第13章为“企业JavaBeans:构建实体bean”。讨论了构建实体bean过程中涉及的步骤和问题。其中包含定义实体bean、创建主关键字类、创建实体bean类、实现Home和Remote接口,以及实现实体bean的方法。本章还比较了bean管理持久性(BMP,bean-managed persistence)与容器管理持久性(CMP,container-managed persistence)之间的区别,讨论了实体bean的打包和部署。 第14章为“使用电子邮件传递信息:JavaMail”。在讨论JavaMail API的细节和主要功能之前,概述了普通的信息传递机制,论述了JavaMail的结构,以及发送和接收邮件需要用到的主要类。在此过程中,本章还讨论了服务供应商、Java启动框架(JAF,Java Activation Framework),以及Message和MimeMessage对象。 第15章为“应用间的消息通信:Java消息服务”。解释了Java消息服务(JMS,Java Message Service),这是为Java开发人员提供的API,可以用来创建、发送、接收和读取企业信息传递系统的消息。本章讨论了消息机制的基础,以及用来生成和销毁消息需要的JMS组件,还提供了许多点对点(point-to -point)和发布/订阅(publisher/ subscribe)JMS应用程序的真实范例。 第16章为“使用XML进行数据交换”。讨论了可扩展标记语言的基本原理,包括XML文档的结构、解析后的数据、处理指令、文档类型定义(DTD,Document Type Definition)、模式,以及使用样式表来显示XML数据。还讨论了文档对象模型 (DOM,Document Object Model)、XML简化API(SAX, Simple API for XML),以及这两种格式的解析器。 第17章为“验证应用”。讨论了测试的基本原理,包括问题的判断方法和解决方案,查找问题时应该考虑到的方面,以及一些可以用来测试软件的工具。 第18章为“执行应用”。讨论了应用程序的性能和调整问题,从执行调整的准备阶段开始,包括了诊断和修复性能问题指南,还为Java Servlet、JSP和EJB提供了一些提高性能的提示。还讨论了影响Java性能的因素,以及应该避免使用哪些Java语法。最后讨论了数据库监控和调整工具的范例。 第19章为“部署应用”。讨论了把J2EE应用程序部署到J2EE应用服务器的各个步骤。其中讨论了Java的WORA观点,并讨论了全部存档文件类型,包括JAR、WAR、CAR和EAR。还讨论了XML部署描述符和XML部署计划,这两个方面被用来定义资源引用和XML部署计划,其中XML部署计划被用于解析资源引用。并介绍了部署J2EE应用程序的工具,比较了当前部分J2EE应用服务器。 附录A为“示例应用的文档”。提供了本书使用的范例程序的信息和文档。 附录B为“相关工具”。包含了第三方软件供应商和相关工具的信息。 附录C为“快速参考资料”。可以作为参考指南,其中包括J2EE API参考、J2EE安装、命名规范和其他辅助资料。 告诉我们你的想法 作为本书的读者,你是我们最重要的批评家和评论员。我们重视你的建议,并企盼得知我们的优点、需要改善的地方、读者期望阅读的图书领域,以及其他你希望传达给我们的任何观点。 来信时请确保注明了本书的标题和作者的名字,以及你的名字和电话号码或传真号码。我会仔细阅读你的评价,并同本书的作者和其他编辑分享这些内容。

作者简介

(美)Joseph J.Bambara Paul R.Allen等:暂无简介

译者简介

刘堃 等:暂无简介

译者序

Java 2平台的企业版(J2EE, Java 2 Enterprise Edition)定义了开发多层企业应用程序的标准。就像SQL一样,J2EE通过提供标准化、模块化的组件,并为这些组件提供完整的服务,以及自动处理应用程序行为的许多方面,简化了企业应用程序的开发。 Java 2平台的企业版具有标准Java 2的许多特色优势,例如“Write Once,Run Anywhere”(编写一次,随处运行)的可移植性、数据库访问的JDBC API、同现有企业资源进行交互的CORBA技术。在这个基础上,J2EE添加了对企业JavaBeans组件、Java Servlet API、JavaServer页面和XML技术的支持。J2EE标准包括完整的规范和一致性测试,确保应用程序可以运行在大多数支持J2EE的现有企业系统中。这种可移植性正是SQL成功的关键因素。 本书从Java技术的背景和企业系统开发过程开始谈起。然后着眼于J2EE应用开发中需要做的工作,并谈到了一些关键技术。最后几章讨论了启用和部署程序所涉及的许多问题。附录中包含了支持本书内容的参考资料(包括配置本书使用的商业和范例软件的说明),并提供了可以用来扩展本书内容的其他参考信息。在本书中,作者尝试在多层面上讨论J2EE,为使用J2EE构建基于Web的和分布式企业系统提供操作性很强的指导。本书的作者都是纽约金融部门计算机解决方案供应商的顾问,平均有12年的开发经验。从根本上来说,本书是非常实用的,是企业构建基于Web的应用和分布式应用时非常宝贵的参考资源! 现在,我们很荣幸能够有机会承担本书的翻译工作。在翻译过程中,我们经常为一句话、一个术语进行反复的讨论,到处查找资料,力图使本书的翻译能正确、贴切地反映原文的意思,同时注意使句子、段落符合中国人的语言习惯。我们真挚地希望读者能够从本书中有所收获,这是作者的初衷,也是我们的愿望! 本书由刘等组织翻译,万方工作室的全体同仁都参加了本书的翻译、校正和输入等工作。具体参加本书翻译、录排、校对工作的其他人员为:刘、潘德宏、田蕴哲、丁天、牛志奇、王小将、刘砚、黄建春、刘胜利、蒋雯丽、葛丽、罗贤锋、罗天浩、王若宾、潘文凯、夏宣哲、李树玲、孙志楠、聂宛析、龚露娜、马志强、李秀芬、田野、牛献忠、金百湘、薛杰、叶欣哲、邓南燕、邢倩、王煜、李满军、刘思敏、钱凯、赵智策、江南、李昌、王霄、李林等。本书的出版是集体劳动的结晶,在此特别感谢万方工作室的全体工作人员。 由于时间仓促,且译者经验和水平有限,译文难免有不妥之处,恳请读者批评指正! 万方工作室 2002年1月

图书目录

第1章  Java、分布式计算和J2EE 1 1.1  Java背景知识 4 1.1.1  应用开发的各项能力 4 1.1.2  Java是应用开发的粘合剂 5 1.2  公司必须为网络经济进行改造 6 1.2.1  公司日益需要Internet来参与竞争 6 1.2.2  企业应用开发的挑战 7 1.3  Web结构的要求 9 1.3.1  速度的比较 9 1.3.2  服务有效性 10 1.3.3  连接到现有数据 10 1.3.4  扩展的用户概念:客户、职员和 合伙人 10 1.3.5  灵活的用户交互 10 1.3.6  灵活的事务组件模型 11 1.4  Web应用的生存周期 11 1.4.1  多个开发人员角色 11 1.4.2  迭代式开发 12 1.4.3  简化的结构和开发 13 1.4.4  方便地映射到应用功能 13 1.4.5  基于组件的结构 14 1.4.6  对客户端组件的支持 14 1.4.7  对事务逻辑组件的支持 15 1.5  J2EE API和认证 16 1.5.1  Java 2 平台企业版规范 17 1.5.2  J2EE兼容性测试套件 17 1.5.3  J2EE中的Sun BluePrints设计指南 18 1.5.4  将来的企业标准 18 1.6  XML和J2EE 18 1.6.1  为什么使用XML 19 1.6.2  电子数据交换和电子商务 19 1.6.3  电子数据交换 20 1.6.4  企业应用集成 20 1.6.5  软件开发和XML 20 1.6.6  XML技术和Java平台 21 1.6.7  Java 平台的XML技术标准扩展 21 1.7  J2EE应用的打包 22 1.8  本书研究的应用范例 22 1.9  小结 23 第2章  J2EE应用设计和开发 24 2.1  J2EE层次 24 2.1.1  客户层 25 2.1.2  表示层 25 2.1.3  业务逻辑层 25 2.1.4  数据层 26 2.2  J2EE应用组件 26 2.2.1  客户组件 26 2.2.2  Web组件 28 2.2.3  业务组件 28 2.3  J2EE结构 29 2.3.1  容器和服务 29 2.3.2  容器类型 30 2.4  开发的方法和过程 30 2.4.1  建模工具 31 2.4.2  开发工具 31 2.4.3  J2EE应用的内容 32 2.4.4  J2EE应用的开发阶段 33 2.5  范例应用程序简介 38 2.6  小结 38 第3章  设计J2EE应用 39 3.1  建模工具的历史 39 3.2  概况 39 3.3  设计应用 39 3.3.1  为什么创建模型 40 3.3.2  实体关系基础 41 3.3.3  CASE工具 43 3.3.4  逆向工程 44 3.3.5  实体建模 46 3.3.6  关系建模 47 3.3.7  支持的数据库 49 3.4  为Web应用建模 49 3.5  系统建模 51 3.6  统一建模语言 52 3.6.1  UML的目标和原则 53 3.6.2  规范和术语 53 3.7  为Web页面建模 56 3.7.1  表单 59 3.7.2  框架 59 3.8  EJB UML映射 59 3.8.1  Java社团应该遵循规范 60 3.8.2  将要开发的规范,以及它如何满足 当前的需求 60 3.9  工具支持 61 3.10  小结 61 第4章  构建J2EE应用程序的任务列表 62 4.1  完成前提任务 62 4.1.1  后勤前提条件 62 4.1.2  物理前提条件 64 4.2  设计数据库 65 4.2.1  确定应用实体 65 4.2.2  提炼每个实体和属性 66 4.2.3  确定关系 66 4.3  创建表和列 66 4.3.1  选择数据类型 67 4.3.2  创建关键字 68 4.3.3  完成数据库物理设计 68 4.3.4  估计数据库大小 69 4.3.5  建立数据库开发环境 69 4.4  定义应用程序 70 4.5  创建后端接口 71 4.5.1  初始数据的加载 71 4.5.2  创建EJB类和数据库存储过程 72 4.5.3  数据库调整和修复的批处理工具 72 4.5.4  备份和恢复的批处理工具 72 4.6  创建界面 72 4.6.1  选择应用的用户界面风格 73 4.6.2  为界面风格设置TAGLIB类库 73 4.7  构建页面 74 4.7.1  确定页面类型 74 4.7.2  为页面或子页面添加控件 75 4.7.3  设计菜单交互动作 76 4.8  创建数据访问对象 76 4.9  验证代码 76 4.9.1  决定使用调试器的时机 76 4.9.2  选择断点代码 77 4.10  提炼代码 77 4.11  创建可执行程序 77 4.12  小结 78 第5章  建立资源访问:JNDI和LDAP 79 5.1  命名和目录服务 79 5.2  什么是JNDI 79 5.3  寻找应用范例资源 80 5.3.1  JNDI的好处 80 5.3.2  JNDI和J2EE 80 5.3.3  JNDI服务提供者 81 5.4  JNDI结构 82 5.4.1  JNDI程序包 83 5.4.2  命名 83 5.4.3  上下文 83 5.4.4  命名空间 84 5.5  JNDI操作 85 5.6  轻型目录访问协议 85 5.7  JNDI/LDAP实用范例 86 5.8  小结 88 第6章  建立数据访问:JDBC 89 6.1  介绍 89 6.1.1  什么是JDBC 90 6.1.2  JDBC的好处 90 6.2  JDBC结构:API和驱动 91 6.3  JDBC API 93 6.4  获得和更新数据 97 6.4.1  语句 97 6.4.2  ResultSet 100 6.5  SQL-to-Java 数据类型 101 6.5.1  处理Null 102 6.5.2  存储过程 102 6.6  JDBC异常类型 103 6.6.1  SQLException 103 6.6.2  SQLWarning 104 6.6.3  DataTruncation警告 104 6.7  元数据 104 6.7.1  ResultSetMetaData对象 104 6.7.2  DatabaseMetaData接口 105 6.8  可滚动的结果集 105 6.8.1  可滚动结果集方法 106 6.8.2  可滚动结果集范例 106 6.8.3  可更新结果集 107 6.8.4  创建可更新结果集 107 6.9  更新行 107 6.9.1  删除行 108 6.9.2  插入行 108 6.10  事务支持 109 6.11  批处理语句 109 6.12  JDBC 2.1新数据类型 111 6.12.1  BLOB和CLOB 111 6.12.2  ARRAY 112 6.12.3  STRUCT 113 6.12.4  REF 113 6.13  JDBC 2.0可选程序包API:javax.sql 113 6.13.1  使用JNDI进行数据库访问 113 6.13.2  连接池 114 6.13.3  分布式事务 115 6.13.4  JDBC RowSets 115 6.14  范例研究:SilverStream应用服务器 115 6.14.1  SilverStream的数据库连接 115 6.14.2  SilverStream内部的JDBC 116 6.14.3  从SilverStream数据库中的会话bean 访问JDBC 117 6.14.4  从会话bean访问JDBC 118 6.14.5  在会话bean中定义资源引用查找 118 6.14.6  建立JDBC调用 118 6.14.7  建立连接 119 6.14.8  建立、编译和执行SQL Select 语句 119 6.14.9  创建环境入口 120 6.14.10  把资源引用映射为SilverStream 数据库 120 6.15  小结 121 第7章  建立控制流:servlet 122 7.1  什么是servlet 122 7.1.1  第一代—CGI 123 7.1.2  第二代—ISAPI/NSAPI 123 7.1.3  Java替代品—servlet 124 7.2  servlet的优点 124 7.3  在MVC和应用范例中用做控制器 124 7.4  基本HTTP 125 7.5  servlet容器 127 7.6  Servlet API 127 7.7  服务方法细节 128 7.7.1  把数据传递给客户端 128 7.7.2  设置MIME类型 129 7.8  HTML客户 130 7.8.1  表单 130 7.8.2  经常使用的

标签属性 130 7.9  servlet生命周期 132 7.9.1  初始化 133 7.9.2  服务 133 7.9.3  销毁 133 7.10  ServletContext 134 7.11  HTTP请求报头 134 7.11.1  参数 134 7.11.2  内容 134 7.11.3  连接 135 7.11.4  Cookie 137 7.11.5  报头 137 7.12  HTTP响应报头 140 7.13  会话管理 141 7.13.1  隐藏表单字段 141 7.13.2  改写URL 142 7.13.3  持久Cookie 142 7.13.4  会话跟踪API 144 7.14  发送请求 145 7.15  使用JDBC的servlet 146 7.16  Web应用 149 7.16.1  Web存档 149 7.16.2  目录结构 149 7.16.3  部署描述符/映射到servlet的请求 150 7.16.4  Multi-MIME类型 152 7.17  在SilverStream应用服务器中使用 servlet 152 7.18  Servlet 2.3 API 157 7.19  小结 157 第8章  Java服务器页面:介绍 158 8.1  JSP页面的特性 160 8.1.1  服务器端Java资源的高效利用 160 8.1.2  Web开发、部署和维护 160 8.1.3  可重用的组件 161 8.1.4  分离业务逻辑和表示 161 8.1.5  大型开发团体和广泛的支持 161 8.1.6  平台无关性 161 8.1.7  使用标签的下一代页面开发 161 8.2  JSP页面的各个组成部分 161 8.2.1  JSP指令 162 8.2.2  JSP标签 162 8.2.3  脚本元素 163 8.3  开发和部署JSP页面 163 8.3.1  编写JSP页面 163 8.3.2  JSP 1.1页面范例 166 8.4  JSP结构 169 8.4.1  简单的应用 169 8.4.2  成熟的结构:重定向请求 172 8.4.3  模型-视图-控制器设计 175 8.5  结论:JSP页面是企业Java解决方案中很 重要的组成部分 179 8.5.1  JSP页面:超越servlet的优势 180 8.5.2  处理现有的servlet 180 第9章  Java服务器页面:使用标签库进行 实际开发 181 9.1  JSP语法 181 9.1.1  JSP注释 181 9.1.2  HTML注释 181 9.1.3  隐藏注释 182 9.1.4  JSP指令 182 9.1.5  JSP脚本元素 187 9.1.6  JSP动作 188 9.1.7  对象作用域 198 9.1.8  隐含对象 198 9.1.9  错误处理 199 9.2  标签库 199 9.2.1  声明标签库 199 9.2.2  标签处理器 200 9.2.3  创建公司横幅定制标签 202 9.3  小结 204 第10章  为应用构建用户界面 205 10.1  模型-视图-控制器示例 205 10.1.1  优势 206 10.1.2  缺点 207 10.2  Struts框架 207 10.2.1  安装Struts 207 10.2.2  必备软件 208 10.2.3  Struts框架概括 208 10.2.4  JavaBeans和作用域 213 10.2.5  构建模型组件 214 10.2.6  构建视图组件 215 10.2.7  构建控制器组件 223 10.2.8  访问关系数据库 230 10.3  小结 233 第11章  企业JavaBeans:介绍 234 11.1  企业JavaBeans概述 234 11.2  分布式程序设计概括 236 11.3  EJB框架 236 11.4  会话和实体bean 238 11.4.1  会话bean 238 11.4.2  实体bean 238 11.4.3  使用会话bean封装实体bean 239 11.4.4  bean相关性 239 11.5  bean的属性 239 11.5.1  无状态bean 239 11.5.2  有状态bean 240 11.6  bean的各个组成部分 240 11.6.1  Home接口 240 11.6.2  EJBObject接口 240 11.6.3  部署描述符 240 11.6.4  SessionContext和EntityContext 对象 241 11.6.5  相关和细粒度对象 241 11.7  容器管理持久性和bean管理持久性 241 11.7.1  容器管理持久性 241 11.7.2  bean管理持久性 242 11.8  企业JavaBeans的生命周期 242 11.9  Java消息服务和消息驱动bean 243 11.9.1  Java消息服务 243 11.9.2  消息驱动bean 244 11.10  分布式程序设计服务 246 11.10.1  命名和注册 246 11.10.2  远程方法调用 246 11.10.3  协议 246 11.11  公共对象请求代理体系结构和远程 方法调用 246 11.11.1  CORBA 247 11.11.2  Java/RMI 247 11.12  事务和事务管理 248 11.12.1  分布式事务 248 11.12.2  多事务 249 11.12.3  Java事务服务 249 11.12.4  Java事务API 249 11.12.5  实体bean方法和事务属性 249 11.12.6  会话bean方法和事务属性 249 11.13  安全性 250 11.14  部署 250 11.14.1  部署描述符 250 11.14.2  程序包层次图 250 11.15  EJB开发中的个人角色 251 11.15.1  实体bean开发人员 251 11.15.2  bean编写人员 251 11.15.3  应用组装人员 252 11.15.4  bean部署人员 252 11.16  合作角色 252 11.16.1  组件提供者 252 11.16.2  应用服务器提供者 252 11.16.3  EJB容器提供者 253 11.17  小结 253 第12章  企业JavaBeans:构建会话bean 254 12.1  创建会话bean 254 12.1.1  无状态和有状态会话bean 254 12.1.2  定义会话bean类 255 12.1.3  会话bean和继承 255 12.1.4  会话bean接口 255 12.1.5  会话bean类方法 260 12.1.6  范例会话bean组件代码 261 12.1.7  存根、层次和对象范例代码 267 12.2  打包和部署会话bean 294 12.2.1  JAR内容 294 12.2.2  部署 296 12.3  修改bean代码 296 12.4  从客户端查找会话bean 296 12.4.1  InitialContext 296 12.4.2  类型限制 297 12.4.3  查找对象和接口:Java命名和目录 接口 297 12.4.4  使用EJBHome创建实例 298 12.5  从客户端调用会话bean 298 12.5.1  为调用EJB编写客户端 298 12.5.2  不同类型的客户端 298 12.6  小结 300 第13章  企业JavaBeans:构建实体bean 301 13.1  定义实体bean 301 13.1.1  实体bean的用途 302 13.1.2  实体bean生命周期状态 302 13.2  容器和bean管理持久性 303 13.2.1  bean管理持久性 304 13.2.2  容器管理持久性 304 13.3  CMP实体bean的剖析 305 13.3.1  bean编写人员创建的组件 305 13.3.2  容器创建的对象 307 13.4  开发实体bean 308 13.4.1  第一步—向数据库安装数据源 308 13.4.2  第二步—开发主关键字类 309 13.4.3  第三步—开发实体bean类 309 13.4.4  第四步—定义主接口或本地主 接口 312 13.4.5  第五步—定义本地或远程接口 312 13.4.6  第六步—定义部署描述符 313 13.4.7  第七步—使用容器提供的工具 进行部署 314 13.4.8  第八步—创建客户端应用程序 314 13.5  深入了解实体bean的开发 314 13.5.1  主关键字 315 13.5.2  映射到单独的字段 315 13.5.3  EntityBean类和生命周期事件方法 316 13.5.4  主接口和create()方法 318 13.5.5  主接口和finder()方法 319 13.5.6  主接口和remove()方法 320 13.5.7  主接口和getEJBMetaData()方法 320 13.5.8  远程接口 320 13.5.9  本地接口 320 13.6  EJB客户端 321 13.6.1  远程客户端 321 13.6.2  本地客户端 322 13.7  使用GUI工具配置、打包和部署实体 bean 322 13.7.1  集成、设置和打包实体bean 322 13.7.2  部署实体bean Jar文件 326 13.8  小结 326 第14章  使用电子邮件传递信息: JavaMail 327 14.1  一般的电子邮件通信 327 14.2  JavaMail的任务 328 14.3  提供者注册表 329 14.4  JavaMail结构和主要的类 330 14.4.1  Java活动框架 331 14.4.2  javax.mail.Session 331 14.4.3  javax.mail.Store 332 14.4.4  javax.mail.Folder 333 14.4.5  javax.mail.search 334 14.4.6  javax.mail.Address 336 14.4.7  javax.mail.internet.InternetAddress 336 14.4.8  javax.mail.Message 336 14.4.9  javax.mail.internet.MimeMessage 337 14.4.10  javax.mail.Transport 341 14.5  发送和接收消息 341 14.5.1  发送因特网消息 341 14.5.2  接收因特网消息 342 14.5.3  处理多部分消息 343 14.5.4  发送MimeMultipart消息 343 14.5.5  接收MimeMultipart消息 344 14.5.6  发送消息中的二进制数据 345 14.5.7  接收消息中的二进制数据 347 14.6  在Java服务器页面中使用JavaMail 348 14.6.1  简要指令 349 14.6.2  详细指令 352 14.6.3  代码解决方案 357 14.7  小结 359 第15章  应用间的消息通信:Java消息 服务 360 15.1  消息通信基础 360 15.1.1  消息 360 15.1.2  中间件 360 15.1.3  面向消息的中间件 361 15.1.4  通信模式 361 15.2  JMS的位置 362 15.2.1  应用中的JMS 362 15.2.2  JMS中的消息模型 363 15.2.3  处理异常 364 15.2.4  会话管理 365 15.2.5  消息 365 15.3  JMS组件 367 15.3.1  管理对象 367 15.3.2  接口类 367 15.4  生成和销毁消息 368 15.4.1  MessageProducer 368 15.4.2  MessageConsumer 368 15.4.3  MessageListener 369 15.4.4  MessageSelector 369 15.5  JMS范例 369 15.5.1  简单的点对点范例 369 15.5.2  简单的发布/订阅范例 372 15.5.3  点对点浏览范例 375 15.5.4  MessageListener范例 378 15.5.5  MessageSelector范例 382 15.5.6  队列和主题目的地维护范例 386 15.6  JMS实现和部署问题 390 15.6.1  还有其他什么需要实现的部分 390 15.6.2  部署 390 15.7  小结 391 第16章  使用XML进行数据交换 392 16.1  什么是XML 392 16.2  XML文档的结构 394 16.2.1  序言 394 16.2.2  实例部分 394 16.2.3  元素 394 16.2.4  标签 395 16.2.5  空元素 395 16.2.6  属性 395 16.2.7  实体 396 16.2.8  转义字符 397 16.3  未解析的数据 398 16.3.1  注释 398 16.3.2  CDATA 398 16.4  处理指令 399 16.4.1  字符引用 399 16.4.2  字符范围 399 16.4.3  空格 399 16.5  文档类型定义 400 16.6  XML模式 403 16.6.1  XML模式与DTD的比较 403 16.6.2  模式约束 404 16.6.3  XML模式的特性 404 16.6.4  模式词汇 405 16.6.5  模式范例 405 16.6.6  模式的未来 410 16.7  XML解析器 410 16.8  文档对象模型 411 16.8.1  DOM结构模型 411 16.8.2  内存管理 412 16.8.3  命名规范 413 16.8.4  DOM对象 413 16.9  XML简单API 413 16.10  XML输出 416 16.11  XSL 417 16.11.1  XSL转换 417 16.11.2  XSL格式对象 418 16.11.3  XML路径语言 418 16.11.4  XSLT命名空间 418 16.12  样式表结构 419 16.12.1  stylesheet元素 419 16.12.2  模板元素 422 16.13  应用样式表 422 16.14  XML链接语言 422 16.15  XML安全 424 16.15.1  XML关键管理规范 424 16.15.2  安全评估标记语言 424 16.15.3  XKMS和SAML的关系 424 16.16  小结 425 第17章  验证应用 426 17.1  Java和测试 426 17.2  用调试进行质量控制 428 17.3  调试技术 429 17.3.1  不靠主观判断进行测试 429 17.3.2  散散心,然后重新部署 429 17.3.3  如何使调试工作更加科学 429 17.3.4  语法错误 432 17.4  校正错误 432 17.4.1  改善可靠性 433 17.4.2  优秀调试器的重要性 434 17.5  测试和开发阶段 434 17.5.1  Alpha阶段 435 17.5.2  Beta阶段 435 17.5.3  FCS 435 17.6  测试方法和技术 436 17.6.1  单元测试 436 17.6.2  压力测试和海量数据生成 436 17.6.3  代码复杂性分析 436 17.6.4  基准/性能测试 436 17.6.5  稳定性测试 436 17.6.6  衰减测试 436 17.6.7  黑盒测试 436 17.6.8  白盒测试 436 17.6.9  可用性测试 436 17.6.10  跨平台测试 437 17.6.11  安全性测试 437 17.6.12  安装测试 437 17.6.13  中断测试 437 17.6.14  并行处理 437 17.6.15  测试覆盖分析 437 17.7  Web站点测试工具和站点管理工具 437 17.7.1  负载和性能测试工具 438 17.7.2  Java测试工具 445 17.7.3  链接检查工具 445 17.7.4  HTML确认器 446 17.7.5  Web功能/衰减测试工具 447 17.7.6  Web站点安全性测试工具 448 17.7.7  外部站点监控服务 449 17.7.8  Web站点管理工具 449 17.7.9  其他Web测试工具 450 17.8  小结 450 第18章  执行应用 452 18.1  概述 452 18.2  编写高性能应用 453 18.2.1  规模因素 453 18.2.2  性能规模 453 18.2.3  组件设计 454 18.2.4  环境因素 455 18.2.5  缩小网络流量 455 18.2.6  编码指南 455 18.2.7  池管理 456 18.2.8  J2EE组件性能 459 18.2.9  设计和性能 460 18.3  调整性能的准备工作 461 18.3.1  范围、目标和方法 461 18.3.2  负载测试 461 18.3.3  Profiler 462 18.4  诊断和解决问题指南 463 18.4.1  容易解决的问题 463 18.4.2  配置策略 463 18.4.3  改善applet下载速度 464 18.4.4  把图像打包成一个类文件 464 18.4.5  使用JAR文件 464 18.4.6  线程池 464 18.5  影响服务器性能的因素 465 18.5.1  中央处理单元 465 18.5.2  易失存储(内存) 465 18.5.3  永久存储(磁盘) 465 18.5.4  数据库性能 465 18.6  数据库监控和调整工具 467 18.6.1  ShowPlan(SQL Server)和Explain Plan(Oracle) 467 18.6.2  INDEX调整向导 467 18.6.3  Oracle调整包 467 18.6.4  Oracle SQL_TRACE 467 18.6.5  Optimizeit 467 18.7  小结 467 第19章  部署应用 469 19.1  Java的“编写一次,随处运行”承诺 469 19.2  组装过程 469 19.2.1  组装概述 469 19.2.2  组装应用和组件 470 19.3  部署过程 482 19.3.1  使用J2EE引用实现进行部署 482 19.3.2  使用SilverStream应用服务器进行 部署 486 19.3.3  使用BEA WebLogic服务器进行 部署 491 19.4  小结 518 附录A  示例应用的文档 519 附录B  相关工具 531 附录C  快速参考资料 564

教学资源推荐
作者: 李维勇 主编 杜亚杰 张以利 陈宇 参编
参考读物推荐
作者: 软考新大纲研究组 编著
作者: [美]乔安妮·罗德里格斯(Joanne Rodrigues) 著