首页>参考读物>计算机科学与技术>软件与程序设计

Java 企业级应用开发指南(原书第2版)
作者 : (美)Stephen Asbury, Scott R.Weiner
译者 : 王强 田原 王军 等
出版日期 : 2004-01-06
ISBN : 7-111-13298-X
定价 : 85.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 784
开本 : 16开
原书名 : Developing Java Enterprise Applications
原出版社: John Wiley & Sons,Inc.
属性分类: 店面
包含CD :
绝版 : 已绝版
图书简介

本书重点介绍当前企业级开发者所采用或者要采用的主要技术,包括用于连接数据库的JDBC、访问服务的Java命名和目录接口(JNDI)、定义文件格式的XML以及用于Java远程方法调用和分布式对象的RMI,在这些基础之上是Servlet、JSP、EJB、JMS和事务管理技术。  
  书中深入探讨了以下主题:
  ●EJB——包括新的消息驱动Bean和容器管理持久性(CMP)
  ●JNDI——包括命名和目录服务信息,以及如何通过JNDI访问这些信息
  ●Servlet与JSP——包括创建自定义标签库
  ●JMS——包括如何使用JMS创建应用程序以满足同步与异步需求等

图书特色

图书前言

Java语言已经成为新一代的企业级项目开发的首选语言。有很多因素促使Java作为一种编程语言(特别是作为大型开发项目的语言)而流行起来。我们希望本书的读者已经对Java编程语言有所熟悉,这样我们就不用为读者详细讲解Java的一些术语,而把重点放在Sun公司正在为Java开发者制定标准的企业级技术上。由于有了这些标准技术,因此许多公司更愿意把它们的新项目移到Java平台上来。
  我们编写本书的目的是为开发者和评估者提供一个从实际项目的角度,在技术层次上学习Java企业级开发技术的机会。当前涌现出许多Java技术,有的旧、有的新、有的刚刚出现,我们在这里只想简单介绍一下企业Java的库、框架以及工具。当然,这些技术还在不断增加,本书只是我们进行Java开发的基础。
  当前企业级开发者所采用或者要采用的主要技术包括:用于连接数据库的JDBC、访问服务的Java命名和目录接口(JNDI)、定义文件格式的XML以及用于Java远程方法调用和分布式对象的RMI。在这些基础之上是Servlet、JSP、EJB、JMS和事务管理技术。所有这些结合在一起就构成了具有丰富特性的开发Java应用的工具集。
  本书是修改后的第2版,包括了最新版本的企业库。当我们编写本书第1版的时候,这些技术都是单独处理的。现在它们统一称做J2EE或者Java 2企业版。在这次写作中,我们是针对J2EE 1.3版的,但许多技术现在已经是第2或第3版了,所以我们会在本书的下一个版本中修正它们。
  读者如果看过本书的第1版,就会惊喜地发现增加了许多新内容。我们不但更新了版本,而且还加入了对CORBA、XML、JavaMail等技术的讨论以及对JAAS和连接器的简要介绍。作为一个整体,我们认为读者会发现本书提供了很好的J2EE的入门材料,以及许多很好的可供学习甚至直接作为读者工作基础的示例程序。

本书的组织
  在本书当中,我们用若干章篇幅介绍一种技术。第1章讨论基本概念和一些技术对比;接下来的一章举例说明编程技术以及应用该技术所应掌握的概念,并提供了一些小的实例;再下一章使用这个技术来解决一个中等规模的问题,并提供一个较大的上下文环境,以便学习这种技术的作用以及如何应用它。这些章节为学习本书末尾两个大型实例提供了一个框架。这两个实例把本书的所有概念结合在一起,为我们的实际开发项目提供了基石。
  让我们看一个例子—Servlet是如何组织的:第6章介绍了作为服务器扩展技术的Servlet的基本概念;第7章详细讨论了如何创建一个Servlet,并给出了一些小例子;第8章举例说明了如何用Servlet来构建一个Web站点的搜索引擎。最后,在第33章中使用了大量的Servlet来搭建一个小的网上商店。这仅仅是有关Servlet技术的。RMI、JSP、EJB和Java消息服务等都有相似的组织结构。另外,我们有相应的章节介绍JDBC和JNDI技术,并讨论了使用它们所需掌握的技术。我们认为由于这两个技术会应用于许多领域,因此没有必要为它们提供一个大型实例。请注意,JDBC是一个很大的话题,如果读者关注于数据库的访问,我们建议阅读一本专门论述JDBC的书。
  根据这个思路,本书由以下章节组成:
  第1章介绍书中所讨论的所有技术并论述了构建这些技术的基本概念。
  第2章介绍Java数据库连接框架(JDBC),并描述这一重要类库的目标和基本体系结构。
  第3章通过JDBC访问数据库的基本技术。由于JDBC是一个很大的类库,因此我们不会对它进行完整的讨论,而只介绍用于访问数据的基本技术。这些技术被书中的很多例子使用。
  第4章介绍什么是Java命名和目录接口(JNDI),以及设计它的目的。讨论包括关于一般的命名和目录服务信息,以及JNDI如何访问它们。
  第5章描述用于开发访问命名和目录服务的Java程序的技术。在本书的后面使用这些技术来访问企业JavaBean和Java消息服务设施。
  第6章介绍Servlet并把它与其他Web服务器编程工具做比较。
  第7章描述编写Servlet和编写支持Servlet的类库的技术。该章也提供了一些Servlet实例,它们负责查询用户发来的数据、向用户发送数据,以及在Applet与Servlet之间进行通信。
  第8章是本书第一个比较大的例子,描述了一个基于Servlet的Web站点搜索引擎,同时也包含了用于为HTML页面建索引的代码。
  第9章介绍服务器端脚本的概念,并把JSP技术与其他技术做了对比。
  第10章举例说明了用于创建JSP的技术和语法。这些例子有助于理解每一个概念。
  第11章讨论定义了一个简单错误跟踪引擎的较大的JSP实例。这个引擎用JSP页面显示当前数据库中的错误并为用户提供了增加新错误的机制。
  第12章介绍分布式对象的概念并指出Java RMI技术为什么适合分布式对象领域的应用。
  第13章讨论通过RMI来创建分布式Java应用的技术和工具。该章的例子用于演示重要的技术点,比如类加载、对象传输以及发布式垃圾收集等技术。通过一个实例,对RMI对象激活框架也做了简单讨论。
  第14章描述了一个较大的RMI实例,这个例子演示了如何用一个服务器来实现对单机或网络上的文件进行加锁操作。
  第15章讲述CORBA的基本概念,以及Java程序员通过CORBA技术在不同程序的对象之间传递消息所使用的编程技术。该章对CORBA进行了简单的介绍,但不能把它当做一个完整的参考手册。
  第16章讲述一个较大的CORBA实例,这个例子演示了如何用一个服务器在网络上共享信息。在这种情况下,用户的事务被共享了,这就允许多个程序访问具有相同命名的一组事务。
  第17章讲述用于结合RMI和CORBA的技术。通过RMI-IIOP,我们的RMI应用程序可以与基于CORBA的应用程序相互交换信息。
  第18章讲述用于定义数据格式的强大技术—XML。该章的例子用于演示XML格式是如何定义的,以及Java程序如何读取XML定义的文件。
  第19章讲述一个大型的XML实例,这个例子把一个XML文件用于数据库备份的存储机制。实例中的一个程序把一个数据库中的数据存储到一个XML文件中,另外一个程序从这个文件中恢复数据库。
  第20章讲述EJB这一强大技术,在我们首次讨论EJB的章节中,列出了涉及创建企业JavaBean的许多角色并提倡把EJB作为一种开发技术。
  第21章讨论程序员创建企业JavaBean所用到的技术和类库。举例讲解诸如实体Bean和事务Bean等重要概念。企业JavaBean为开发服务器端代码提供了一个重要的标准。
  第22章给出了把一个EJB应用部署到应用服务器上的步骤。该章介绍了在部署EJB时所要考虑的基本问题。
  第23章描述了一个EJB应用,这个应用通过一个可配置的规则引擎来处理检查请求。这个例子既演示了EJB技术,也演示了如何用脚本来创建动态业务规则。
  第24章介绍了事务的概念,并讨论了用于管理它们的Java类库。
  第25章把事务同企业JavaBean结合起来并提供了用于演示一个企业JavaBean如何管理它的事务上下文的实例。
  第26章介绍了消息的概念,并讨论了Java消息服务是如何支持消息编程的。消息是定义网络通信的一个可选择的方法,并且开始应用到大型企业项目,尤其是多个分散系统的集成项目中。该章也定义了基本的消息类型,包括点对点和发布-订阅。
  第27章举例说明了创建使用JMS来发送点对点和发布-订阅类型消息的技术。该章为主要概念都提供了实例,这些实例包括发送和接收两种类型消息的应用程序。
  第28章定义并讲述了一个较大的JMS应用程序。该应用程序用消息创建了一个告警系统。用户可以定义告警并在适当的时候让它们自动触发。该章也包括了一个管理时间通知的有趣的类库。
  第29章介绍了JavaMail API并举例说明了如何在Java程序中收发邮件。示例程序包括发送文本、HTML和多部分邮件消息。
  第30章总结了其他三种技术:Java验证与授权服务器、XML传输以及连接器。其中,连接器是J2EE体系结构中的一部分但它超出了本书所讨论的范围。该章只是对这些技术做了简短的介绍,以便提供一个框架,从这个框架中,可以继续学习它们。
  第31章把书中的许多概念结合在一起并引入了两个大型实例来作为本书的结尾。在该章中,我们还讨论了构建J2EE应用的最佳途径,还包括了一小段关于分布式编程的介绍。
  第32章讨论了一个用XML来定义业务规则的框架和一个使用这些规则来处理JMS消息的EJB实现。
  第33章讨论了一个网上商店的实现。这个商店用JSP页面和Servlet来定义一个Web页面接口,用Servlet来管理查询和广告设置,还定义了一个Servlet来管理用户的购物车。这个Servlet与一个企业JavaBean协同工作来访问数据库中关于库存和信用卡的信息,用另外一个Servlet来创建库存报表。
  总之,我们讨论每一个技术的基本流程是:先介绍基本概念,然后详细讨论,最后给出一个实例。在全书的末尾,用两个大型的实例来把这些概念结合在一起。在例子中,我们力求做到讲解清晰,有实用价值,因此实例程序并不一定完整。

本书的读者对象
  本书为两类人所写:首先,技术评估者可以在介绍性章节中,从较高层次上了解某种技术。其次,实例章节可以清楚描述这些技术能完成什么工作。有经验的Java程序员在研究实例代码工作原理之前,可以通过编程章节来学习新的类库。这两类读者在将来的项目中,都应该利用本书所讲到的原则和方针。
  本书涉及很多主题。读者既可以顺序阅读,也可以跳读某些章节。如果读者计划阅读实例代码,就应具有包括线程编程在内的基本Java编程经验。如果读者使用过Java的网络类库,则有助于对分布式技术的理解(尽管这不是必需的)。

需要的工具以及随书光盘中的内容
  我们写作本书时,遇到的一个问题是企业级编程需要很多支持。特别是,JDBC需要一个供访问的数据库,JNDI需要特殊的服务提供者,Servlet和JSP页面需要有一个Web服务器,EJB需要一个容器,JMS也需要一个服务提供者。幸运的是,所有这些都包括在J2EE开发工具中的参考实现中了。这个工具(j2sdkee)称为Java 2软件开发工具企业版,它包含了一个可以运行JSP、Servlet和EJB的服务器。它也包括了一个JMS实现,甚至它还绑定了一个纯Java的关系型数据库—Cloudscape。
  所有的例子都建立在JDK 1.3的基础之上,所以读者需要下载JDK 1.3以及1.3版本的J2EE。尽管有新版本不断出现,但这些概念仍然是坚实的基础,我们希望本书对于1.4及以后的版本同样适用。另外,要记住一般标准类库与企业类库的出版时间会有所不同,所以读者有可能不用1.4版本的JDK而用1.3版本的J2EE工具。
  尽管我们在Windows NT和Windows 2000环境下测试了示例程序,但所有的例子都是纯Java的,它们可以很容易地运行于其他平台。有关本书例子最新的信息,请访问本书的Web站点:www.wiley.com/compbooks/asbury。读者也可以通过该站点向我们提出所遇到的问题,以便于让其他人都知道。

小结
  写作本书的目的是为企业级Java技术提供一个坚实的、例子丰富的入门读物。无论我们多么努力,也无法包括有关企业级开发的所有问题。我们希望读者通过本书来开始各自的Java企业开发。请让我们知道你们是如何做的以及希望在今后的书中看到什么内容,这样我们就可以继续为新技术提供出色的编程介绍。
  注意  有关J2EE以及本书的最新信息,请访问我们的Web站点http://sasbury. com/ejava_2。读者也可以在本书的附带光盘中找到一个到这个站点的链接。

作者简介

(美)Stephen Asbury, Scott R.Weiner:Stephen Asbury: Stephen Asbury 是《Developing Java Enterprise Applications》的作者之一,并著有《Enterprise Linux at Work》,还著有另外4本开发技术方面的图书。
Scott R.Weiner: Scott R.Weiner是MedAptus公司工程部的副总经理,他正领导一个项目组致力于为改善医疗工作的效率而构建最佳无线解决方案。Scott在高科技领域有超过15年的经验,他在技术领导者、项目管理、策略计划和软件开发方面有很深的背景。以前在Infinata公司期间,Scott是公司的CTO,还担任一个基于Web的、用于客户分析的CRM应用开发项目组的副总经理。他还是一位帮助公司确定技术方向的顾问。在这之前,他是Harrison & Troxell公司的董事,该公司是波士顿开发大型Web应用程序的咨询公司。Scott领导一个在商业实践和最佳技术方面的业界精英咨询团队。Scott也拥有自己的公司—Paradigm公司,并且他在NeXT计算机公司和BCI Boston公司都有很重要的地位。Scott已经编写了包括"Java 企业级应用开发指南(原书第2版)"在内的许多关于Java编程语言的书,并且拥有为ITT Hartford保险公司开发的推断引擎专利,这是他在NeXT公司工作时的成果。

译者简介

王强 田原 王军 等:暂无简介

译者序

随着企业级计算的发展,J2EE平台也越来越深入人心,它几乎成为了构建企业级应用的首选平台。当然,随着微软的.NET技术的发展和日益强大,人们在构建企业级应用的时候,有了更多的选择。但是,无论采用什么平台,我们在构建企业级应用时,所应考虑的问题都是一样的。本书就是从Java这个角度,介绍了用J2EE平台构建企业级应用所用到的各种技术,以及如何应用它们。
  本书的作者都曾经并且正在利用Java技术构建企业级应用。因此,本书的一大特色就是它的实践性很强。我们可以看到,本书在介绍基本Java技术的基础上,以大量的实例来说明如何利用这些Java技术来解决实际遇到的问题。作者并没有详细讲解Java各个类库的编程接口(API),而是着重介绍了如何把这些技术应用于实践。至于详细的编程接口以及技术规范,读者完全可以在理解这些技术的基础之上自学它们。
  正是由于本书的实践性很强,因此,本书在组织上也做了特别的安排:首先介绍技术本身,以及它们的应用场合;然后给出一个小型示例,最后给出一个比较实用的大型示例。本书所涉及的内容非常广泛,包括了J2EE平台的整个方面,读者可以直接阅读自己感兴趣的章节。
  本书特别适用于对J2EE体系结构有所了解,想马上开始基于此体系结构构建应用的技术人员。

图书目录

译者序
作者简介
前言
第1章  Java企业级开发简介 1
1.1  支持的概念 1
1.1.1  HTTP 1
1.1.2  Java 1
1.1.3  特定的服务器 2
1.1.4  基本企业设计 2
1.1.5  安全 3
1.2  企业技术 4
1.3  用Java创建一个企业级应用程序 5
1.4  小结 6
第2章  什么是JDBC 7
2.1  JDBC的目标 8
2.1.1  支持公共数据库标准 8
2.1.2  保持简单 9
2.2  JDBC体系结构 9
2.3  小结 11
第3章  JDBC编程基础 13
3.1  关于样本数据库 13
3.2  JDBC基础 15
3.3  一个简单的JDBC示例 16
3.4  连接到一个数据源 18
3.4.1  驱动程序类型 20
3.4.2  连接举例 21
3.5  检查一个数据源 24
3.6  访问数据库 27
3.7  获取数据 29
3.7.1  处理结果集 30
3.7.2  使用ResultSetMetaData 34
3.8  处理数据 38
3.8.1  PreparedStatement 38
3.8.2  管理事务 40
3.8.3  异常处理/SQL警告 41
3.9  高级特性 42
3.10  小结 44
第4章  什么是JNDI 45
4.1  术语 45
4.1.1  命名服务 45
4.1.2  目录服务 47
4.2  JNDI的目标 49
4.3  JNDI体系结构 49
4.4  小结 51
第5章  使用JNDI 53
5.1  关于示例的服务提供者 53
5.2  Naming包 54
5.2.1  访问一个上下文 54
5.2.2  对象绑定 63
5.2.3  存储Java对象为引用 67
5.3  目录包 72
5.3.1  检索对象 72
5.3.2  用SearchControls配置检索 81
5.3.3  修改属性 88
5.4  模式 90
5.5  异常处理 91
5.6  小结 93
第6章  什么是Servlet 95
6.1  服务器端编程技术 95
6.2  用CGI处理表单 96
6.3  用Servlet处理表单 100
6.3.1  创建一个Servlet 101
6.3.2  Servlet实例 102
6.3.3  运行Servlet 104
6.4  小结 104
第7章  Servlet编程 105
7.1  一个基本的Servlet 105
7.1.1  处理请求 107
7.1.2  SingleThreadModel 109
7.1.3  ServletRequest 109
7.1.4  ServletResponse 111
7.1.5  ServletConfig 112
7.1.6  ServletContext 113
7.1.7  GenericServlet 114
7.2  运行并管理Servlet 114
7.3  HTTP Servlet 119
7.3.1  HttpServletRequest 120
7.3.2  HttpServletResponse 126
7.3.3  HttpSession 131
7.3.4  cookie 136
7.4  多线程Servlet 139
7.5  Servlet和Applet 143
7.6  监听器 149
7.7  过滤器 150
7.8  设计Servlet 152
7.9  调试Servlet 154
7.10  性能调整 165
7.11  小结 173
第8章  一个基于Servlet的搜索引擎 175
8.1  HTMLSearchServlet 176
8.1.1  PathInfo和查询初始化 180
8.1.2  处理非查询请求 181
8.1.3  处理查询 182
8.2  IndexManager 186
8.3  SearchTester.html 191
8.4  小结 192
第9章  什么是服务器端脚本 193
9.1  基于Web的应用程序结构 193
9.2  JSP页面 195
9.2.1  JHTML 195
9.2.2  JSP 197
9.3  小结 200
第10章  创建JSP页面 201
10.1  JSP如何工作 201
10.1.1  何时使用JSP 204
10.1.2  三种主要技术 205
10.2  HTML中的Java—Scriptlet 205
10.2.1  一个简单Scriptlet 205
10.2.2  作用域 207
10.2.3  条件与循环 209
10.2.4  打印值 211
10.2.5  访问Servlet信息 212
10.3  控制页面属性 218
10.4  访问其他资源 219
10.4.1  包括其他JSP和Web页面 219
10.4.2  将用户转发到其他页面 220
10.4.3  包含Java插件 220
10.5  使用JavaBean扩展JSP 221
10.6  自定义标签库 225
10.6.1  编写标签处理程序 226
10.6.2  定义标签库 236
10.6.3  注册标签库 239
10.6.4  使用自定义标签 239
10.7  处理问题 240
10.7.1  中断 240
10.7.2  错误 242
10.8  集成JSP和Servlet 242
10.9  小结 246
第11章  JSP错误跟踪工具 247
11.1  基本概念和设计 247
11.2  创建数据库 248
11.3  index页面 251
11.4  错误提交页面 253
11.5  详细页面 262
11.6  检索页面 268
11.7  检索结果页面 271
11.8  测试错误跟踪系统 275
11.9  小结 276
第12章  分布式对象概览 277
12.1  分布式计算 277
12.2  分布式对象 278
12.2.1  创建一个解决方案 280
12.2.2  目前的解决方案 281
12.3  小结 284
第13章  Java RMI 简介 285
13.1  什么是RMI 285
13.1.1  客户端RMI 286
13.1.2  服务器上的RMI 288
13.1.3  连接客户机和服务器 290
13.1.4  创建一个RMI应用 292
13.2  一个简单的客户机/服务器应用 292
13.2.1  创建远程接口 293
13.2.2  服务器的实现 293
13.2.3  编译并安装服务器 295
13.2.4  客户机的实现 296
13.2.5  编译并运行客户机程序 297
13.3  双向传送消息的例子 298
13.3.1  实现MessageReceiver 298
13.3.2  更新MessageServer 298
13.3.3  更新server类 299
13.3.4  更新客户机 301
13.4  类的加载 305
13.5  垃圾收集 307
13.6  RMI和防火墙 310
13.7  远程对象激活 310
13.7.1  修改服务器 311
13.7.2  创建ConfigureServer 312
13.8  小结 314
第14章  一个网络文件锁定服务器 315
14.1  本地共享锁 315
14.1.1  FileLock接口 316
14.1.2  NetworkLockServer接口 317
14.1.3  NLS:锁定服务器 318
14.1.4  SharedFileLock:FileLock的实现 320
14.1.5  一个测试程序 324
14.2  全局锁 326
14.2.1  LockServer 326
14.2.2  GlobalFileLock 327
14.2.3  一个测试程序 331
14.3  小结 333
第15章  CORBA简介 335
15.1  CORBA基础 335
15.1.1  ORB 335
15.1.2  存根和框架 336
15.1.3  IIOP 336
15.1.4  IDL 337
15.1.5  命名服务 338
15.2  IDL基础 338
15.3  有关的包 340
15.4  一个简单的服务器 341
15.4.1  定义IDL 341
15.4.2  编译IDL 341
15.4.3  实现服务器类 342
15.4.4  创建服务器程序 343
15.4.5  运行服务器程序 345
15.5  一个简单的客户端 345
15.6  回调 347
15.7  继承 349
15.8  小结 351
第16章  一个CORBA会话管理器 353
16.1  基本设计 353
16.2  IDL 354
16.3  实现Session 355
16.4  实现SessionManager 357
16.5  会话服务器 359
16.6  两个客户程序 360
16.7  编译和运行 363
16.8  小结 363
第17章  RMI和IIOP 365
17.1  接口 366
17.2  服务器 367
17.3  一个RMI客户机 368
17.4  一个CORBA客户机 369
17.5  编译和运行 370
17.6  小结 372
第18章  在Java中使用XML 373
18.1  基本概念 373
18.1.1  文档类型定义 373
18.1.2  可扩展样式语言 374
18.1.3   XML 374
18.2  创建DTD 375
18.2.1 文档元素 376
18.2.2  组合元素以定义DTD 380
18.3  用Java读取XML 381
18.3.1  SAX 381
18.3.2  使用DOM 387
18.4  小结 394
第19章  XML数据备份工具 395
19.1  创建DTD 395
19.2  处理字符串编码 396
19.3  创建备份工具 400
19.4  创建恢复工具 407
19.5  小结 415
第20章  企业JavaBean是什么 417
20.1  角色 419
20.1.1  开发者 419
20.1.2  装配者 420
20.1.3  部署者 420
20.1.4  服务器提供商 420
20.1.5  容器提供商 421
20.1.6  管理员 422
20.2  何时使用EJB 422
20.3  EJB与CORBA 424
20.4  小结 425
第21章  EJB程序设计 427
21.1  EJB的环境 427
21.1.1  预期的服务 428
21.1.2  可能的服务 429
21.1.3  容器 430
21.1.4  Bean上下文 431
21.2  创建EJB 432
21.2.1  定义远程接口 433
21.2.2  定义本地接口 435
21.2.3  定义EJB 436
21.2.4  创建所需的附加类 438
21.2.5  定义必要的部署信息 438
21.2.6  编译Bean 439
21.2.7  为部署而打包Bean 439
21.2.8  部署Bean 439
21.3  创建会话Bean 439
21.3.1  无状态会话Bean的例子 441
21.3.2  有状态会话Bean的例子 443
21.3.3  使用会话Bean 446
21.3.4  有关会话Bean的其他例子 452
21.3.5  会话Bean的编程规则 457
21.3.6  客器的责任 458
21.3.7  优点和缺点 458
21.4  创建实体Bean 458
21.4.1  容器持久性的例子 462
21.4.2  EJB查询语言 465
21.4.3  由Bean来管理持久性的例子 467
21.4.4  使用实体Bean 471
21.4.5  实体Bean编程规则 474
21.4.6  容器的责任 475
21.4.7  优点和缺点 475
21.5  创建消息驱动Bean 475
21.6  元数据、句柄和异常 478
21.7  EJB与安全 481
21.8  小结 481
第22章  部署EJB 483
22.1  部署的概念 483
22.2  测试第21章的例子 490
22.2.1  配置由容器管理持久性的Bean 491
22.2.2  配置消息驱动Bean 492
22.2.3  运行客户端 494
22.3  小结 494
第23章  企业JavaBean业务规则引擎 495
23.1  规则引擎 496
23.1.1  一个规则示例 497
23.1.2  一个动作示例 498
23.1.3  解析器 499
23.1.4  一个示例脚本 500
23.1.5  使用示例脚本 501
23.1.6  处理标签 503
23.2  审查请求实例 512
23.2.1  接口:CheckRequest 512
23.2.2  本地接口:CheckRequestHome 512
23.2.3  Bean:CheckRequest 512
23.2.4  IdentityRule:一个自定义规则 516
23.2.5  IdentityRuleHandler:一个自定义处理程序 517
23.2.6  LogRequestAction:一个自定义动作 518
23.2.7  一个规则的脚本例子 519
23.2.8  一个动作脚本的例子 519
23.2.9  一个客户端的例子 520
23.3  部署示例 522
23.4  小结 522
第24章  事务、JTA和JTS 523
24.1  Java中的事务 526
24.2  小结 527
第25章  在企业JavaBean中使用事务 529
25.1  事务选项 529
25.1.1  隔离级别 532
25.1.2  由Bean管理的事务 533
25.2  一个用于测试事务的例子 536
25.3  重入Bean 545
25.4  小结 546
第26章  什么是消息机制和Java消息服务 547
26.1  消息域 549
26.2  消息机制的应用 550
26.3  Java消息服务 551
26.4  小结 551
第27章  用Java消息服务编程 553
27.1  JMS基础 553
27.1.1  目的地 554
27.1.2  连接工厂 554
27.1.3  JMS和JNDI:被管理的对象 554
27.1.4  连接 555
27.1.5  会话 556
27.1.6  消息监听器 558
27.1.7  消息生产者 558
27.1.8  消息消费者 559
27.1.9  消息 561
27.1.10  Message的子类 564
27.1.11  消息选择器 565
27.1.12  JMS编程的基本步骤 566
27.2  点对点消息机制 567
27.2.1  队列的连接工厂 567
27.2.2  队列连接 568
27.2.3  队列会话 568
27.2.4  队列发送者 569
27.2.5  队列接收者 577
27.2.6  工具类:QueueRequestor 590
27.3  基于主题的发布-订阅消息机制 591
27.3.1  主题连接工厂 592
27.3.2  主题连接 592
27.3.3  主题会话 593
27.3.4  主题发布者 594
27.3.5  主题的订阅者 600
27.3.6  工具类:TopicRequestor 600
27.4  分布式事务与JMS提供者 600
27.5  小结 601
第28章  一个基于JMS的告警系统 603
28.1  告警 604
28.2  AlarmServer(告警服务器) 607
28.3  AlarmConfig 621
28.4  AlarmDaemon 623
28.5  小结 624
第29章  JavaMail简介 625
29.1  Java激活框架 625
29.2  JavaMail的基本概念 627
29.3  发送邮件 630
29.3.1  发送非文本类型的邮件 634
29.3.2  发送多部分消息 636
29.4  接收邮件 638
29.5  小结 640
第30章  其他J2EE技术 643
30.1  连接器 643
30.2  安全 645
30.3  转换 646
30.4  小结 649
第31章  J2EE体系结构指南 651
31.1  简介 651
31.2  两个例子 653
31.2.1  消息医院 654
31.2.2  在线商店 654
31.3  开发指南 656
31.4  来自这一领域的教训 659
31.5  有关分布式计算的八个谬论 661
31.5.1  谬论1:网络是可靠的 662
31.5.2  谬论2:响应时间是零 662
31.5.3  谬论3:带宽是无限的 664
31.5.4  谬论4:网络是安全的 666
31.5.5  谬论5:拓扑结构不会改变 666
31.5.6  谬论6:只有一个管理人员 666
31.5.7  谬论7:传输代价是零 667
31.5.8  谬论8:网络是同构的 667
31.6  小结 667
第32章  消息医院 669
32.1  基本设计 669
32.2  新的规则引擎 670
32.2.1  规则(Rule) 671
32.2.2  动作(Action) 671
32.2.3  其他标准类 672
32.2.4  四个标准规则 677
32.2.5  文件格式 678
32.2.6  解析器 680
32.3  程序包hospitalactions 689
32.4  程序包monitoractions 692
32.5  HospitalBean 698
32.6  安装HospitalBean 701
32.7  对消息医院进行测试 702
32.8  小结 706
第33章  一个四层结构的在线商店 707
33.1  基本设计 707
33.2  ShoppingCartBean 711
33.2.1  ShoppingCart 712
33.2.2  ShoppingCartHome 713
33.2.3  ShoppingCartBean 714
33.3  JSP和HTML 725
33.4  Servlet 738
33.4.1  AdLinkRotator 738
33.4.2  HTMLSearchServlet 743
33.4.3  ShoppingCartServlet 743
33.4.4  InventoryServlet 762
33.5  编译与运行 766
33.6  小结 767
附录A  本书光盘内容的介绍 769

教学资源推荐
作者: (美)Y.Daniel Liang 著 阿姆斯特朗亚特兰大州立大学
参考读物推荐
作者: (美)Cameron Wakefield Henk-Evert Sonder 等
作者: Cay S. Horstmann,Gary Cornell
作者: (美)Brian Goetz,Tim Peierls 等著