前言
上一篇简单介绍了Java的发展,今天就来继续深入讲解Java EE的体系架构以及JavaEE体系架构与我们之前学习的SSH架构的区别与联系。
正题
Java EE体系架构
JavaEE应用程序由组件构成,下面我们就先来看下各个组件在不同层之间的分布。
客户层:
客户层分布在多个客户机上,客户层的组件分为Applet、Application和HTML三种。
客户端组件与运行在服务器端的业务逻辑组件通信时,既可以直接访问,也可以通过Web层的组件访问
中间层:
中间层分布在JavaEE服务器机(即我们开发的机器)上,主要包括Web组件和业务逻辑组件。
Web组件就是Servlet或由JSP/JSF技术创建的页面,静态HTML或Applet不是JavaEE规范的一部分,那些辅助的工具类(如SSH架构)也不被认为是web组件。
业务逻辑组件也就是JavaEE的核心技术:EJB。EJB分为Session Bean,Entity Bean和MDB(Message Driven Bean),具体内容下节会介绍。
其中Web组件由Web容器管理,如我们常见的Tomcat容器;而EJB则需要由EJB容器进行管理,这时就会用到我们之后会讲到的JBoss服务器。
中间层除了对Web组件和业务逻辑组件进行管理外,主要还用了Java EE的几个重要的服务:JNDI,JMS,JDBC,RMI/IIOP等。
ps:在这里简要介绍一下容器与服务器的概念以及web服务器与应用服务器的区别:
1)容器是组件运行的环境。应用服务器是程序运行的平台;
2)应用服务器包括:web容器和ejb容器;Web服务器只包括web容器。
3)Tomcat属于Web服务器,它只能管理Servlet/JSP以及普通的JavaBean,但是不能管理EJB,所以在这里我们使用JBoss应用服务器,它集成了Tomcat;除了Jboss我们还可以使用WebLogic应用服务器(它没有集成Tomcat,但是它有自己的web容器)。
EIS层:
EIS(企业信息系统)层,一般而言指的是数据库系统。也可以指企业其它的遗留系统。比如ERP等。
Java EE体系架构与SSH架构的比较
上面介绍Web组件时提到了SSH架构是处于Web层的一个辅助工具类,那么它到底在Java EE体系架构中处于什么位置呢,如下图:
通过上图,我们可以清晰的看到SSH在JavaEE技术体系架构中的位置,SSH处于Web层,是用来管理Servlet,JSP,以及一些简单的JavaBean。
可是我们之前使用SSH时直接就贯穿了整个项目,接触到了数据库,怎么这里SSH离数据库的位置这么远呢?
这主要就是因为EJB的存在,EJB与咱们之前写的JavaBean不一样,它需要跨项目甚至跨平台进行操作使用的,所以这时我们的SSH就不能对其进行管理了,于是我们就是使用EJB容器来管理EJB的运行,并使用JPA来代替Hibernate来对持久化数据进行管理(JPA对Hibernate进行了改进,两者的区别之后会介绍)。
本篇主要介绍了Java EE技术体系结构(主要包括客户层,中间层和EIS层),以及SSH在该架构中的位置(处于Web层),下篇会继续介绍Java EE的核心技术:EJB.
- 3楼llhhyy1989昨天 23:33
- 对J2EE体系分析的很清楚,继续关注中。。期待下篇EJB
- 2楼lfmilaoshi昨天 21:31
- JPA,J2EE的基础。。。米老师
- 1楼beijiguangyong昨天 21:26
- 为什么要有中间件?