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精简。分为多层。每一个层能够为每一种服务设定独立的一层,减少了层与层之间的耦合性。

最新文章

  1. apachetop 实时监测web服务器运行状况
  2. [Algorithm] 机器学习算法常用指标总结
  3. 【CityHunter】Unity3D设计AR探索模式
  4. 初学python里的yield send next
  5. [mysql] linux 下mysql 5.7.12 安装
  6. UGUI之在场景中设置、修改标签和按钮
  7. ASP.NET生成压缩文件(rar打包)
  8. trie树信息抽取之中文数字抽取
  9. unity绘制线和绘制面
  10. InnoDB引擎Myslq数据库数据恢复
  11. HDU 3594 Cactus (强连通分量 + 一个边只能在一个环里)
  12. python网络编程基础(一)
  13. CSS之使用display:inline-block来布局
  14. redis 持久化 AOF和 RDB 引起的生产故障
  15. Tomcat架构解析(六)-----BIO、NIO、NIO2、APR
  16. 在IIS服务器上屏蔽IP的访问
  17. Collection与Collections,Array与Arrays的区别
  18. eclispe创建gradle项目
  19. Android studio ocr初级app开发问题汇总(含工程代码)
  20. jsonP 后台写法 及 层级树型数据递归查询

热门文章

  1. 网上商城 Incorrect datetime value: '' for column 'ordertime' at row 1
  2. IKanalyzer、ansj_seg、jcseg三种中文分词器的实战较量
  3. MyElipse如何添加Emmet插件
  4. WEB-CSS实现单行(多行)文本溢出显示省略号
  5. pycharm永久激活(转载)
  6. postgreSQL在Centos6下编译安装
  7. 【转载】 python sort、sorted高级排序技巧
  8. java_线程类的基本功能
  9. 洛谷——P2018 消息传递
  10. Luogu P4014 「 网络流 24 题 」分配问题