简介
有些人只是想通过认证来取悦挑剔的老板,但相信你不是这种人。确实,你也想通过Su n认证业务组件开发人员(SCBCD)考试,但不仅如此,你还需要真正把EJB用到实处。你要构建应用,要对付最后期限,如果通过考试之后第二天早上就把你学过的EJB知识忘得一干二净,你肯定会受不了。
我们会看着你稳稳当当地通过考试,而且会帮你在实际中使用EJB。你会深入地了解EJB体系结构、会话、实体和消息驱动bean的生命周期、CMP、EJBQL、事务、安全、模式等等内容,还会知道基于组件的开发究竟是什么意思。你理解得越多,需要记的就越少,所以不要指望一点都不懂,通过死记硬背向大脑里塞东西。
如果你看过《Head First Java》,就会知道这本《Head First EJB》是怎样的一本书 D D它会完全出乎你的意料!如果你没有看过那本书,你要做好心理准备。《Head First EJB》应用了最新的学习理论,将知识直接送到你的大脑里(不用开刀)。你会通过不寻常的方式同这本书打交道,可以学得更深入、更快,而且最重要的是,你能真正地学以致用。使用EJB构建业务组件,这是Java的一种最流行的使用,不过SCBCD考试很让人头疼。这我们很清楚,因为我们就参与了编写这个考试的工作。因为考试确实很难,所以我们认为至少可以指引一条路,让你通过这个考试,而且只需要少买3个超大披萨,买这本书的钱就有了。
Kathy Sierra(JavaRanch.com的创始人)和Bert Bates是Sun的多个Java认证考试开发小组的成员,其中就包括SCBCD考试。这两位作者携手使用Head First概念,已经为成千上万的开发人员教授了Java技术。
目录
目录(概览)
引子 xvii
1 欢迎来到ejb世界: ejb入门 1
2 ejb体系结构:体系结构概述 61
3 表现你自己:客户视图 111
4 当个会话bean:会话bean生命周期 173
5 实体都是持久的:实体bean引言 259
6 当个实体bean:bean/实体同步 295
7 bean之间的关系:实体bean关系 373
8 得到消息:消息驱动bean 437
9 原子时代:ejb事务 469
10 bean要是坏了:ejb中的异常 525
11 保护你的秘密:ejb中的安全 569
12 部署的快乐:bean的环境 599
a 附录a:最后的模拟测验 637
目录(真正的目录)
i 引子
.让你的大脑来学ejb。你想学些东西,但是你的大脑却在帮倒忙,不让你记住这些
东西。你的大脑在想,“还是把空间留给更重要的事情吧,比方说要躲避的野兽,还有光
着身子滑雪是不是不好”。所以你该如何骗过大脑,怎么让它认为要是不知道ejb你就活
不下去了?
这本书适合谁 xviii
我们知道你的大脑在想什么 xix
元认知 xxi
让你的大脑就范 xxiii
看这本书需要些什么 xxiv
通过证书考试 xxvi
技术审校 xxviii
致谢 xxix
1欢迎来到ejb世界
enterprise javabeans(ejb)并不难。不错,想想看,如果让你自己动手
写一个可扩展性、事务性、安全性和并发性兼备的企业服务器,该是多么困难,所以至
少从这一点来看,相比之下还是使用ejb简单得多。这一章我们将开发、部署并运行一
个ejb应用,然后再深入讨论它的细节。在这一章的学习过程中,我们将分析怎样使用
ejb,ejb有什么好处,它有哪些特点,另外,我们还会(简要地)谈到ejb容器如何工
作。
考试大纲 2
ejb到底是什么? 3
不再为开发商所困! 5
它是怎么工作的? 7
幕后的动作…… 8
bean的三种类型 11
顾问bean 15
构建bean要做的5件事 16
ejb角色和职责 26
教程 28
模拟测验 59
2 ejb体系结构
ejb是基础架构。组件是一些构建模块。利用ejb,除了简单的小应用外,还可以
构建非常大的应用。这包括各种规模的应用,从复杂的victoria’s secret后端应用到简单的
cern文档处理系统,都可以利用ejb来构建。但是,作为一个体系结构,要有这样高度
的灵活性和可扩展性以及这么强大的功能,它肯定不是泛泛之辈。这种体系结构的基础往
往是一个分布式编程模型……
考试大纲 62
建立一个远程方法调用 64
关于参数和返回值 67
客户通过远程接口调用业务方法 79
ejb如何使用rmi 81
远程对象不是bean,它是bean的保镖 82
体系结构概述:会话bean 98
体系结构概述:实体bean 99
体系结构概述: 创建有状态会话bean 100
体系结构概述: 创建无状态会话bean 101
体系结构概述:消息驱动bean 106
bean的组织 108
3 表现你自己
不能让bean太隐密了。客户需要看到你有什么(消息驱动bean除外,它没有客户
视图)。advice bean在它的组件接口里提供了getadvice()方法,组件接口就是声明业务
方法的地方。不过,这并不是客户看到的全部。要记住,advice接口扩展了ejbobject,
这个ejbobject接口又有它自己的方法。这些方法客户也能看到,而且能调用。home接
口也一样。
考试大纲 112
客户到底想要什么? 113
什么是jndi? 116
portableremoteobject.narrow() (奇特的类型强制转换) 121
为会话bean编写远程home接口 125
好在我们拿到了句柄 (在线购物是要花时间的) 139
对于本地客户接口,哪些方法有意义? 148
为什么这么多删除方法? 151
远程接口和本地接口的比较 154
远程和本地方法的参数 163
模拟测验 168
4 当个会话bean
会话bean要创建和删除。如果你是一个无状态bean,那你很幸运。因为有状态
bean的一生都操纵在一个无情的客户手上。有状态bean是在一个客户的坚持下创建的,
它的存在只是要为这个客户服务。不过,啊哈,相比之下,无状态bean的生活真是帅呆
了!泳池、阳伞、饮料,一切都这么美好,这里没有乏味、没有单调,因为你要面对那
么多形形色色的客户。
考试大纲 174
容器回调,bean一生中的特殊时刻 181
bean创建 188
业务方法中可能做的bean工作 199
钝化:有状态bean实现可扩展性的机会 200
bean删除 208
编写一个会话bean:这是bean提供者的任务 230
sessioncontext:你需要它,超过了它需要你 240
模拟测验 244
5 实体都是持久的
实体bean会一直保存。实体bean一直存在。它们是底层持久存储库中某个东西的
对象表示(可以把底层持久存储库想成是数据库,因为大多数实体bean表示的就是一个关
系数据库中的某个东西)。如果有一个customer实体bean,那么可能有一个bean表示实体
tyler durden,id为#343,另一个bean表示实体donny darko,id是#42。这两个bean分别
表示两个实际的实体。实体bean只是持久存储库中已经存在的某个东西的一种具体实现。
考试大纲 260
什么是实体bean? 261
客户视角看到的实体bean 265
一个非常简单的customer实体bean 268
实体bean远程组件接口 270
实体bean远程home接口 273
客户到底想从一个实体bean home得到什么? 274
解决之道:home业务方法 278
会话bean create()与实体bean create() 281
会话bean remove()与实体bean remove() 282
实体/bean/实例的死亡 285
模拟测验 288
6 当个实体bean
实体bean就是演员。只要还活着,实体bean就要么待在池子里,要么扮演着某个
人,这是底层持久存储库里的一个人。换句话说,也就是数据库里的一个实体。当bean扮
演某个实体时,这个bean必须与底层实体保持同步。如果bean假装是某个人,比方说是
audrey leone,要是有人在数据库里降低了audrey的信贷限额,但是忘了告诉bean……
考试大纲 296
实体bean的真正强大之处在于同步 298
容器托管持久存储与bean托管持久存储 303
entitybean接口增加了新的容器回调 310
编写cmp实体bean 313
对象身份:主键 332
查找方法 339
home业务方法 345
模拟测验 362
7 bean之间的关系
实体bean需要关系。一个订单需要一位顾客。一件商品需要一个订单。一个订单需
要多件商品。实体bean可以有容器托管关系(container-managed relationships,cmr),
由容器负责几乎所有一切。生产了一个新商品吗?如果这个商品与一个订单关联,你要求
顾客给你出示他的订单时,他的订单就会显示出这个新商品。还有最好的一点,这就是可
以使用ejb-ql来编写可移植查询。
考试大纲 374
关系 378
多重性 380
cmp和cmr字段 383
级联删除可以传播 393
moviebean的ejb-ql 402
select和from是必不可少的! 409
where子句 411
collection不能调用bark()! 414
between、in、is empty和like表达式 416
关系指派 421
模拟测验 425
8 得到消息
接收消息很有意思。虽然不是特别的好玩,比如说,比不上收到ebay给你的一个真
正的smurf车灯包裹,但确实很有意思,也很高效。假设你向ebay提交了一个订单,在包
裹递送到之前你就不能离开家(否则就会错过)。会话bean和实体bean就是这样,但是利
用消息驱动bean,客户发送完消息后就可以走开。
考试大纲 438
编写消息驱动bean: bean提供者的任务 447
消息驱动bean的完整部署描述文件 449
主题和队列 450
messagedrivencontext 455
消息确认 458
模拟测验 463
9 原子时代
事务可以保护你。利用事务,可以冒点险。你可以尝试做些事情,因为你知道即使
过程中出了意外,也可以假装什么事情都没有发生。一切又能恢复到从前。ejb中的事务
是一大妙笔,你可以部署一个有定制事务行为的bean,而不用去动这个bean的源代码!但
是如果需要,也确实可以编写事务代码。
考试大纲 470
acid测试 472
ejb中是如何做到的 474
事务传播 475
怎么建立(或得到)一个事务? 476
两个接口里都有setrollbackonly() 487
bmt可能是一个很糟糕的想法。bmt会破坏bean重用 490
容器托管事务 491
属性的作用 492
必须标记属性的方法(cmt bean) 498
“未指定的事务上下文” 499
cmt的部署描述文件示例 503
sessionsynchronization“特殊时刻” 512
模拟测验 516
10 bean要是坏了
要做最坏的打算。尽管你竭尽全力,但事情还是有可能出错。也许很可怕,很悲
惨,错得很厉害。你要保护自己,而且可能别人还依赖着你。不能只是因为一个bean抛出
一个异常就使得整个程序都陷于崩溃。应用必须继续下去。悲剧是不能避免的,但是你可
以做好准备。你要知道哪些可以恢复,哪些不能恢复,另外要知道如果出现一个问题该归
咎于谁。
考试大纲 526
ejb中,异常有两类 532
对于一个应用异常,容器会…… 533
对于一个系统异常,容器会…… 534
remoteexception与ejbexception 539
bean提供者的职责 541
5个标准ejb应用异常 548
常用的系统异常 551
模拟测验 563
11保护你的秘密
守住你的秘密。安全所涉及的就是认证和授权。首先,你必须证明你的身份,然后我
们会告诉你可以做哪些事情。在ejb中,安全很简单,因为你只需要处理授权,确定谁能
调用bean的哪些方法。不过有一个问题要注意……如果你是一个bean提供者或者应用组装
人员,你可能不知道最终的用户到底是什么人!
考试大纲 570
ejb中如何做到安全 573
应用组装人员的任务:访问控制 574
定义方法许可 578
部署人员的任务:把实际的人映射到抽象的角色 583
类级安全与实例级安全 586
使用程序方式实现安全来定制方法 587
使用 [run-as]安全身份假装成别人在调用…… 591
采用 [run-as]的安全上下文传播 592
模拟测验 593
12 部署的快乐
bean简直让你费尽力气。你要编写代码、完成编译,进行测试。这个过程反反复
复地做了无数次。你最不希望的就是,仅仅因为部署配置中的一个小小的改变,就要对已
经测试过的源代码再做改动。也许是数据库的名字变了,另外,如果你根本拿不到源代码
怎么办?ejb通过可定制的部署描述文件和bean的一个特殊环境可以支持bean重用。
考试大纲 600
bean的特殊位置java:comp/env 602
创建和使用子上下文 609
bean提供者和应用组装人员的职责 617
部署人员的职责 618
记住谁做什么 619
哪些api是ejb 2.0 保证支持的? 621
ejb-jar中必须有什么? 624
编程限制 625
模拟测验 627
a 附录
最后的模拟测验。终于到它了。70个问题。语调、内容和难度都和实际考试几乎相
同。这一点我们很清楚(因为考试就是我们开发的)。
最后的模拟测验 637
i 索引 685
引子 xvii
1 欢迎来到ejb世界: ejb入门 1
2 ejb体系结构:体系结构概述 61
3 表现你自己:客户视图 111
4 当个会话bean:会话bean生命周期 173
5 实体都是持久的:实体bean引言 259
6 当个实体bean:bean/实体同步 295
7 bean之间的关系:实体bean关系 373
8 得到消息:消息驱动bean 437
9 原子时代:ejb事务 469
10 bean要是坏了:ejb中的异常 525
11 保护你的秘密:ejb中的安全 569
12 部署的快乐:bean的环境 599
a 附录a:最后的模拟测验 637
目录(真正的目录)
i 引子
.让你的大脑来学ejb。你想学些东西,但是你的大脑却在帮倒忙,不让你记住这些
东西。你的大脑在想,“还是把空间留给更重要的事情吧,比方说要躲避的野兽,还有光
着身子滑雪是不是不好”。所以你该如何骗过大脑,怎么让它认为要是不知道ejb你就活
不下去了?
这本书适合谁 xviii
我们知道你的大脑在想什么 xix
元认知 xxi
让你的大脑就范 xxiii
看这本书需要些什么 xxiv
通过证书考试 xxvi
技术审校 xxviii
致谢 xxix
1欢迎来到ejb世界
enterprise javabeans(ejb)并不难。不错,想想看,如果让你自己动手
写一个可扩展性、事务性、安全性和并发性兼备的企业服务器,该是多么困难,所以至
少从这一点来看,相比之下还是使用ejb简单得多。这一章我们将开发、部署并运行一
个ejb应用,然后再深入讨论它的细节。在这一章的学习过程中,我们将分析怎样使用
ejb,ejb有什么好处,它有哪些特点,另外,我们还会(简要地)谈到ejb容器如何工
作。
考试大纲 2
ejb到底是什么? 3
不再为开发商所困! 5
它是怎么工作的? 7
幕后的动作…… 8
bean的三种类型 11
顾问bean 15
构建bean要做的5件事 16
ejb角色和职责 26
教程 28
模拟测验 59
2 ejb体系结构
ejb是基础架构。组件是一些构建模块。利用ejb,除了简单的小应用外,还可以
构建非常大的应用。这包括各种规模的应用,从复杂的victoria’s secret后端应用到简单的
cern文档处理系统,都可以利用ejb来构建。但是,作为一个体系结构,要有这样高度
的灵活性和可扩展性以及这么强大的功能,它肯定不是泛泛之辈。这种体系结构的基础往
往是一个分布式编程模型……
考试大纲 62
建立一个远程方法调用 64
关于参数和返回值 67
客户通过远程接口调用业务方法 79
ejb如何使用rmi 81
远程对象不是bean,它是bean的保镖 82
体系结构概述:会话bean 98
体系结构概述:实体bean 99
体系结构概述: 创建有状态会话bean 100
体系结构概述: 创建无状态会话bean 101
体系结构概述:消息驱动bean 106
bean的组织 108
3 表现你自己
不能让bean太隐密了。客户需要看到你有什么(消息驱动bean除外,它没有客户
视图)。advice bean在它的组件接口里提供了getadvice()方法,组件接口就是声明业务
方法的地方。不过,这并不是客户看到的全部。要记住,advice接口扩展了ejbobject,
这个ejbobject接口又有它自己的方法。这些方法客户也能看到,而且能调用。home接
口也一样。
考试大纲 112
客户到底想要什么? 113
什么是jndi? 116
portableremoteobject.narrow() (奇特的类型强制转换) 121
为会话bean编写远程home接口 125
好在我们拿到了句柄 (在线购物是要花时间的) 139
对于本地客户接口,哪些方法有意义? 148
为什么这么多删除方法? 151
远程接口和本地接口的比较 154
远程和本地方法的参数 163
模拟测验 168
4 当个会话bean
会话bean要创建和删除。如果你是一个无状态bean,那你很幸运。因为有状态
bean的一生都操纵在一个无情的客户手上。有状态bean是在一个客户的坚持下创建的,
它的存在只是要为这个客户服务。不过,啊哈,相比之下,无状态bean的生活真是帅呆
了!泳池、阳伞、饮料,一切都这么美好,这里没有乏味、没有单调,因为你要面对那
么多形形色色的客户。
考试大纲 174
容器回调,bean一生中的特殊时刻 181
bean创建 188
业务方法中可能做的bean工作 199
钝化:有状态bean实现可扩展性的机会 200
bean删除 208
编写一个会话bean:这是bean提供者的任务 230
sessioncontext:你需要它,超过了它需要你 240
模拟测验 244
5 实体都是持久的
实体bean会一直保存。实体bean一直存在。它们是底层持久存储库中某个东西的
对象表示(可以把底层持久存储库想成是数据库,因为大多数实体bean表示的就是一个关
系数据库中的某个东西)。如果有一个customer实体bean,那么可能有一个bean表示实体
tyler durden,id为#343,另一个bean表示实体donny darko,id是#42。这两个bean分别
表示两个实际的实体。实体bean只是持久存储库中已经存在的某个东西的一种具体实现。
考试大纲 260
什么是实体bean? 261
客户视角看到的实体bean 265
一个非常简单的customer实体bean 268
实体bean远程组件接口 270
实体bean远程home接口 273
客户到底想从一个实体bean home得到什么? 274
解决之道:home业务方法 278
会话bean create()与实体bean create() 281
会话bean remove()与实体bean remove() 282
实体/bean/实例的死亡 285
模拟测验 288
6 当个实体bean
实体bean就是演员。只要还活着,实体bean就要么待在池子里,要么扮演着某个
人,这是底层持久存储库里的一个人。换句话说,也就是数据库里的一个实体。当bean扮
演某个实体时,这个bean必须与底层实体保持同步。如果bean假装是某个人,比方说是
audrey leone,要是有人在数据库里降低了audrey的信贷限额,但是忘了告诉bean……
考试大纲 296
实体bean的真正强大之处在于同步 298
容器托管持久存储与bean托管持久存储 303
entitybean接口增加了新的容器回调 310
编写cmp实体bean 313
对象身份:主键 332
查找方法 339
home业务方法 345
模拟测验 362
7 bean之间的关系
实体bean需要关系。一个订单需要一位顾客。一件商品需要一个订单。一个订单需
要多件商品。实体bean可以有容器托管关系(container-managed relationships,cmr),
由容器负责几乎所有一切。生产了一个新商品吗?如果这个商品与一个订单关联,你要求
顾客给你出示他的订单时,他的订单就会显示出这个新商品。还有最好的一点,这就是可
以使用ejb-ql来编写可移植查询。
考试大纲 374
关系 378
多重性 380
cmp和cmr字段 383
级联删除可以传播 393
moviebean的ejb-ql 402
select和from是必不可少的! 409
where子句 411
collection不能调用bark()! 414
between、in、is empty和like表达式 416
关系指派 421
模拟测验 425
8 得到消息
接收消息很有意思。虽然不是特别的好玩,比如说,比不上收到ebay给你的一个真
正的smurf车灯包裹,但确实很有意思,也很高效。假设你向ebay提交了一个订单,在包
裹递送到之前你就不能离开家(否则就会错过)。会话bean和实体bean就是这样,但是利
用消息驱动bean,客户发送完消息后就可以走开。
考试大纲 438
编写消息驱动bean: bean提供者的任务 447
消息驱动bean的完整部署描述文件 449
主题和队列 450
messagedrivencontext 455
消息确认 458
模拟测验 463
9 原子时代
事务可以保护你。利用事务,可以冒点险。你可以尝试做些事情,因为你知道即使
过程中出了意外,也可以假装什么事情都没有发生。一切又能恢复到从前。ejb中的事务
是一大妙笔,你可以部署一个有定制事务行为的bean,而不用去动这个bean的源代码!但
是如果需要,也确实可以编写事务代码。
考试大纲 470
acid测试 472
ejb中是如何做到的 474
事务传播 475
怎么建立(或得到)一个事务? 476
两个接口里都有setrollbackonly() 487
bmt可能是一个很糟糕的想法。bmt会破坏bean重用 490
容器托管事务 491
属性的作用 492
必须标记属性的方法(cmt bean) 498
“未指定的事务上下文” 499
cmt的部署描述文件示例 503
sessionsynchronization“特殊时刻” 512
模拟测验 516
10 bean要是坏了
要做最坏的打算。尽管你竭尽全力,但事情还是有可能出错。也许很可怕,很悲
惨,错得很厉害。你要保护自己,而且可能别人还依赖着你。不能只是因为一个bean抛出
一个异常就使得整个程序都陷于崩溃。应用必须继续下去。悲剧是不能避免的,但是你可
以做好准备。你要知道哪些可以恢复,哪些不能恢复,另外要知道如果出现一个问题该归
咎于谁。
考试大纲 526
ejb中,异常有两类 532
对于一个应用异常,容器会…… 533
对于一个系统异常,容器会…… 534
remoteexception与ejbexception 539
bean提供者的职责 541
5个标准ejb应用异常 548
常用的系统异常 551
模拟测验 563
11保护你的秘密
守住你的秘密。安全所涉及的就是认证和授权。首先,你必须证明你的身份,然后我
们会告诉你可以做哪些事情。在ejb中,安全很简单,因为你只需要处理授权,确定谁能
调用bean的哪些方法。不过有一个问题要注意……如果你是一个bean提供者或者应用组装
人员,你可能不知道最终的用户到底是什么人!
考试大纲 570
ejb中如何做到安全 573
应用组装人员的任务:访问控制 574
定义方法许可 578
部署人员的任务:把实际的人映射到抽象的角色 583
类级安全与实例级安全 586
使用程序方式实现安全来定制方法 587
使用 [run-as]安全身份假装成别人在调用…… 591
采用 [run-as]的安全上下文传播 592
模拟测验 593
12 部署的快乐
bean简直让你费尽力气。你要编写代码、完成编译,进行测试。这个过程反反复
复地做了无数次。你最不希望的就是,仅仅因为部署配置中的一个小小的改变,就要对已
经测试过的源代码再做改动。也许是数据库的名字变了,另外,如果你根本拿不到源代码
怎么办?ejb通过可定制的部署描述文件和bean的一个特殊环境可以支持bean重用。
考试大纲 600
bean的特殊位置java:comp/env 602
创建和使用子上下文 609
bean提供者和应用组装人员的职责 617
部署人员的职责 618
记住谁做什么 619
哪些api是ejb 2.0 保证支持的? 621
ejb-jar中必须有什么? 624
编程限制 625
模拟测验 627
a 附录
最后的模拟测验。终于到它了。70个问题。语调、内容和难度都和实际考试几乎相
同。这一点我们很清楚(因为考试就是我们开发的)。
最后的模拟测验 637
i 索引 685
助你通过Sun认证业务组件开发人员考试
- 名称
- 类型
- 大小
光盘服务联系方式: 020-38250260 客服QQ:4006604884
云图客服:
用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问
Video Player
×
Audio Player
×
pdf Player
×