当前位置:首页 > 工业技术
精通EJB
精通EJB

精通EJBPDF电子书下载

工业技术

  • 电子书积分:17 积分如何计算积分?
  • 作 者:(美)Ed Roman著;王进亮等译
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2002
  • ISBN:750537091X
  • 页数:566 页
图书介绍:
《精通EJB》目录
标签:精通

第一篇 概述 3

第1章 服务器端组件体系结构 3

1.1 对服务器端组件体系结构的迫切需求 3

1.1.1 软件组件 3

1.1.2 组件体系结构 6

1.1.3 对服务器端应用的需求 9

1.1.4 多层体系结构 9

1.2 服务器端组件体系结构解决方案 16

1.2.1 Microsoft公司的DNA体系结构 17

1.2.2 Sun公司的J2EE 18

1.2.3 OMG组织的CORBA标准 18

1.3 Java2平台企业版 19

1.3.1 为什么选择J2EE 19

1.3.2 J2EE技术 21

1.3.3 EJB 23

1.3.4 RMI和RMI-IIOP 23

1.3.5 JNDI 24

1.3.6 JDBC 25

1.3.7 JTA和JTS 25

1.3.8 JMS 26

1.3.9 Java Servlet和JSP 27

1.3.10 Java IDL 27

1.3.11 JavaMail 28

1.3.12 连接器 28

1.3.13 XML 29

1.4 小结 29

第2章 EJB概述 31

2.1 EJB中到底有什么 31

2.1.1 六个组成部分 32

2.1.2 组件供应商 33

2.1.3 EJB服务器和EJB容器供应商 34

2.1.4 应用组装商 36

2.1.5 EJB系统部署员 36

2.1.6 系统管理员 37

2.2 企业Bean 37

2.2.1 Bean的分类 38

2.2.2 Bean组件多种分类的原因 43

2.3 EJB容器和服务器功能概述 43

2.3.1 资源管理和Bean组件生存期管理 45

2.3.2 状态管理 45

2.3.3 事务处理 46

2.3.4 安全性 46

2.3.7 连接代码和Bean组件安装工具 47

2.3.6 远程访问和透明的资源定位 47

2.3.5 持久性 47

2.3.8 专用的容器特性 48

2.4 小结 49

第二篇 开发Bean 53

第3章 会话Bean介绍 53

3.1 Enterprise Bean的组成部分 53

3.1.1 Enterprise Bean类 53

3.1.2 EJB对象 54

3.1.3 Home对象 57

3.1.4 部署描述 59

3.1.5 特定的Bean属性 60

3.1.6 Ejb-jar文件 60

3.1.7 术语小结 61

3.2 什么是会话Bean 61

3.2.2 对话型会话Bean与非对话型会话Bean 62

3.2.1 会话Bean的生命周期 62

3.2.3 所有会话Bean的方法都是可序列化的 63

3.3 如何编写会话Bean 63

3.3.1 setSessionContext(SessionCnntext ctx)方法 64

3.3.2 ejbCreate(...)方法 65

3.3.3 ejbPassivate()方法 65

3.3.4 ejbActivate()方法 66

3.3.5 ejbRemove()方法 66

3.3.6 商务方法 67

3.4 如何调用会话Bean 67

3.4.1 查找Home对象 68

3.4.2 创建EJB对象 70

3.4.4 清除EJB对象 71

3.5 小结 71

3.4.3 调用方法 71

第4章 无状态会话Bean基础 73

4.1 无状态会话Bean特点 73

4.1.1 不存在对话状态 73

4.1.2 只有一种方法初始化无状态会话Bean 73

4.1.3 EJB容器收集并重用无状态会话Bean 73

4.1.4 EJB对象的decoupling 74

4.2 编写“Hello, World!”无状态会话Bean 75

4.2.1 创建“Hello, World!”Remote接口 75

4.2.2 实现“Hello, World!”Bean 76

4.2.3 创建“Hello, World!”Home接口 78

4.2.4 编写部署描述 80

4.2.5 环境属性 81

4.2.6 Ejb-jar文件 81

4.2.7 部署Bean 83

4.2.8 为无状态会话Bean编写客户端代码 83

4.2.9 运行系统 85

4.3 小结 86

第5章 状态会话Bean基础 87

5.1 状态会话Bean特点 87

5.1.1 状态会话Bean具有收集功能 87

5.1.2 对话状态遵从的规则 88

5.1.3 激活/挂起回调方法 89

5.1.4 一个简单的状态会话Bean 90

5.2 状态还是无状态 98

5.3 小结 99

第6章 给Bean增加功能 101

6.1 EJB Context——通向EJB容器之门 101

6.2 会话Bean Context 102

6.3 理解EJB的安全性 103

6.3.1 第1步:验证 103

6.3.2 第2步:授权 104

6.3.3 安全性的传播 106

6.4 理解EJB对象句柄 107

6.5 智力游戏“Fazuul” 108

6.5.1 Fazuul是什么 108

6.5.2 以EJB角度详细说明Fazuul 109

6.5.3 通过环境属性使游戏成为数据驱动型游戏 110

6.5.4 Fazuul游戏的实现 111

6.6 运行客户端应用程序 132

6.6.1 检验EJB对象句柄 134

6.6.2 检验安全性 134

6.7 小结 135

第7章 实体Bean介绍 137

7.1 持久的概念 137

7.1.1 Java对象序列化 137

7.1.2 对象-关系型数据库映射 138

7.1.3 对象数据库 139

7.2 什么是实体Bean 140

7.3 实体Bean的特征 142

7.3.1 实体Bean是长久存在的 142

7.3.2 实体Bean能够避免Bean失效 143

7.3.3 实体Bean实例是一个对应到数据库中的视图 143

7.3.4 几个实体Bean实例可能代表同一底层数据 143

7.3.5 实体Bean实例可以被收集再利用 144

7.3.6 保持实体Bean的两种方法 147

7.3.7 实体Bean可以被创建、删除或查询 148

7.3.8 实体Bean可以代表遗留下来的数据和系统 148

7.3.9 实体Bean可以不通过EJB被修改 149

7.4 开发和使用实体Bean 150

7.4.1 实体Bean的创建:ejbCreate() 150

7.4.2 查寻已存在的实体Bean:ejbFind() 152

7.4.3 实体Bean的删除:ejbRemove() 153

7.5 实体上下文 154

7.5.1 getEJBObject() 155

7.5.2 getPrimaryKey() 155

7.6 实体Bean的生存周期 156

7.7 小结 158

第8章 编写Bean管理的持久实体Bean 159

8.1 实现Bean管理持久的指导方针 159

8.2 Bean管理持久的范例:一个银行账户 161

8.2.1 Account.java 161

8.2.2 AccountHome.java 162

8.2.3 AccountPK.java 163

8.2.4 AccountBean.java 164

8.2.5 AccountException.java 175

8.2.6 Client.java 176

8.2.7 部署描述 178

8.2.8 环境属性 179

8.2.9 建立数据库 179

8.3 运行客户端程序 179

8.3.1 服务器端的输出 180

8.3.2 客户端的输出 181

8.4 小结 181

第9章 编写容器管理的持久实体Bean 183

9.1 容器管理的域 183

9.2 主键类 184

9.3 实现容器管理持久的指导方针 184

9.4 容器管理持久的范例:产品系列 186

9.4.1 Product.java 187

9.4.2 ProductHome.java 187

9.4.4 ProductBean.java 189

9.4.3 ProductPK.java 189

9.4.5 Client.java 193

9.4.6 部署描述 195

9.5 运行客户端程序 196

9.5.1 服务器端的输出 196

9.5.2 客户端的输出 198

9.6 承诺和现实:Bean管理的持久与容器管理的持久 198

9.6.1 承诺:容器管理的持久会减少代码量 198

9.6.2 承诺:容器管理的持久会减少错误 199

9.6.3 承诺:容器管理的持久使连接到不同的数据库变得容易 199

9.7 解决EJB调试问题 200

9.8 小结 201

第三篇 EJB的高级概念 205

第10章 事务 205

10.1 事务产生的动机 205

10.1.1 原子操作 205

10.1.2 网络故障或机器故障 206

10.1.3 多用户共享数据 207

10.2 事务所带来的益处 208

10.3 事务的模型 210

10.3.1 平面式事务模型 210

10.3.2 嵌套式事务模型 211

10.3.3 其他事务模型 212

10.4 事务在EJB组件中的应用 212

10.4.1 事务模型的支持 213

10.4.2 后台事务系统的提取 213

10.4.3 声明型事务和编程型事务 213

10.4.4 控制EJB组件加入事务的方式 215

10.4.5 EJB事务的属性值 215

10.5 事务的隔离 218

10.5.1 并发控制的需求 218

10.5.2 隔离性与EJB 220

10.5.3 不当读取问题 221

10.5.4 不可重复读取问题 222

10.5.5 幻影读取问题 223

10.5.6 事务隔离性的总结 224

10.6 分布式事务 224

10.6.1 稳定性和两阶段提交协议 224

10.6.2 事务的通信协议和事务上下文 225

10.7 EJB中的编程型事务 226

10.7.1 CORBA的对象事务处理服务 226

10.7.2 Java事务处理服务 227

10.7.3 Java事务处理API 227

10.7.4 声明型事务和编程型事务的应用范例比较 229

10.7.5 如何使用客户代码控制事务 230

10.8 在EJB中设计事务会话 231

10.9 小结 233

11.1 何谓CORBA 235

第11章 CORBA和RMI-IIOP 235

11.2 我们为何要关心CORBA 236

11.2.1 CORBA的优点 236

11.2.2 CORBA的缺点 237

11.3 理解CORBA是如何工作的 237

11.3.1 对象请求代理程序 237

11.3.2 对象实现和对象引用 238

11.3.3 对象适配器 239

11.3.3 存储器 240

11.4 OMG的接口语言 240

11.4.1 将OMG IDL映射成具体的语言 242

11.4.2 静态调用 242

11.4.3 动态调用 243

11.5.2 事件服务 244

11.5.3 对象事务服务 244

11.5 CORBA提供的众多服务 244

11.5.1 命名服务 244

11.5.4 并发控制服务 245

11.5.5 安全服务 245

11.5.6 CORBA组件 245

11.6 基于IIOP的RMI 245

11.6.1 RMI- CORBA协同工作的需求 246

11.6.2 RMI与CORBA的结合 247

11.6.3 基于IIOP的RMI的优点 248

11.6.4 RMI与IIOP结合所带来的问题 250

11.7 RMI与CORBA的协同工作综述 252

11.7.1 带有CORBA对象实现的RMI-IIOP客户 252

11.7.2 带有RMI-IIOP对象实现的CORBA客户 253

11.8 RMI-IIOP API 254

11.8.1 javax.rmi 255

11.8.2 基于IIOP的RMI的引导 256

11.9 理想的蓝图:CORBA与EJB的结合 257

11.9.1 CORBA/EJB协同工作的优点 257

11.9.2 CORBA/EJB协同工作的情景 258

11.9.3 范例代码 259

11.9.4 CORBA EJB客户范例 261

11.10 小结 263

第四篇 一个复杂的电子商务部署 267

第12章 设计一个电子商务对象模型 267

12.1 最终产品的预览 267

12.2 技术需求 269

12.2.1 商务逻辑层的对象模型 269

12.2.2 表达层的对象模型 273

12.3 小结 276

第13章 实现电子商务实体Bean 277

13.1 顾客实体Bean 277

13.1.1 Customer.java 278

13.1.2 CustomerBean.java 278

13.1.3 CustomerHome.java 283

13.1.4 CustomerPK.java 284

13.1.5 部署描述 285

13.2 订单条目实体Bean 287

13.2.1 OrderLineItem.java 287

13.2.2 OrderLineItemBean.java 288

13.2.3 处理实体Bean引用 294

13.2.4 OrderLineItemHome.java 296

13.2.5 OrderLineItemPK.java 297

13.2.6 部署描述 298

13.3.1 Order.java 299

13.3 订单实体Bean 299

13.3.2 OrderBean.java 300

13.3.3 OrderHome.java 307

13.3.4 OrderPK.java 308

13.3.5 OrderException.java 309

13.3.6 部署描述 309

13.4 小结 310

第14章 实现电子商务会话Bean 311

14.1 购物篮条目状态会话Bean 312

14.1.1 QuoteLineItem.java 312

14.1.2 QuoteLineItemBean.java 313

14.1.3 QuoteLineItemHome.java 317

14.1.4 部署描述 318

14.2 购物篮状态会话Bean 318

14.2.1 Quote.java 319

14.2.2 QuoteBean.java 321

14.2.3 QuoteHome.java 332

14.2.4 QuoteException.java 333

14.2.5 部署描述 334

14.3 无状态计价会话Bean 334

14.3.1 Pricer.java 335

14.3.2 PricerBean.java 335

14.3.3 PricerHome.java 340

14.3.4 PricerException.java 341

14.3.5 部署描述 342

14.4 无状态银行出纳员会话Bean 343

14.4.1 Teller.java 343

14.4.2 TellerHome.java 345

14.4.3 TellerBean.java 346

14.4.4 TellerException.java 353

14.5 小结 354

14.4.5 部署描述 354

第15章 将Servlet连接到EJB 355

15.1 Servlet在EJB部署中的角色 355

15.2 实现Servlet 356

15.3 Web店面Servlet 364

15.4 在线目录Servlet 367

15.5 商品概况Servlet 372

15.6 商品详情Servlet 375

15.7 购物篮查看Servlet 378

15.8 购买Servlet 387

15.8 Servlet属性 393

15.9 运行完整的电子商务系统 394

15.9.1 启动商务逻辑层 394

15.9.2 启动表达层 394

15.10.1 生成惟一的主键 395

15.10 优化及设计策略 395

15.9.3 启动瘦客户 395

15.10.2 减少网络往返路程:消极调用Bean 397

15.10.3 标识实体Bean的同步需求 397

15.10.4 实体Bean与会话Bean的设计 398

15.10.5 设计精巧的和设计粗糙的实体Bean 398

15.10.6 查找大量的实体Bean 399

15.11 小结 399

附录 403

附录A 理解Java远程方法调用 403

A.1 远程方法调用 403

A.2 RMI体系结构 406

A.2.1 RMI和接口与实现 406

A.2.2 根程序和程序框架 406

A.2.3 根连接和RMI注册 407

A.2.4 RMI URL 408

A.3 RMIC——RMI编译器 409

A.2.5 查找远程对象 409

A.4 对象序列化和参数传递 410

A.4.1 值传递 410

A.4.2 对象序列化 410

A.4.3 对象是怎样序列化的 411

A.4.4 怎样标记暂态 412

A.4.5 使用对象序列化 412

A.4.6 RMI怎样模拟通过引用传递参数 413

A.4.7 输出远程对象 415

A.5 一个简单的例子 415

A.5.1 IFlip接口 416

A.5.2 Flip类 416

A.5.3 客户 418

A.5.5 运行该程序 420

A.5.4 编译这个程序 420

A.6 处理远程异常 421

A.6.1 RMI远程异常的限制 422

A.6.2 RMI技巧 422

A.7 高级RMI 423

A.7.2 RMI例子:用于分布式记录的消息队列 423

A.7.3 RMI例子:开发分布式垃圾收集器 440

A.8 RMI、CORBA和EJB 443

A.9 RMI和EJB 443

A.9.1 EJB对象 443

A.9.2 本地对象 444

A.10 小结 445

附录B 了解Java命名和目录接口JNDI 447

B.1 命名和目录服务器 447

B.2 进入JNDI 449

B.3.1 JNDI的结构体系 450

B.3 JNDI概述 450

B.3.2 现有的服务技术类型 451

B.4 了解JNDI程序背后的概念 454

B.5 JNDI的程序设计 458

B.5.1 安装必需的软件 458

B.5.2 JNDI包 458

B.5.3 探索Javax.naming包 460

B.5.4 实例:一个交互式浏览器 461

B.6 高级JNDI:JNDI与JDBC的结合 473

B.7 高级JNDI:JNDI和EJB相结合 479

B.7.1 JNDI和EJB主对象 480

B.7.2 JNDI的其他用途 481

B.8 高级JNDI:连接JNDI和Java RMI 482

B.8.2 Flip.java 483

B.8.1 IFlip.java 483

B.8.3 FlipClient.java 486

B.8.4 运行这个例子 488

B.9 小结 489

附录C 了解XML 491

C.1 XML的商业需要 491

C.1.1 电子商务 491

C.1.2 现有技术的不足 492

C.2 XML 493

C.2.1 XML的优点 494

C.2.2 XML和EDI的比较 495

C.2.3 XML和SGML的比较 495

C.2.4 XML和HTML的比较 495

C.3 XML的概念 496

C.3.1 Prolog 496

C.3.2 XML元素 497

C.3.3 XML实体 498

C.3.4 CDATA片段 499

C.3.5 格式正确的文档 499

C.3.6 XML DTD 500

C.3.7 XML小结 503

C.4 XML和EJB 504

C.4.1 EJB部署描述 504

C.4.2 作为在线数据格式的XML 505

C.5 小结 506

附录D 了解EJB1.1 507

D.1 可移植的部署描述 507

D.1.1 Ejb-Jar文件的部署描述 507

D.1.2 EJB 1.1XML部署描述的例子 507

D.3 RMI-IIOP API标准 511

D.2 实体Bean的授权支持 511

D.4 JNDI的各个方面 512

C.4.1 如何从客户代码中查找主对象 512

C.4.2 如何从Bean中查找主对象 513

C.4.3 如何查找资源工厂 516

C.4.4 如何查询环境属性 519

C.4.5 如何查找JTA UserTransaction接口 520

D.5 正确的Bean引用 521

D.5.1 钝化和活化的提高 521

D.5.2 持久性的改进 522

D.6 事务处理程序的阐明和提高 524

D.6.1 实体Bean必须使用容器管理的事务处理 524

D.6.2 陈述性事务处理程序的变化 524

D.7 安全更新 526

D.7.1 安全上下文传递的变化 526

D.7.3 在EJB 1.1系统中加入程序性的安全措施步骤 527

D.7.2 Java 2的安全模式 527

D.7.4 在EJB 1.1系统中加入说明性的安全措施步骤 531

D.8 新的主句柄 533

D.9 EJB 1.1里的其他重要变化 534

D.10 更多的信息 535

D.11 EJB 1.1以后的发展 535

D.12 小结 536

附录E 购买EJB产品 537

E.1 符号EJB规范 537

E.2 支持实体Bean 538

E.3 持久性 538

E.3.1 Bean自己管理的持久性 538

E.3.2 容器管理持久性 539

E.4 选择基于CORBA与RMI的EJB产品 539

E.5 RMI-IIOP API的使用 539

E.8 集成层次的支持 540

E.6 经JNDI的JTA可存取性 540

E.7 协议问题 540

E.9 内存数据的高速缓存 541

E.10 可测量性 541

E.11 高度的实用性 541

E.12 安全性 541

E.13 IDE集成 542

E.14 智能负荷平衡 542

E.15 无状态的透明的结束出错 542

E.16 分组 543

E.17 合理地关机 543

E.18 实时部署 543

E.19 分布式事务处理 543

E.23 专业化的服务 544

E.22 具有Bean厂家的集成 544

E.21 异步通信的支持 544

E.20 现有企业系统的集成 544

E.24 非技术标准 545

E.25 小结 545

附录F EJB快速索引向导 547

F.1 会话Bean的图表 547

F.2 状态会话Bean的图表 548

F.3 实体Bean的图表 550

F.4 EJB API索引 554

F.4.1 CreateException 554

F.4.2 DuplicateKeyException 554

F.4.3 EJBContext 554

F.4.4 EJBException 556

F.4.5 EJBHome 556

F.4.6 EJBMetaData 557

F.4.7 EJBObject 558

F.4.8 EnterpriseBean 558

F.4.9 EntityBean 559

F.4.10 EntityContext 561

F.4.11 FinderException 561

F.4.12 Handle 561

F.4.13 HomeHandle 562

F.4.14 NoSuchEntityException 562

F.4.15 ObjectNotFoundException 562

F.4.16 RemoveException 563

F.4.17 SessionBean 563

F.4.18 SessionContext 564

F.4.19 SessionSynchronization 564

F.5 事务索引 565

返回顶部