J2EE肌肉系统—四层模型
J2EE是基于JAVA技术的一种标准。为什么会有这种标准呢?
主要是在企业级应用开发其中有一些需求。比如数据库连接,邮件服务、事件处理等,都是一些通用模块。
而这些模块假设由开发者来开发。势必添加开发周期和代码量。于是很多公司开发了自己中间件。
可是不同的公司开发的中间件不同。达不到通用的效果。所以,为了通用必须提出规范,制定出一套的标准。
就跟什么样的螺丝帽适合什么样的螺丝钉一样,J2EE事实上是基于Java技术的一种标准,一种规范。
遵循此规范开发的应用能够编写一次。随处执行。实现跨平台效果。
J2EE刚接触,并没有多少的共鸣。唯一有共鸣的也就是J2EE的体系结构。前面学习过三层,J2EE仅仅只是是在三层的基础上又多加了一个客户层而已。
以下简介一下J2EE的体系架构,而且通过这个架构,对J2EE先有一个宏观的把控。
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbWluZ3h1YW55dW4=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" width="600" height="300" alt="">
J2EE的应用程序是由组件构成的。组件是对数据和方法的封装。J2EE组件是一个封装了功能的单元,可以与相关的类和一些文件组合成J2EE应用程序。
J2EE的体系结构包含下面四层:
- client——客户层组件
- J2EEserver——Web层、业务逻辑层组件
- EISserver——企业信息系统层
1.客户层:包含Web浏览器,Applet(小型应用程序)和应用client。
J2EEclient能够是一个Web组件或者是一个应用程序client。
2.表示层(Web容器):
Web层组件是基于JSP和Servlet技术开发的。
Web层组件动态的给客户提供需求,根绝客户的不同请求作出不同的反应。同一时候Web层还能够包括一些JavaBean对象来处理用户输入,并把web层可能包括某些
JavaBean 对象来处理用户输入,并把输入发送给业务层上的EJB来进行处理。
3.业务逻辑层(EJB容器)
业务逻辑层实现后端业务处理的逻辑。由执行在业务层的EJB来进行处理。
EJB是J2EE技术的核心,在以后的学习中,须要进异步的理解。
以下先是对其进行一个初步认识:
EJB(Enterprise JavaBean)主要是企业的分布式方案,就是说当应用程序不分布在同一个电脑上时,就可能从一个server调用还有一个server的资源和方法。这个时候使用传统的JAVABean无法完毕,须要用到EJB技术来完毕。
(JavaBean和EJB的差别到后期进一步研究)
会话Bean(SessionBean)表示client程序的暂时交互,当client程序运行完成,会话Bean和相关数据随之消失。
实体Bean(Entity Bean)表示数据库表中一行永久的记录,能够进行保存。
消息驱动Bean(MessageDriven Bean)结合会话Bean和JMS监听器的特性,用于在业务层组件异步接受JMS消息。
因为EBJ组件是在容器里运行的,所以须要先启动容器才干装载EJB。
在EJB容器中,还涉及到非常多的协议,比如SOAP协议。JMS协议等等。
4.企业信息系统层,即提供项目信息的来源。如底层数据库资源,以及一些文件,比如消息。文件夹服务等。
J2EE採用多层的模型,主要还是遵循了软件开发过程中高内聚,低耦合的设计准则。将原来臃肿的client精简。分为多层。每一个层能够为每一种服务设定独立的一层,减少了层与层之间的耦合性。
最新文章
- apachetop 实时监测web服务器运行状况
- [Algorithm] 机器学习算法常用指标总结
- 【CityHunter】Unity3D设计AR探索模式
- 初学python里的yield send next
- [mysql] linux 下mysql 5.7.12 安装
- UGUI之在场景中设置、修改标签和按钮
- ASP.NET生成压缩文件(rar打包)
- trie树信息抽取之中文数字抽取
- unity绘制线和绘制面
- InnoDB引擎Myslq数据库数据恢复
- HDU 3594 Cactus (强连通分量 + 一个边只能在一个环里)
- python网络编程基础(一)
- CSS之使用display:inline-block来布局
- redis 持久化 AOF和 RDB 引起的生产故障
- Tomcat架构解析(六)-----BIO、NIO、NIO2、APR
- 在IIS服务器上屏蔽IP的访问
- Collection与Collections,Array与Arrays的区别
- eclispe创建gradle项目
- Android studio ocr初级app开发问题汇总(含工程代码)
- jsonP 后台写法 及 层级树型数据递归查询
热门文章
- 网上商城 Incorrect datetime value: '' for column 'ordertime' at row 1
- IKanalyzer、ansj_seg、jcseg三种中文分词器的实战较量
- MyElipse如何添加Emmet插件
- WEB-CSS实现单行(多行)文本溢出显示省略号
- pycharm永久激活(转载)
- postgreSQL在Centos6下编译安装
- 【转载】 python sort、sorted高级排序技巧
- java_线程类的基本功能
- 洛谷——P2018 消息传递
- Luogu P4014 「 网络流 24 题 」分配问题