译者序 1
序言 1
前言 1
第一篇 概述 1
第1章 分布式计算系统介绍 1
1.1 组件的概念 2
1.2 软件组件的概念 3
1.3 分布式计算系统 3
1.3.1 分布式对象的体系结构 4
1.3.2 分布式计算系统的标准 5
1.3.3 分布式计算系统的优点 6
1.4 使用Java创建组件 6
1.4.1 ObsHelper类 6
1.4.2 ObsException类 8
1.4.3 Observation接口 9
1.4.4 ObsImp 类:使用JDBC来实用 10
1.4.5 ObsImp 类:使用SQLJ来实现 15
1.4.6 Client类 19
1.5 小结 21
第2章 Web应用程序的介绍 22
2.1 什么是Web服务器 22
2.1.1 Web浏览器 23
2.1.2 HTTP协议 24
2.1.3 HTML置标语言 25
2.2 在Web页面中生成动态内容 27
2.2.1 Servlet模型 27
2.2.2 Java Server Page介绍 36
2.3 Web应用程序体系结构 40
2.3.1 一个构思简单的应用程序体系结构 41
2.3.2 基于组件的JSP体系结构 41
2.3.3 使用JSP标记库 43
2.4`小结 45
第二篇 创建企业 JavaBean组件 47
第3章 企业JavaBean介绍 47
3.1 企业JavaBean规范(1.0) 48
3.1.1 企业JavaBean的设计目标 49
3.1.2 企业JavaBean的人员角色 49
3.1.3 企业JavaBean体系结构 50
3.1.4 企业JavaBean服务器 50
3.1.5 企业JavaBean容器 51
3.2 EJB应用程序组件 52
3.2.1 企业JavaBean的类型 52
3.2.2 企业home接口 54
3.2.3 企业Remote接口 56
3.2.4 企业Bean类 59
3.3 企业JavaBean的配置描述符 63
3.4 ejb-jar文件 65
3.5 EJB的事务管理和安全 67
3.5.1 事务支持 68
3.5.2 分布式支持 69
3.5.3 安全支持 69
3.6 EJB异常 69
3.7 企业JavaBean的优点 70
3.8 Oracle8i JServer体系结构 70
3.9 编写第一个企业 JavaBean 76
3.10 小结 87
第4章 开发EJB会话Bean 88
4.1 Oracle8i JServer:事务支持 88
4.2 EJB可供使用的事务属性 89
4.2.1 事务控制 90
4.2.2 访问控制 95
4.2.3 编程约束 97
4.3 开发会话Bean数据库应用程序 97
4.3.1 Oracle JDBC驱动程序概述 98
4.3.2 使用JNDI进行连接 100
4.4 小结 131
第5章 开发会话Bean:高级话题 133
5.1 在数据库会话中管理Bean 133
5.1.1 客户端对象开始一个新会话 133
5.1.2 服务器对象开始一个新会话 134
5.1.3 两个客户端访问相同的会话 135
5.1.4 服务器对象访问相同的会话 137
5.1.5 服务器对象控制会话持续时间 137
5.1.6 服务器对象结束会话 137
5.2 事务定界 138
5.2.1 客户端定界事务 138
5.2.2 服务器端定界事务 139
5.3 创建一个事务性应用程序 140
5.3.1 EIB事务:回顾 140
5.3.2 用户需求 142
5.3.3 OcObsBean会话Bean 149
5.3.4 QcSetBean会话Bean 156
5.3.5 QcClient事务应用程序 165
5.4 小结 176
第三篇 创建CORBA组件 177
第6章 CORBA的介绍 177
6.1 CORBA概述 177
6.2 IDL 178
6.2.1 IDL编译器 178
6.2.2 IDL构成 180
6.3 配置并使用CORBA服务器对象 188
6.3.1 编写IDL模块代码 188
6.3.2 使用idl2java从IDL文件生成Java源文件 188
6.3.3 编写服务器对象的Java实现代码 189
6.3.4 编译Java文件并将所生成的类文件载入JServer 189
6.3.5 发布CORBA服务器对象名称 190
6.3.6 编写并编译Java客户端代码 191
6.3.7 使用JDBC实现CORBA服务器对象 193
6.4 CORBA回调机制 193
6.4.1 客户端回调对象 194
6.4.2 服务器对象 194
6.4.3 客户端回调对象的实现 194
6.4.4 服务器对象的实现 195
6.4.5 调用服务器回调方法的客户端代码 195
6.5 CORBA Tie机制 196
6.6 激活ORB和服务器对象 197
6.6.1 ORB的激活 197
6.6.2 服务器对象的激活 197
6.7 用Java编写CORBA接口定义代码 199
6.8 重要工具小结 199
6.8.1 loadjava 199
6.8.2 dropjava 201
6.8.3 publish 201
6.8.4 remove 203
6.9 小结 204
第7章 CORBA会话 206
7.1 连接服务:TTC和IIOP 206
7.2 JNDI回顾 207
7.2.1 JNDI Context接口 207
7.2.2 JNDI InitialContext类 207
7.3 Oracle8i CORBA会话 208
7.3.1 数据库侦听器和分发器 209
7.3.2 服务和会话的URL语法 209
7.3.3 URL组件和类 209
7.4 会话管理 214
7.4.1 通过服务器对象启动会话 214
7.4.2 通过客户端启动一个命名会话 214
7.4.3 一个启动两个会话的示例程序 215
7.4.4 包含会话名称的URL示例程序 217
7.4.5 控制会话持续时间和结束会话 220
7.5 认证 220
7.6 数据库对象的访问权限 223
7.7 非JNDI客户端 223
7.8 小结 225
第8章 CORBA事务管理 226
8.1 JTS的局限性 227
8.2 事务定界和事务上下文 227
8.3 事务服务接口 228
8.4 Java事务服务方法 229
8.4.1 public static synchronized TransactionService getTS() 229
8.4.2 public void begin() 230
8.4.3 public Control suspend() 230
8.4.4 public void resume (Control control) 230
8.4.5 public void commit (boolean report_heuristics) 230
8.4.6 public void rollback() 231
8.4.7 public void rollback_only() 231
8.4.8 public void set_timeout(int seconds) 231
8.4.9 public Status get_status() 231
8.4.10 Public String get_transaction_name() 231
8.5 在CORBA客户端代码中使用JTS、方法 231
8.6 客户端事务定界例子 232
8.7 在CORBA服务器代码中使用JTS方法 235
8.8 服务器端事务定界的例子 235
8.9 CORBA服务器对象组件 239
8.9.1 accountlist.idl 239
8.9.2 AccountListImpl,sqlj 240
8.9.3 AccountList组件的CORBA客户端 242
8.10 涉及事务挂起和恢复的例子 244
8.11 访问EJB组件的客户端 246
8.12 能够同时访问EJB组件和CORBA服务器对象组件的CORBA客户端 247
8.13 JTA 250
8.13.1 具有JTA客户端事务定界的客户端结构 250
8.13.2 JTA客户端事务定界例子 251
8.13.3 JTA服务器端事务定界的服务器对象结构 252
8.14 小结 252
第9章 购物定单组件 252
9.1 DepartmentList CORBA组件 253
9.1.1 DepartmentList组件的用户需求 254
9.1.2 DepartmentList组件的高级视图 254
9.1.3 DepartmentList组件的IDL文件 254
9.1.4 DepartmentList组件的服务器对象实现类 255
9.1.5 DepartmentList组件的客户端 257
9.2 EmployeeList CORBA组件 258
9.2.1 EmployeeList组件的用户需求 258
9.2.2 EmployeeList组件的高级视图 259
9.2.3 EmployeeList组件的IDL文件 260
9.2.4 EmployeeList组件的服务器实现类 260
9.2.5 EmployeeList组件的客户端 264
9.3 VendorList CORBA组件 265
9.3.1 VendorList组件的用户需求 266
9.3.2 VendorList组件的高级视图 266
9.3.3 VendorList组件的IDL文件 266
9.3.4 VendorList组件的服务器对象实现类 267
9.3.5 VendorList组件的客户端 269
9.4 ProjectList CORBA组件 270
9.4.1 ProjectList组件的用户需求 270
9.4.2 ProjectList组件的高级视图 271
9.4.3 ProjectList组件的IDL文件 271
9.4.4 ProjectList组件的服务器对象实现类 271
9.4.5 ProjectList组件的客户端 273
9.5 PurchaseList和LineItemList CORBA组件 275
9.5.1 PurchaseList组件和LineItemList组件的用户需求 275
9.5.2 PurchaseList组件和LineItemList组件的高级视图 276
9.5.3 PurchaseList组件和LineItemList组件的IDL文件 277
9.5.4 PurchaseList组件的服务器对象实现类 280
9.5.5 LineItemList组件的服务器对象实现类 284
9.5.6 PurchaseList组件的客户端 289
9.6 小结 291
第四篇 使用Java Server Page创建Web应用程序 293
第10章 Java Server Page编程介绍 293
10.1 JSP编程基础 294
10.1.1 JSP脚本元素 294
10.1.2 JSP隐含对象 296
10.1.3 编写Hello.jsp 296
10.1.4 运行Hello.jsp 298
10.1.5 内部实现一瞥 299
10.2 JSP指令 303
10.2.1 page指令 304
10.2.2 icnlude指令 305
10.3 在一个JSP中调用其他页面 307
10.3.1 〈jsp:include〉标记 307
10.4 同时使用JSP和servlet 311
10.4.1 从JSP中调用Servlet 311
10.4.2 在Servlet中调用JSP 313
10.4.3 Servlet 2.0环境因素 316
10.5 处理JSP错误 317
10.6 Oracle JSP实现 319
10.6.1 在JSP中使用SQLJ 319
10.6.2 使用ojspc命令行转换程序 322
10.7 小结 324
第11章 同时使用JSP和JavaBean 326
11.1 使雍GaC和Nautilus 121
9.7 Gnome面板 125
9.7.1 增加应用程序和小程序 125
9.7.2 移动和删除面板对象 127
9.7.3 主菜单 127
9.7.4 面板配置 128
9.8 Gnome小程序 128
9.8.1 Gnome桌布向导 129
9.8.2 Gnome任务栏 130
9.8.3 快速启动 130
9.9 Gnome配置:控制中心 131
9.10 Gnome目录和文件 132
9.11 Sawfish窗口管理器 133
9.12 Gnome风格 134
9.13 升级Gnome 135
第10章 窗口管理器 136
10.1 窗口、文件和程序管理器 136
10.2 窗口管理器 137
10.2.1 窗口和图标 138
10.2.2 网络 139
10.2.3 工作区菜单 139
10.2.4 桌面区和虚拟桌面 139
10.2.5 面板、按钮条、任务栏和窗口列表 140
10.2.6 终端窗口:Xterm 141
10.3 多任务的X Windows系统 142
10.4 文件管理器 143
10.5 桌面 143
10.6 启动窗口管理器 143
10.7 Linux窗口管理器 144