文档说明:
此文当中涉及到关键字、对象、等专用术语采取英文表达的方式。
排版约定:
标题均使用加粗斜体字;
章标题使用二号字,距行首一个 Tab 距离;小节标题分别使用三、四、小四号字,位于行
首;内容使用五号字,距行首一个 Tab 距离。
翻译人员:
丁会云 dhy@slof.com ,edward_javalover@hotmail.com(msn )
马龙发 malongfa@etang.com,malongfa@hotmail.com(msn)
曾宪锐 iceshape@etang.com,iceshape@hotmail.com(msn)
吴君杰 alabaobeimail@163.net
J2EE
指南
序
:
1993 年 8 月,我加入了太阳公司——被称之为第一人的小公司。我之所以知道这个公司是
因为我的一些同事跳槽到了太阳公司。我加入太阳公司的主要原因是因为我喜欢他卡通似的用
户界面。太阳公司正在发展,其界面有一个昵称——Duke。
“第一人”的首次样品演示名曰:七星(Star 7),它是一个能让房主通过触摸屏来实现远
程控制的产品。在我到哪儿的时候,他们正在为视频点播做演示。
这个妙极的视频点播演示是由加利福尼亚的一个称之为巨大图片工作室做的。演示产品使
用当时称之为 Oak 的编程语言做的。我的第一个任务就是帮助 Oak 语言的创造者——James
Gosling 写语言规范。然而我真正想做的是对象为普通程序员的面向任务的文档。到了 1994 年
7 月,“第一人”陷入混乱,失去了向一些有线网络公司说明视频点播方案是消费者需求的说服
力。
面向
Internet
的编程
1994 年秋天我返回工作时,这个公司的景象已经完全改变。他们决定 Oak 语言——跨平
台的、安全的、易传输的代码——时理想的面向 Internet 的语言。同时他们在制作名为
WebRunner 的浏览器,它具有在 Internet 上传输 Oak 代码——他们称之为 Applet——的能力。
我开始写一些指南来帮助程序员使用 applets。1995 年,当 WebRunner 浏览器首次出版时,
指南只是包含浏览器的一小部分,这个指南就是 J2EE Tutorial 的前身。该指南时第一次包含
applets 的文档,看起来有点像 The Java Tutorial。事实上,The Java Tutorial 也许仍有些能在最
初出版的指南中找到。由于没有 HTML 工具,因此不得不手工完成。告诉你,为文档做手工
代码连接是无趣的,哪怕是一份小文档。这个编程语言的名称由 Oak 变为 Java,浏览器的名称
由 WebRunner 换为 HotJava
Mary
的加盟
1995 年早些时候,我们招收了一个合同编制员——Mary Campione。她和我在后来的工作
互助中相识。Mary 的工作是帮助程序员使用平台特色如线程。我们很快意识到我们的工作如
此相似,我们很快就在一起为 Java 平台程序员指南工作。
1995 年 5 月 18 日 , Mary Campione 和 我 出 版 了 第 一 版 指 南 , 我 们 称 之 为 The Java
Programmer’s Guide。它是一个不完全的草本,但它提供了为程序员在 Java 平台胜编程的一些
信息。紧接着第二个星期,太阳公司正式在一个展示会上宣布了称之为 SunWorld 的 Java 平台。
最棒的是 NetScape 同意在他们的浏览器上支持 applets。
在接下来的几个月里,Mary 和我继续增加、校订《编程指南》,我们密切的一起工作。
到了 1995 年底,第一批 Java 系列的书籍完成。这一系列书籍主要由原“第一人”的成员编
写,Addison-Wesley 出版。
The J2EE Tutorial
现在又出现了一个新的平台,新的指南。Java2 企业版的成功是显著的。开发者们都强烈
要求提供有关使用 Java 平台编写服务端应用程序的资料。同原来的指南一样,这是一个多实
例、易使用的并作为 J2EE 平台开发的参考。
目录
J2EE 指南..................................................................................................................................................1
Mary 的加盟..............................................................................................................................................2
准备工作...................................................................................................................................................6
EJB: http://java.sun.com/products/ejb.......................................................................................................7
第 1 章 总 括.............................................................................................................................................7
一.分布式得多层应用程序...........................................................................................................7
J2EE 组件..................................................................................................................................................8
J2EE 客户端..............................................................................................................................................8
JavaBean 组件结构...................................................................................................................................8
二.J2EE 容器..................................................................................................................................9
三.打包 J2EE 组件.......................................................................................................................10
四.开发者角色.............................................................................................................................11
五.本书所用的软件.....................................................................................................................12
第 2 章 动手做一个 EJB.........................................................................................................................15
一.准备工作.................................................................................................................................16
二.创建 J2EE 应用程序...............................................................................................................17
三.创建企业 Bean........................................................................................................................17
四.创建 J2EE 应用程序客户端...................................................................................................20
五.创建 Web 客户端....................................................................................................................23
六.设置企业 Bean 的 JNDI 名.....................................................................................................25
七.部署 J2EE 应用程序...............................................................................................................26
八.运行 J2EE 应用程序客户端...................................................................................................27
九.运行 Web 客户端....................................................................................................................27
十.修改 J2EE 应用程序...............................................................................................................28
十一。常见问题和解决方法.........................................................................................................29
第
3
章 企业
Bean....................................................................................................................................33
1
,企业
Bean
概述
.........................................................................................................................34
2
,会话
Bean..................................................................................................................................35
3,EntityBean....................................................................................................................................36
4
,
Message-Driven Bean...............................................................................................................38
5.定义客户端访问接口...............................................................................................................40
6
,企业
Bean
的“内容”
...................................................................................................................43
7
,企业
Bean
的命名约定
.............................................................................................................44
8
,企业
Bean
的生存周期
.............................................................................................................44
第
4
章 有状态会话
Bean
示例
...............................................................................................................50
1
.购物车会话
Bean CartEJB.......................................................................................................50
二 其他的企业 Bean 特性..............................................................................................................58
第 5 章 BMP 的例子...............................................................................................................................61
一.SavingsAccountEJB................................................................................................................61
二.用 deploytool 部署 BMP 实现的实体 Bean...........................................................................73
三.为 BMP 映射表间关系...........................................................................................................74
四.BMP 的主键............................................................................................................................84
五.异常处理.................................................................................................................................87
第 6 章 CMP 的例子...............................................................................................................................89
一 RosterApp 应用概述..................................................................................................................90
二 layerEJB 代码分析.....................................................................................................................90
三.RosterApp 配置说明...............................................................................................................95
四 RosterApp 中的方法调用........................................................................................................102
五 运行 RosterApp 应用程序.......................................................................................................109
六 用 deploytool 工具部署 CMP 实现的实体 Bean....................................................................110
七 CMP 的主键.............................................................................................................................111
第 7 章 一个消息驱动 Bean 的例子.....................................................................................................114
一.例子应用程序介绍...............................................................................................................114
二.J2EE 应用程序客户端..........................................................................................................115
三.消息驱动 Bean 类..................................................................................................................116
四.运行本例子...........................................................................................................................117
五.用 deploytool 部署消息驱动 Bean.......................................................................................118
六.用 deploytool 配置 JMS 客户端...........................................................................................119
第 8 章 EJB 查询语言...........................................................................................................................121
一.术语.......................................................................................................................................121
二.简单语法...............................................................................................................................122
三.查询例子...............................................................................................................................122
四.全部语法...............................................................................................................................125
五.EJB QL 的限制.....................................................................................................................139
第 9 章 网络客户端及组件..................................................................................................................140
WAR 级的配置......................................................................................................................................143
Servlet 的生命周期...............................................................................................................................148
1.如果 servlet 的实例不存在,容器会.............................................................................................148
Public final class ContextListener implements ServletContextListener..............................................148
第 11 章 JSP 技术..................................................................................................................................167
第
12
章
JSP
页面中的
JavaBean
组件
................................................................................................181
第 13 章 在 JSP 页面中自定义标签.....................................................................................................185
第 14 章 事务.........................................................................................................................................205
一.什么是事务...........................................................................................................................205
二.容器管理事务.......................................................................................................................206
三.Bean 管理事务......................................................................................................................211
四.企业 Bean 事务摘要.............................................................................................................214
五.事务超时...............................................................................................................................215
六.隔离级别...............................................................................................................................215
七.更新多个数据库...................................................................................................................216
八.Web 组件事务.......................................................................................................................217
第 15 章 安全.........................................................................................................................................218
一.纵览.......................................................................................................................................218
二.安全角色...............................................................................................................................219
三.Web 层安全...........................................................................................................................220
四.EJB 层安全............................................................................................................................222
五.应用程序客户端层安全.......................................................................................................223
六.EIS(Enterprise Information System)层安全...................................................................224
七.传递安全身份.......................................................................................................................226
八.J2EE 用户、域和组..............................................................................................................227
九.安装服务器证书...................................................................................................................228
第 16 章 资源连接.................................................................................................................................230
一.JNDI 名和资源引用..............................................................................................................230
二.数据库连接...........................................................................................................................233
三.邮件服务连接.......................................................................................................................235
四.URL 资源连接......................................................................................................................237
第 17 章 DUKE 的银行应用程序........................................................................................................239