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的运行;

EIS层 (EIS容器)

该层主要是持久化数据的地方,主要存放数据库等第三方组件(构件);

J2EE完全手册(二)的更多相关文章

  1. J2EE进阶(十二)SSH框架整合常见问题汇总(三)

    在挂失用户时,发现userid值为空,但是在前台输入处理账号22时,通过后台输出可以看出,后台根据前端输入在数据库中查询到结果对象并输出该对象的userid,而且Guashi对象也获取到了其值. 解决 ...

  2. J2EE完全手册(一)

    为了使开发者能尽快的开发企业级的应用程序,Sun在1999年推出一种基于J2SE(用于开发桌面应的Java标准版)的开发模型:J2EE,用于开发服务器应用程序与服务的Java企业版,他运行于J2EE服 ...

  3. Protocol Buffer学习教程之语法手册(二)

    1.说明 此向导介绍如何使用protocol buffer language创建一个自己的protocolbuffer文件,包括语法与如何通过“.proto”文件生成数据访问的类,此处只介绍proto ...

  4. CentOS使用手册(二)

    前言: 本篇目录: 1.Linux软件安装调试 2.Linux内存.CPU.进程.端口.硬盘管理 3.Linux systemctl管理服务.防火墙firewalld以及SELinux配置 Linux ...

  5. Linux指令手册 (二)

    free free,显示系统中可用内存和已使用内存的数量. 语法:free [options] [target] 参数: -b: 以字节(bytes)显示内存量: -k: 以千字节(kilo)为单位显 ...

  6. 【以前弄的老东西】DLLspy超犀利后门 (源代码+程序+使用手册+二次开发文档)

    这个玩意儿是很久之前的整的.一直没有做完,但是基本功能和框架都做好了,现在发出来,希望有能力的家伙一起完成.DLLspy,绝对免杀,隐藏,HTTP请求劫持,居家旅行,杀人放火必备良药.有时间我会继续开 ...

  7. soapui中文操作手册(二)----通过您的WSDL请求创建一个测试

      1.通过您的WSDL请求创建一个测试 点击加号旁边的导航拓展项目树的Web服务,并选择请求: 在SoapUI Pro中,所述请求编辑出现在右边.SoapUI Pro有一个编辑器,它简化了XML的层 ...

  8. Oracle DBA 的常用Unix参考手册(二)

    9.AIX下显示CPU数量    # lsdev -C|grep Process|wc -l10.Solaris下显示CPU数量# psrinfo -v|grep "Status of pr ...

  9. Git实战手册(二): 标签应用和版本管理

    教程所示图片使用的是 github 仓库图片,墙内朋友请移步原文地址 有空就来看看个人技术小站, 我一直都在 0. 背景介绍 当一个代码仓库进过长时间的迭代,针对不同的时期和需求,必定会有不同的版本. ...

随机推荐

  1. 使用unity3d和tensorflow实现基于姿态估计的体感游戏

    使用unity3d和tensorflow实现基于姿态估计的体感游戏 前言 之前做姿态识别,梦想着以后可以自己做出一款体感游戏,然而后来才发现too young.但是梦想还是要有的,万一实现了呢.趁着p ...

  2. thinkphp3.2 批量添加数据

    这是我遇到的thinkphp3.2 当中最让我无语的坑 批量添加数据有个方法是 addAll() 这个方法一定要注意数组的键名,一定要整齐!!! 可以在存入数据前,用ksort()方法将数组的键名排序 ...

  3. Vue 路由详解

    Vue 路由详解 对于前端来说,其实浏览器配合超级连接就很好的实现了路由功能.但是对于单页面应用来说,浏览器和超级连接的跳转方式已经不能适用,所以各大框架纷纷给出了单页面应用的解决路由跳转的方案. V ...

  4. PAT甲题题解-1027. Colors in Mars (20)-水。。。

    #include <iostream> #include <cstdio> #include <algorithm> #include <string.h&g ...

  5. Spring学习总结之装配bean

    1.  XML中显式配置 规范,文件头: <?xml version=”1.0” encoding=”UTF-8”?>            <beans xmlns=http:// ...

  6. Daily Scrum NO.8

    工作概况 今天是周六,虽然由于工作紧张要求这一日也定为工作日,但是也许是因为昨日大家工作做得较多或者周末的缘故,今天的进展状况并不理想.线程池和异常清理器的后端已经完成,而清理器的界面和动态爬取仍旧没 ...

  7. [2017BUAA软工助教]学期总结

    一.表 学号 第0次 week1 week2 week3 个人项目 附加1 结对项目 附加2 a团队得分 a贡献分 b团队得分 b贡献分 阅读作业 提问回顾 总分1 总分2 14011100 8 8 ...

  8. C语言函数参数传递

    1.值传递 void swap(int x,int y) { int temp = x; x = y; y = temp; } void main() { , b = ; swap(a, b); } ...

  9. WINNER队成立(第二天)

    WINNER成立 今天我们主要寻找了两名女生加入到我们的小组当中,她们分别为:李豌湄.江丹仪.有了她们的加入,我们小组可谓如虎添翼啊,嘻嘻.之后我们建立了微信讨论群,经过一番讨论之后,我们决定把小组起 ...

  10. ns3 myfirst.cc 两个节点点对点通信

    首先在ns3.25/examples/tutorial/下找到 first.cc文件,将他拷贝到到scratch目录下. 然后为了方便将代码打出来 /* -*- Mode:C++; c-file-st ...