第1章 Duke实例一览 1
1.1 从J2EE谈起 1
1.2 Duke在线银行实例 2
1.3 Duke的运行环境 3
1.3.1 Duke的生存空间 3
1.3.2 包装Duke 5
1.3.3 部署Duke 6
1.4 Duke全景浏览 11
1.4.1 设置Duke的安全机制 11
1.4.2 创建Duke数据库 12
1.4.3 从Web客户浏览 13
1.4.4 从应用客户浏览 17
第2章 Duke的数据模型 21
2.1 Duke数据库的逻辑视图 21
2.2 创建Duke数据库 22
2.3 Cloudscape数据库 23
2.4 使用Ant创建数据模型 25
第3章 EJB概述 29
3.1 分布式组件体系结构 29
3.2 EJB的概念 31
3.3 EJB的作用 32
3.4 EJB基础和体系结构 34
3.4.1 EJB组件 34
3.4.2 不可见的EJB对象 35
3.4.3 定义客户访问 36
3.4.4 EJB容器的职责 36
3.5 会话Bean 37
3.5.1 有状态会话Bean 37
3.5.2 无状态会话Bean 38
3.6 实体Bean 39
3.5.3 会话Bean的应用 39
3.6.1 容器管理持久 40
3.6.2 Bean管理持久 41
3.6.3 实体Bean的应用 41
3.7 消息驱动Bean 41
3.7.1 MDB和其他的EJB的区别 42
3.7.2 消息驱动Bean的应用 42
第4章 Duke的EJB组件之一——实体Bean 43
4.1 顾客Bean详解 43
4.1.1 顾客对象模型(Customer Object Model) 44
4.1.2 实体Bean类 45
4.1.3 引导接口(Home Interface) 56
4.1.4 远程接口(Remote Interface) 58
4.1.5 一个实体Bean的生命周期 59
4.2.1 账户Bean 60
4.2 Duke的其他实体Bean 60
4.2.2 交易Bean 62
4.3 Duke应用程序中的异常 64
4.4 Duke的辅助类(Helper Classes) 65
4.4.1 封装类(Encapsulated Classes) 66
4.4.2 实用类(Utility Classes) 66
第5章 Duke的EJB组件之二——会话Bean 71
5.1 顾客会话Bean详解 71
5.1.1 顾客会话Bean对象模型 71
5.1.2 会话Bean类 72
5.1.3 引导接口 78
5.1.4 有状态会话Bean的生命周期 79
5.2 Duke中其他的会话Bean 79
5.2.1 账户会话Bean 80
5.2.2 交易会话Bean 83
5.3.1 无状态会话Bean 88
5.3.2 无状态会话Bean的生命周期 88
5.3 另一种会话Bean——无状态会话Bean 88
5.4 有状态会话和无状态会话的选择 89
第6章 Duke的应用客户层 91
6.1 客户程序的类及类间关系 91
6.2 客户程序视图——BankAdmin 92
6.2.1 BankAdmin类的结构 93
6.2.2 main方法 95
6.2.3 构造方法 96
6.3 客户程序控制——EventHandle 97
6.3.1 Java事件模型 97
6.3.2 EventHandle类的结构 98
6.3.3 hookupEvents方法 99
6.4.1 构造方法 101
6.4 客户程序数据模型——DataModel 101
6.4.2 数据模型方法 103
6.5 MVC设计模式 104
第7章 建立和部署Duke应用程序 106
7.1 建立Duke的EJB组件 106
7.1.1 Ant的build.xml文件 106
7.1.2 编译EJB组件 109
7.1.3 EJB组件的打包 111
7.1.4 EJB部署描述 112
7.2 建立Duke应用客户程序和EAR 115
7.2.1 编译和打包应用客户程序 115
7.2.2 装配企业应用档案文件 118
7.3 部署企业应用档案文件 121
7.3.1 部署模型 121
7.3.2 部署工具 122
第8章 Duke的Web组件之一——Servlet 124
8.1 Servlet概述 124
8.1.1 Servlet API 124
8.1.2 Servlet的生命周期 125
8.2 Servlet举例 126
8.2.1 最简单的HTTP Servlet 126
8.2.2 HTML表格Servlet 129
8.2.3 JDBC Servlet 136
8.3 Servlet技术 139
8.3.1 Cookies 140
8.3.2 会话(Session)跟踪 143
8.3.3 Servlet交互 146
8.4 实用Servlet——SnoopServlet 146
9.1 JSP概述 148
第9章 Duke的Web组件之二——JSP 148
9.2 JSP脚本语言元素 149
9.2.1 JSP表达式 149
9.2.2 JSP表达式实例 150
9.2.3 JSP脚本件(Scriptlets) 151
9.2.4 JSP声明(Declarations) 153
9.2.5 预定义变量 153
9.2.6 注解(Comments) 154
9.3 JSP命令(Directives) 155
9.3.1 JSP page命令 155
9.3.2 出错处理页面实例 158
9.3.3 JSP include命令 160
9.4 在JSP中使用JavaBean 163
9.4.1 jsp:useBean 163
9.4.2 访问Bean属性 164
9.4.3 ItemBean的实例 165
10.1 用URL调用Web组件 169
第10章 Web组件的交互控制 169
10.2 在Servlet中调用Servlet 172
10.2.1 实例化一个Servlet对象 172
10.2.2 应答重定向(Response Redirection) 173
10.2.3 请求分派(Request Dispatching) 175
10.2.4 请求分派(Request Dispatcher)的替代方法 179
10.2.5 资源的使用方法 180
10.3 在Servlet中调用JSP页面 182
10.4 在JSP页面中调用Servlet 182
10.5 在JSP页面中调用JSP页面 185
11.1 构建标签的部件 187
11.1.1 标签处理器(Tag Handler) 187
第11章 自定义标签 187
11.1.2 标签库描述(Tag Library Descriptor) 189
11.1.3 JSP页面 190
11.2 自定义标签实例演示 190
11.2.1 基本标签实例 190
11.2.2 带属性标签的实例 194
11.2.3 带标签体标签的实例 196
11.2.4 互操作标签 201
11.3 Struts标签库 207
11.3.1 struts-logic标签库 208
11.3.2 equal标签 209
11.3.3 iterate标签 213
11.4 Tutorial-Template标签库 221
11.4.1 definition标签 221
11.4.2 screen和parameter标签 224
11.4.3 screendefinitions JSP页面 227
11.4.4 insert标签 229
第12章 Duke的Web层 233
12.1 Duke的Web组件一览 233
12.2 Web客户程序生命周期 234
12.2.1 客户组件的初始化 234
12.2.2 企业Bean的Facade 237
12.2.3 请求处理 244
12.2.4 Duke的JSP组件 249
12.3 Duke的Web层设计策略 256
12.3.1 设计模式 256
12.3.2 Web Tier技术指南 257
第13章 再谈Duke的封装和部署 259
13.1 封装一个企业应用系统 259
13.1.1 封装组件 259
13.1.2 封装EJB模块 260
13.1.3 封装Web模块 261
13.1.4 封装应用客户程序模块 263
13.2 部署描述(Deploying Descriptors) 263
13.2.1 公共部署的设置(Common Deployment Settings) 263
13.2.2 EJB部署的设置项 269
13.2.3 Web部署设置项 272
13.3 封装和部署Duke的Web层 275
13.3.1 封装Duke的Web组件 275
13.3.2 Duke的Web部署描述 278
13.3.3 部署Duke的Web模块 280
第14章 Duke的安全设置 282
14.1 一些必须了解的安全性术语 282
14.2 安全模型(Security Models) 283
14.2.1 安全角色(Security Roles) 283
14.2.3 J2EE安全的主要特征 286
14.2.2 声明性(Declarative)和编程性(Programmatic)安全机制 286
14.3 Web层的安全 287
14.3.1 保护Web资源 287
14.3.2 Web层认证 289
14.3.3 Web层授权 292
14.3.4 Web层中的编程性安全 292
14.4 EJB层的安全 293
14.4.1 不受保护的EJB层资源 293
14.4.2 EJB层认证 293
14.4.3 EJB层的声明性授权 294
14.4.4 EJB层的编程性授权 296
14.5 应用客户层的安全 296
14.5.1 J2EE应用客户容器中的认证 296
14.5.2 Java认证与授权服务(JAAS) 297
14.6.1 容器管理的资源签名(Container-Managed Resource Sign-On) 298
14.6 EIS层的安全 298
14.6.2 组件管理的资源签名(Component-Managed Resource Sign-On) 299
14.7 安全身份标识的传播(Propagating Security Identity) 300
14.7.1 保护域 300
14.7.2 部署一个组件的传播安全身份标识 301
14.7.3 配置客户程序认证 302
第15章 企业应用的展望 305
15.1 透视Duke 305
15.1.1 从Duke的资源角度透视 305
15.1.2 从Duke应用角度来透视 306
15.1.3 从Duke的技术角度来透视 306
15.2 再谈J2EE技术 307
15.2.1 J2EE——企业级解决方案的平台 307
15.2.2 EJB——服务器端组件的体系结构 308
15.2.4 JSP——动态生成Web内容 309
15.2.3 Servlet——Web服务器的扩展功能 309
15.2.5 JSTL——封装JSP的通用功能 310
15.2.6 JSF——简化Web的开发 310
15.2.7 JMS——连接企业应用 311
15.2.8 JCA——集成Web企业应用 312
15.2.9 XML——与J2EE的理想组合 312
15.3 几个重要的J2EE兼容的应用服务器 313
15.3.1 Tomcat——轻量级的免费服务器解决方案 313
15.3.2 WebLogic——企业集成和集中的平台 313
15.3.3 WebSphere——理想的电子商务平台 314
15.3.4 SunONE——高可用性的开放网络环境 315
15.3.5 Jboss——专业的开放源代码的产品 316
15.3.6 Oracle 9i AS——完备的集成Web平台 316
15.4 .NET与J2EE之间的比较 317
15.4.1 Microsoft.NET平台体系结构 317
15.4.2 .NET与J2EE的比较 318
15.5 J2EE和Web服务 319
15.5.1 通俗解读Web服务 319
15.5.2 Web服务的三基石 320
15.5.3 J2EE的Web服务战略 322
15.5.4 软件巨头们的Web服务战略 323
附录A J2EE兼容应用服务器总览 326
附录B J2EE版本和组件技术版本 329
附录C EJB规范 330
附录D Java消息服务(JMS)简介 332
附录E 理解Java连接器体系结构(JCA) 334
附录F 事务和J2EE 337
附录G J2EE认证体系 341
参考书目 345
在线参考 347