当前位置:首页 > 工业技术
EJB 2.0企业级应用程序开发
EJB 2.0企业级应用程序开发

EJB 2.0企业级应用程序开发PDF电子书下载

工业技术

  • 电子书积分:15 积分如何计算积分?
  • 作 者:(美)Chuck Cavaness,(美)Brian Keeton著;智慧东方工作室译
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2002
  • ISBN:7111099109
  • 页数:482 页
图书介绍:
《EJB 2.0企业级应用程序开发》目录

第一部分 开发EJB 1

第1章 企业级应用程序导论 1

1.1 EJB体系结构 1

1.2 基于组件的分布式计算 3

1.2.1 软件组件的快速复习 3

1.2.2 将组件集合到体系结构中 4

1.3 N层体系结构 5

1.3.1 两层组件体系结构 5

1.3.2 N层组件体系结构 6

1.4 为什么使用EJB 6

1.4.1 “编写一次,多处运行”原则 7

1.4.2 规范与实现分隔 7

1.4.3 提供互用性 7

1.4.4 开发者可以专注于商业逻辑 8

1.4.5 与CORBA/IIOP协议兼容 8

第2章 一个拍卖网站的实例*9++2.1 拍卖实例概述 9

2.2 英式拍卖的概述 9

2.3 选择要实现的用例 11

2.3.1 创建拍卖 14

2.3.2 取消拍卖 14

2.3.3 指定买受人 14

2.3.4 结束拍卖 14

2.3.5 查看拍卖 14

2.3.6 查看应价历史 14

2.3.7 浏览拍卖 14

2.3.8 查看拍卖细节 15

2.3.9 应价拍卖 15

2.3.10 查看账簿历史 15

2.4 定义对象模型 15

2.4.1 标识商业对象 15

2.4.2 标识应用程序控制者 17

第3章 EJB概念 20

3.1 提早掌握概念 20

3.2 什么是Enterprise Bean 20

3.2.1 实体bean 21

3.2.2 会话bean 21

3.2.3 消息驱动bean 22

3.3 EJB角色及其责任 22

3.3.1 bean提供者 23

3.3.2 应用程序集中者 24

3.3.3 EJB部署者 25

3.3.4 EJB服务器提供者 25

3.3.5 EJB容器提供者 26

3.3.6 系统管理员 27

3.4 本地EJB客户机与远程EJB客户机的对比 27

3.4.1 本地EJB客户机 27

3.4.2 远程EJB客户机 27

3.5 使用RMI与EJB通信 28

3.5.1 什么是根和干 28

3.5.2 在IIOP上使用RMI 34

3.6 通过EJB的组件接口来访问EJB 36

3.7 使用Home接口定位企业bean 38

3.8 决定是否使用一个本地或远程客户机 40

3.8.1 本地模型通常可提供更好的性能 40

3.8.2 本地模型的访问粒度最细 41

3.8.3 远程模型提供更好的位置透明度 41

3.8.4 远程客户机必须处理远程异常 41

3.9 EJB的创建和删除 41

3.10 钝化和活化 42

3.11 对象池 44

3.12 句柄 45

3.13 EJB服务器和容器的实现 46

第4章 Java的命名和目录接口 48

4.1 为什么应用程序需要命名服务和目录服务 48

4.1.1 命名服务 48

4.1.2 目录服务 50

4.2 JNDI体系结构概述 50

4.3 选择和配置JNDI提供者 52

4.4 JNDI环境属性 53

4.4.1 java.naming.factory.initial 55

4.4.2 java.naming.provider.url 56

4.5 设置JNDI环境属性 56

4.5.1 用散列表设置环境属性 56

4.5.2 使用系统属性 56

4.5.3 使用资源文件 57

4.5.4 用于查找资源文件的搜索算法 59

4.6 Context和InitialContext对象 59

4.7 获得Context对象的环境 63

4.8 使用lookup方法定位JNDI资源 65

4.9 定位EJB对象 66

4.10 访问EJB的环境 67

4.11 通过InitialContext建立安全性 68

4.12 JNDI和群集 69

4.13 疑难解答 70

第5章 实体bean 71

5.1 什么是实体bean 71

5.1.1 商业逻辑 72

5.1.2 粗粒度对象 72

5.1.3 表达从属对象 73

5.1.4 标识拍卖实体对象 74

5.1.5 bean提供者责任 75

5.2 声明组件接口 76

5.2.1 实体bean的客户机视图 76

5.2.2 显露商业方法 77

5.2.3 命名约定 78

5.2.4 拍卖组件接口 79

5.3 定义主键类 91

5.3.1 使用单一字段键 91

5.3.2 使用多字段键 92

5.3.3 在部署时指定主键 93

5.4 声明Home接口 94

5.4.1 创建实体bean 94

5.4.2 查找实体bean 95

5.4.3 删除实体bean 96

5.4.4 声明Home接口商业方法 96

5.4.5 EnglishAuctionHome接口 96

5.5 实现实体bean 97

5.5.1 EntityBean接口 98

5.5.2 EntityContext接口 98

5.5.3 商业方法 99

5.5.4 Home方法 100

5.5.5 回调方法和实体bean的生命周期 100

5.5.6 访问环境 102

5.6 继承和实体bean 103

5.7 实体bean有用吗 105

第6章 bean管理的持久性 107

6.1 选择自己管理持久性 107

6.2 JDBC入门 108

6.2.1 Connection接口 108

6.2.2 PreparedStatement接口 109

6.2.3 ResultSet接口 110

6.2.4 SQLException类 110

6.3 配置数据源 110

6.3.1 定义连接池 111

6.3.2 定义资源管理者连接工厂的引用 112

6.3.3 从EJB内获得连接 113

6.3.4 拍卖模式 114

6.4 创建实体bean 116

6.5 载入和存储实体 121

6.5.1 实现ejbLoad 121

6.5.2 实现ejbStore 123

6.6 访问其他实体bean 128

6.7 实现Finder方法 130

6.8 删除实体 132

6.9 使用BMP部署实体bean 134

6.10 疑难解答 141

第7章 容器管理的持久性 143

7.1 构建可移植的实体bean 143

7.1.1 CMP和从属对象 143

7.1.2 将拍卖的实例转移到CMP 144

7.2 声明CMP实体bean 145

7.2.1 定义CMP字段 146

7.2.2 定义CMR字段 148

7.2.3 从属的值类 149

7.3 实现容器回调方法 150

7.3.1 指派EntityContext 150

7.3.2 创建和删除 151

7.3.3 主键的产生 152

7.3.4 载入和存储 152

7.3.5 钝化和活化 153

7.3.6 实现Home方法 153

7.3.7 声明Select方法 153

7.4 使用CMP部署实体bean 154

7.4.1 抽象持久性模式 154

7.4.2 实现Finder和Select方法 158

7.4.3 将抽象持久性模式映射到数据库 159

7.4.4 CMP bean的容器实现 163

7.4.5 测试拍卖实例 167

7.5 管理关系 167

7.6 使用EJB 1.1 CMP 168

7.7 疑难解答 169

第8章 EJB查询语言 171

8.1 什么是EJB查询语言 171

8.2 定义FROM从句 172

8.2.1 标识变量 172

8.2.2 路径表达式 174

8.3 定义WHERE从句 174

8.3.1 输入参数 175

8.3.2 表达式和运算符 175

8.4 定义SELECT从句 178

8.5 使用内建函数 179

8.5.1 字符串函数 179

8.5.2 运算函数 180

8.6 BNF记号法中的EJB QL语法 180

8.7 疑难解答 183

第9章 会话bean 184

9.1 什么是会话bean 184

9.2 无状态会话bean与状态会话bean之间的不同 185

9.2.1 标识拍卖的会话bean 186

9.2.2 bean提供者责任 187

9.3 声明组件接口 187

9.3.1 比较对象标识 188

9.3.2 拍卖组件接口 189

9.4 声明Home接口 194

9.4.1 创建会话bean 195

9.4.2 删除会话bean 195

9.4.3 AuctionCheckoutHome接口 196

9.5 实现会话bean 196

9.5.1 SessionBean接口 197

9.5.2 SessionContext接口 197

9.5.3 会话bean的生命周期 198

9.5.4 维持对话状态 201

9.5.5 访问环境 202

9.5.6 访问其他EJB 202

9.6 部署会话bean 204

9.7 重入问题 209

9.8 疑难解答 209

第10章 Java消息服务 211

10.1 消息传递简介 211

10.1.1 什么是面向消息的中间件 211

10.1.2 Java消息服务作为面向消息的中间件 212

10.1.3 各种JMS实现的不同 212

10.2 JMS体系结构的组件 213

10.2.1 消息生产者 213

10.2.2 消息使用者 214

10.2.3 JMS消息 214

10.2.4 被管理的JMS对象 214

10.2.5 命名服务 214

10.3 两个JMS消息的模型 214

10.3.1 点对点 214

10.3.2 发布/订阅 215

10.4 JMS的接口 215

10.4.1 ConnectionFactory 216

10.4.2 Connection 216

10.4.3 Session 216

10.4.4 Destination 217

10.4.5 MessageProducer和Message_Consumer 218

10.4.6 Message 218

10.5 JMS消息的详细描述 219

10.5.1 消息标题 219

10.5.2 消息属性 221

10.5.3 消息主体 221

10.6 消息的选择和过滤 222

10.6.1 设置标题和属性字段 222

10.6.2 指定消息选择器的查询字符串 222

10.7 使用JMS点对点模型 223

10.7.1 创建JMS管理对象 224

10.7.2 接收来自队列的消息 224

10.7.3 将消息发送到队列 235

10.7.4 运行队列的实例 240

10.8 使用JMS发布/订阅模型 240

10.8.1 创建JMS管理对象 241

10.8.2 将订阅者添加到主题 241

10.8.3 将消息发送到主题 248

10.8.4 运行主题的实例 252

10.8.5 耐久性订阅 253

10.9 同步传递消息与异步传递消息的对比 254

10.10 消息的持久性 255

10.11 随同JMS使用事务 255

10.12 随同EJB使用JMS 255

10.13 疑难解答 256

第11章 消息驱动bean 257

11.1 什么是消息驱动bean 257

11.1.1 消息驱动bean是匿名的 257

11.1.2 消息驱动bean是无状态的 258

11.2 消息驱动bean和容器 258

11.3 随同EJB使用消息驱动bean 258

11.4 随同消息驱动bean使用JMS队列或主题 259

11.5 创建消息驱动bean 259

11.5.1 MessageDrivenBean接口 259

11.5.2 JMS MessageListener接口 260

11.5.3 创建消息驱动bean类 261

11.6 部署消息驱动bean 265

11.7 将消息发送到消息驱动bean 267

11.8 确认来自消息驱动bean的消息 267

11.9 随同消息驱动bean使用事务 267

11.10 疑难解答 267

第12章 事务 269

12.1 理解事务 269

12.2 事务的特性 270

12.2.1 原子性 270

12.2.2 一致性 270

12.2.3 隔离性 271

12.2.4 耐久性 271

12.3 用Java事务API编程 272

12.3.1 对象事务服务 272

12.3.2 Java事务API 274

12.3.3 JTA和Java事务服务 278

12.4 使用容器管理的事务 278

12.4.1 指派事务属性 279

12.4.2 不要忘记阅读文档 284

12.4.3 事务同步 285

12.5 使用bean管理的事务 286

12.5.1 UserTransaction接口 287

12.5.2 管理事务 289

12.5.3 针对状态会话bean的bean管理的划分 289

12.6 使用客户机划分的事务 289

12.7 隔离对资源的访问 290

12.7.1 选择隔离级别 290

12.7.2 性能影响 291

12.7.3 程序化地改变隔离级别 291

12.8 疑难解答 292

第13章 异常处理 294

13.1 EJB异常处理 294

13.2 应用程序异常 294

13.2.1 标准的EJB应用程序异常 296

13.2.2 扩展应用程序异常 298

13.3 系统异常 300

13.3.1 标准的EJB系统异常 301

13.3.2 抛出系统异常 302

13.3.3 抛出来自消息驱动bean的异常 304

13.4 异常与事务 304

13.4.1 在事务期间抛出应用程序异常 304

13.4.2 在事务期间抛出系统异常 307

13.5 包装异常 309

13.6 疑难解答 309

第14章 安全性设计和管理 311

14.1 应用程序安全的重要性 311

14.2 理解应用程序的安全性要求 311

14.2.1 物理上的分隔层 312

14.2.2 基于用户名/密码的用户级访问 313

14.2.3 所使用的不同厂商产品 313

14.2.4 所使用的敏感和非敏感数据 313

14.3 安全性的基本概念 313

14.3.1 身份验证和授权 314

14.3.2 数据的完整性 314

14.3.3 机密性和数据保密 314

14.3.4 认可 315

14.3.5 主体和用户 315

14.3.6 主题 315

14.3.7 证书 315

14.3.8 组和角色 315

14.3.9 访问控制列表和权限 316

14.3.10 安全性区域 316

14.4 Java安全性基础 316

14.4.1 Java ClassLoader 318

14.4.2 权限类 318

14.4.3 Java SecurityManager 318

14.4.4 AccessController类 318

14.4.5 AccessControlContext类 319

14.4.6 特许代码 319

14.5 随同EJB和J2EE使用安全性 320

14.5.1 使用纲领安全性 321

14.5.2 使用说明安全性 323

14.5.3 在部署描述符中指定标识 326

14.5.4 将部署角色映射到物理环境 326

14.6 拟订拍卖安全性 327

14.6.1 创建拍卖安全性区域的模式 328

14.6.2 设计安全性区域的访问 330

14.6.3 在Web层中使用安全属性 331

14.6.4 传播主体 335

14.7 Java身份验证和授权服务 335

14.7.1 身份验证 335

14.7.2 授权 336

14.7.3 JAAS核心类 336

第15章 部署 340

15.1 部署描述符和EJB角色 340

15.2 bean提供者的责任 341

15.2.1 全体文件结构*341++++15.2.2 enterprise-beans元素 342

15.2.3 relationships元素 348

15.2.4 assembly-descriptor和ejb-client-jar元素 350

15.3 应用程序集中者的责任 350

15.3.1 assembly-descriptor元素 350

15.3.2 修改enterprise-beans条目 354

15.4 部署者的责任 355

15.5 包装EJB 356

15.6 疑难解答 356

第二部分 设计与性能 359

第16章 EJB设计的范式和策略 359

16.1 什么是范式 359

16.2 EJB策略 360

16.3 设计EJB类和接口 360

16.3.1 设计粗粒度企业bean 360

16.3.2 使用商业方法接口 361

16.3.3 使用回调方法的抽象超类 365

16.3.4 使用容器管理的事务 367

16.4 管理客户机访问 367

16.4.1 会话bean外观 367

16.4.2 将视图对象返回客户机 368

16.4.3 引用客户机中的Home和组件接口 370

16.5 在EJB中实现一个孤子 371

16.6 疑难解答 372

第17章 性能 373

17.1 性能在设计中的作用 373

17.2 最小化远程调用 374

17.3 优化实体bean的持久性 376

17.3.1 选择CMP实现 376

17.3.2 必要时仅执行ejbStore 377

17.3.3 为BMP从属对象使用Lazy Loading 378

17.3.4 使用只读实体bean 380

17.4 构建拾取列表 381

17.5 管理事务 383

17.5.1 事务划分 383

17.5.2 隔离级 384

17.6 疑难解答 384

第18章 应用程序的性能和负载测试 385

18.1 为什么进行应用程序的负载测试 385

18.2 bean的性能测试 386

18.3 bean的负载测试 388

18.4 使用ECperf 1.0 392

18.5 疑难解答 392

第三部分 构建Web层 395

第19章 为EJB构建表示层 395

19.1 表示层的不同类型 395

19.2 使用外观范式来隐藏EJB 396

19.3 随同EJB使用Servlet和JSP 401

19.4 使用JSP标记库 406

19.5 使用Strut开放源码Framework 406

19.6 在Web服务器或状态会话bean中高速缓存 406

第四部分 高级概念 409

第20章 分布性和EJB互用性 409

20.1 互用性概述 409

20.2 可移植性与互用性的对比 409

20.3 EJB 2.0互用性的目的 409

20.4 CORBA与EJB的关系 410

20.5 远程调用互用性 411

20.5.1 GIOP和IIOP协议 411

20.5.2 IIOP之上的RMI 411

20.5.3 使用双向GIOP 412

20.5.4 远程接口和CORBA IDL 412

20.5.5 根和客户机视图类 412

20.6 事务互用性 413

20.6.1 CORBA的对象事务服务 413

20.6.2 对于不支持事务互用性的容器的要求 413

20.7 命名互用性 413

20.8 安全互用性 414

20.8.1 容器之间的安全互用性 414

20.8.2 使用IIOP传播主体和授权数据 414

第21章 水平服务 415

21.1 什么是水平服务 415

21.2 由EJB提供的水平服务 418

21.3 传统购买与构建分析的对比 418

21.4 拍卖实例中的水平服务 419

21.4.1 拍卖的记录服务 419

21.4.2 拍卖的电子邮件支持服务 420

21.5 构建拍卖的记录服务 420

21.5.1 开发记录结构 421

21.5.2 创建记录API 422

21.5.3 创建记录SPI 428

21.5.4 构建两个记录服务实现 430

21.5.5 可用的商业记录服务 440

21.6 Java 1.4记录API 440

21.7 构建电子邮件水平服务 441

21.7.1 构建电子邮件水平服务 441

21.7.2 构建电子邮件API 442

21.7.3 构建电子邮件服务的消息驱动bean 447

21.7.4 配置电子邮件所需的属性 450

21.8 疑难解答 452

第22章 EJB群集概念 454

22.1 太多不一定是件好事 454

22.2 什么是群集 454

22.2.1 可伸缩性 455

22.2.2 高可用性 455

22.3 在Web层中群集 456

22.4 在EJB层中群集 457

22.4.1 群集命名服务 457

22.4.2 群集无状态会话bean 458

22.4.3 群集实体bean 458

22.4.4 群集状态会话bean 458

22.4.5 群集JMS 458

22.4.6 群集JDBC连接 459

22.5 单VM结构与多VM结构的对比 459

第23章 EJB 2.0编程限制 460

23.1 限制的目的 460

23.2 EJB 2.0的限制 460

23.2.1 不能使用读/写静态字段 460

23.2.2 使用线程和同步 461

23.2.3 java.io包的使用限制 462

23.2.4 套接字的使用限制 463

23.2.5 Reflection API的使用限制 463

23.2.6 类装载器和安全管理器的使用限制 463

23.2.7 AWT输入/输出的使用限制 463

23.2.8 本地库的使用限制 464

23.2.9 this引用的使用限制 464

23.3 小结 464

第五部分 附录 465

附录A EJB 2.0 API 465

附录B 自EJB 1.1的变化 480

附录C 光盘中的内容 483

相关图书
作者其它书籍
返回顶部