1.2 客户端 (Web客户端,应用程序客户端)
1.2.1 Web客户端:
一般简单讲,就是显示由在Web层的web组件中生成的包含Html 及 XML标记语言的动态Web页面(.jsp[.do])经由用户请求访问从服务器端返回过来的Web页面;
1.2.2 Applet:
Applet是运行在客户端的小应用程序,他基于Java虚拟机才能运行的,一般安装在Web浏览器;他可以嵌入到Web浏览器中,这样当程序是用浏览器来浏览访问的话,客户的机子就需要安装插件(JAVA虚拟机);
1.2.3 应用程序客户端:
应用程序客户端可以提供比Web页面(标记语言)更丰富的用户界面,他也运行于客户端中,但也可以访问EJB的商业逻辑;如果需要求授权,应用程序序也可以通过HTTP访问Web层中的Servlet;
1.3服务器端
1.3.1 Web组件:
Web组件一般包括Servlet组件,JSP组件,Servlet是用于处理用户请求与响应返回的Java语言类,Jsp与Servlet类似,但它可以包括html等静态界面标记语言,jsp通过servlet来响应用户的请求操作。
按J2EE规范,HTML与Applet,以及其他的一些类功能,都不能称为web组件;
Web组件也可以包括enterprise javaBean组件,用于接收用户的请求发送到EJB组件层中商业逻辑中处理;同样的,客户端组件中,也可以包含Enterprise Bean组件,web客户端,appliet, 应用程序客户端都可以直接访问 enterprise bean组件;
1.3.2 业务逻辑组件:
业务逻辑代码代表了与商业领域相对应的逻辑(比如:银行),业务逻辑组件处于 J2EE服务器的 EJB容器上,用于接收从客户传来的请求数据,保存到或从信息层返回给客户;
业务逻辑组件的 Enterprise javaBean(EJB),有三种Bean:
1). Session Beans(会话Bean): 由用户访问业务逻辑层产生的一个临时短暂的会话,但访问完后,Session与数据都将消失;
2). Entity Beans(实话Bean):
一般可称为实体类,按最新的约定,一般为POJO类,他反应与之对应的数据表中一条记录,描述一个数据库表中一条持久稳固的数据实体,实体bean与会话bean相对应,但会话结构,或用户关闭访问连接,数据实体被底层的数据库来存储;
一般用于与数据库操作为hibernate,
xBatis
3). Message-Driver Beans(消息驱动bean):结合了session bean和java消息服务(JMS)的信息监听者的功能,它允许商务组件异步访问JMS;
1.4 J2EE容器
任何的J2EE组件在执行都必须装配到应用程序中,并布暑到要应的容器,容器用于管理组件并执行组件,容器是组件以及支持组件的底层平台的特定功能的接口,比如Web组件,就必须先载入Web 容器后才能运行;
装配的过程包括J2EE应用程序的每个组件以及由J2EE应用程序本来定制容器的设置,容器设置定制了由J2EE服务器支持的底层支持,这将包括安全性,事务管理,JAVA命名目录接口(JNDI)搜寻以及远程连接服务等:
J2EE安全模型:J2EE让开发者配置Web组件及Enterprise javaBean使用得只有授权的才能访问: [J2EE安全说明]
J2EE事务模型:指定方法之间的关系以组成一个事务,这样事务内所有方法就组成一个整体![J2EE事务]
JNDI模型:为应用系统中的多种命名目录提供统一的访问接口,使供应商的组件可以访问命名目录服务; [JNDI服务]
J2EE远程连接服务管理客户端与Enterprise javBean之间的底层通迅,使得客户端调用EJB就像直接调用虚拟机上的一样;
J2EE这种可编程式的方式使得同一个的J2EE应用程序组件根据布暑的位置的不同而有所不同,比如Enterprise bean在不同产品中的数据库访问级别!
J2EE容器还管理着包括Sevlets, Enterprise bena的生期财期,数据库连接池以及J2EE APIs中介绍的J2EE平台API等不能配置的服务,虽然数据库持久化不可配置,但允许通过在自己的bean中编写适的代码来实现诸如finder的方法,或数据持久缓冲区的方法来扩展数据库持久化容器的控制!
J2EE的容器有:
1). 应用程序客户端(Application Client)容器:他位于客户中,用于运行应用程序客户端组件;
2). Applet容器:运行客户端中,用于运行applet程序,由位客户端中的浏览器及插件组合;
3). Web容器:位于J2EE服务器中,管理运行JSP与Servlet组件;
4). EJB容器:位于J2EE服务器中,负责管理 Enterprise javabean的运行;