EJB基本概念之一

来源:互联网 发布:linux apache 加载php 编辑:程序博客网 时间:2024/05/29 10:49

JNDI

(Java Naming and Directory Interface,Java命名和目录接口)是一组在Java应用中访问命名和目录服务的API

POJO

(Plain OldJava Objects),简单的java对象,实际上就是普通的JavaBeans

PO

po(persisent object)就是在Object/Relation Mapping框架中的Entiry,po的每个属性基本上都对应数据库表里面的某个字段。完全是一个符合Java Bean规范的纯Java对象,没有增加别的属性和方法。持久对象是由insert数据库创建,由数据库delete删除的。基本上持久对象生命周期和数据库密切相关。

远程客户端

客户端与其调用的EJB对象不在同一个JVM进程之中客户端与服务器之间通信的时候,数据需序列化之后用传值的方式传输

本地客户端

客户端与其调用的EJB对象不在同一个JVM进程之中客户端与服务器之间通信的时候,数据直接用传址的方式进行传输.一个企业bean可以被同时定义为@Remote和@local(注意:此时需要注明接口类@Remote(xxxx.class))

Webservice客户端                                   

支持异构平台.可以访问无状态会话bean的接口,只有在业务逻辑方法被标识为@WebMethod的时候,web service客户端才能访问到

Http Session交互过程

客户动作

服务器响应

1、打开浏览器

 

2、访问购物网站

3、创建Http Session对象

 

4、返回sessionId

5、将sessionId写入cookie中

 

6、向购物车中添加商品

 

7、向系统提交商品信息,以及session的值

8、服务器根据sessionId找到相对应的Http Session对象,同时创建购物车对象,与session绑定

9、继续添加商品或删除商品

 

10、每次向服务器提交数据的时候,都会带着一个sesssionId的信息

11、服务器通过sessionId得以辨认不同的客户端,以及维护这些客户端的状态信息










有状态的会话Bean

Ø  即EJB能够为同一客户端在多次请求(方法调用)之间保持状态信息

Ø  比如:基于某些原因(可能是因为系统需要支持多种不同类型的客户端),购物车功能做为系统的核心业务,需要EJB对象来担当(而不是HttpSession对象)。那么EJB必须能够区分不同的客户端,并分别为不同的客户端保持与其对应的状态信息

Ø  即,从某个客户端角度来看,似乎EJB对象正被它独占了一样,不会因为有任何其它的客户端同时对同一个EJB对象访问而影响其最终的计算结果

Stub

为屏蔽客户调用远程主机上的对象,必须提供某种方式来模拟本地对象,这种本地对象称为存根(stub),存根负责接收本地方法调用,并将它们委派给各自的具体实现对象