J2EE 笔试题目(曾立整理)
Email: zengl@ics.ict.ac.cn
. 简答题:
a) 在你心中,J2EE 是什么样的?请用三句话描述清楚。
答:1. J2EE 是一个开发和运行大型的、多层次的、分布式的企业级 Web 应用的标准,它提
供了一个多层次的分布式应用模型和一系列开发技术规范。
2. J2EE 平台由一整套服务(Services)、应用程序接口(APIs)和协议构成,APIs 涵盖
了 EJB、Servlet、JSP、JDBC、JTA、 JNDI、 RMI、 JMS、JavaMail、JAAS 等。EJB 是
J2EE 的核心。
3. 目前处于不断发展、成熟阶段,虽与 dotNet 平分秋色,但相对而言,更具有潜力。
b) 会话 EJB 主要分为哪两种类型?它们的主要区别是什么?谁的性能更好,为什么?
有状态的会话 EJB 和无状态的会话 EJB。在与客户的一次会话过程中,有状态的会话 EJB
可以保存
答:会话 EJB 分为有状态会话 EJB 和无状态会话 EJB。
主要区别在于有状态会话 EJB 每个实例都与一个特定的用户相关联,因此在用户的生
存期内,有状态会话 EJB 能够保持用户的信息;一旦用户调用结束,会话 EJB 的生命期也
将结束。无状态会话 EJB 在方法调用之间不会保存用户的会话状态,一旦实例化就被加进
会话池中,各个用户都可以共用。即使用户已经消亡,bean 的生命期也不一定结束,它可
能依然存在于会话池中,供其他用户调用。
由此可见,通常,有状态会话 EJB 对系统的开销会更大。
c) EJB 的开发人员必须为每个
EJB 提供哪三个类型的 Java 对象?这些 Java 对象必须继
承或实现哪些接口(对于 Session EJB 和 Entity EJB 有区别时应该分开回答)?:
答:Remote Home 接口、Remote 接口、Bean 类实现
其中 Remote Home 要继承 javax.ejb.EJBHome 接口;Remote 要继承 javax.ejb.EJBObject
接口;Session Bean 要实现 javax.ejb.SessionBean 接口;Entity Bean 要实现 javax.ejb.EntityBean
接口。
根据 EJB2.0 规范,在相同的 JVM 中允许使用 Local Home 和 Local 接口,以提高访问
效率。本地和远程之间的选择不是互斥的,因此可以同时具有双重接口。
d) 在 EJB 中是否允许从方法中返回一个 this 引用,或者将 this 引用作为参数传递。有没
有其它方法可以获得当前 EJBObject 的引用?
答:客户端不能得到 EJB 实例本身的引用,只能得到它的 EJBObject 实例的引用,也不能
将 this 引用作为参数传递。
可以先通过调用 EJBObject 接口的 getHandle()方法,返回一个 Handle 实例,然后使
用 Handle 接口的 getEJBObject()方法获得当前 EJBObject 的引用。
e) EJB 容器的任务是什么?
答:在运行时管理 Enterprise Bean 的各个方面,包括远程访问 bean、安全性、持续、事务、
并行性和资源的访问与合用。
f) 客户怎样得到一个 EJB 实例的远程引用?
答:通过 EJB 的 Home 接口的 create()方法创建一个远程引用,当创建完成时,会返回给客
户端一个 Remote 接口。
g) EJB 可以使用哪些类型的事务划分方法? 它们各自的优势是什么?