EJB 方面
94、EJB2.0 有哪些内容?分别用在什么场合? EJB2.0 和EJB1.1 的区别?
答:规范内容包括 Bean 提供者,应用程序装配者,EJB 容器,EJB 配置工具,EJB 服务提供
者,系统管理员。这里面,EJB 容器是 EJB 之所以能够运行的核心。EJB 容器管理着 EJB 的创建,
撤消,激活,去活,与数据库的连接等等重要的核心工作 。
JSP,Servlet,EJB,JNDI,JDBC,JMS.....
95、EJB 与JAVA BEAN 的区别?
答:Java Bean 是可复用的组件,对 Java Bean 并没有严格的规范,理论上讲,任何一个
Java 类都可以是一个 Bean。但通常情况下,由于 Java Bean 是被容器所创建(如 Tomcat)
的,所以 Java Bean 应具有一个无参的构造器,另外,通常 Java Bean 还要实现
Serializable 接口用于实现 Bean 的持久性。Java Bean 实际上相当于微软 COM 模型中的本地
进程内 COM 组件,它是不能被跨进程访问的。Enterprise Java Bean 相当于 DCOM,即分
布式组件。它是基于 Java 的远程方法调用(RMI)技术的,所以 EJB 可以被远程访问(跨进程、
跨计算机)。但 EJB 必须被布署在诸如 Webspere、WebLogic 这样的容器中,EJB 客户从不直
接访问真正的 EJB 组件,而是通过其容器访问。EJB 容器是 EJB 组件的代理,EJB 组件由容器
所创建和管理。客户通过容器来访问真正的 EJB 组件。
96、EJB 是基于哪些技术实现的?并说出 SessionBean 和EntityBean 的区别,
StatefulBean 和StatelessBean 的区别。
答:EJB 包括 SessionBean、EntityBean、MessageDrivenBean,基于 JNDI、RMI、JAT 等技
术实现。
SessionBean 在J2EE 应用程序中被用来完成一些服务器端的业务操作,例如访问数据库、调用
其他 EJB 组件。EntityBean 被用来代表应用系统中用到的数据。
对于客户机,SessionBean 是一种非持久性对象,它实现某些在服务器上运行的业务逻辑。
对于客户机,EntityBean 是一种持久性对象,它代表一个存储在持久性存储器中的实体的对象
视图,或是一个由现有企业应用程序实现的实体。
SessionBean还可以再细分为ÃStatefulSessionBean与ÃStatelessSessionBean,这两种
的ÃSessionBean 都可以将系统逻辑放在Ãmethod 之中执行,不同的是ÃStatefulSessionB
ean可以记录呼叫者的状态,因此通常来说,一个使用者会有一个相对应的ÃStatefulSession
Bean的实体。StatelessSessionBean虽然也是逻辑组件,但是他却不负责记录使用者状态,
也就是说当使用者呼叫ÃStatelessSessionBean的时候,EJBContainer并不会找寻特定的Ã
StatelessSessionBean的实体来执行这个Ãmethod。换言之,很可能数个使用者在执行某个Ã
StatelessSessionBean的Ãmethods时,会是同一个ÃBean的ÃInstance在执行。从内存方
面来看,ÃStatefulSessionBean与ÃStatelessSessionBean比较,ÃStatefulSessionBea
n会消耗ÃJ2EEServer较多的内存,然而ÃStatefulSessionBean的优势却在于他可以维持
使用者的状态。
97、EJB 与JAVABEAN 的区别?
答:JavaBean是可复用的组件,对 JavaBean 并没有严格的规范,理论上讲,任何一个 Java
类都可以是一个 Bean。但通常情况下,由于 JavaBean 是被容器所创建(如 Tomcat)的,所
以JavaBean 应具有一个无参的构造器,另外,通常 JavaBean 还要实现 Serializable 接口用
于实现 Bean 的持久性。JavaBean 实际上相当于微软 COM 模型中的本地进程内 COM 组件,
它是不能被跨进程访问的。EnterpriseJavaBean相当于 DCOM,即分布式组件。它是基于
Java 的远程方法调用(RMI)技术的,所以 EJB 可以被远程访问(跨进程、跨计算机)。但