Java EE 简介
Java EE 基本架构
JavaEE 的诞生是为了解决传统 C/S 架构的弊端:客户端臃肿庞大,扩展性差等弊端。 JavaEE 将传统的两层结构细分为了四层。
这四层分别是:Client 层, Web 层, Business 层, EIS 层
Java EE 客户端
Java EE客户端层可分为以下几种:
- Web 客户端,通常是浏览器呈现的网页,这种客户端成为轻量级客户端,因为他们不与数据库打交道,也没有执行业务上的复杂逻辑。
- Application 客户端,通常是用Swing或者 AWT写成。 这种客户端一般是直接连到 Business Tier,但是客户端也可以通过 HTTP 连接到 Web Tier 的Servlet。
- Applets,是一种运行在浏览器 Java 虚拟机上的小程序。
- 如果有 ‘data flow’ 在网络上传输,则还需要 JavaBeans。
- 层与层之间通信,Web 客户端一般先于 Web 层打交道,Web 层与 Business层通讯, Business层从 EIS层交互。 而普通的Application 客户端则可以直接与 Business层交互。如下图:
Web 层组件
为什么叫“组件”? 与下文容器对应。
Web 组件包括:
- Servlet
- JSP
- JSF
注意: 静态网页不是 Web 组件,而是作为一个Web组件的一个 Bundle。
Business 层组件
Business 组件一般是与业务需求相对应的代码,通常被称为 Enterprise JavaBeans。比如,如何从客户端接受信息,如何根据具体业务逻辑处理信息,以什么样的格式存储在数据库中。
EIS 层
可以是DB或者是一个企业级的信息系统(EIS).
下图展示了 Business 层如何与EIS 交互。
Java EE 技术变迁
Java EE前身是J2EE(J2EE最后一个版本号是1.4),截止到目前,最新的是 1.7版本。下图揭示了Java EE中的技术变迁:
每种技术的简单介绍请参照这里;
Java EE 容器
前面我们介绍Java EE分层的时候,Web 层和 Business 层用的是 组件(Component), 原因是Web层和Business层的代码一般要部署到一个容器(Container)中。容器 名字的由来是 Container pattern。
[A CONTAINER provides] an execution environment that is responsible for adding the technical concerns to the COMPONENTS...Conceptually, it wraps the COMPONENTS, thus giving clients the illusion of tightly-integrated functional and technical concerns.
由于组件的类别不同,容器也分很多种,常见的有:
- EJB 容器。 管理 Enterprise Beans 执行的容器。
- Web 容器。 管理 Web 页面,Servlet和某些 EJB 组件 运行的容器。
- Java EE Server。 同时提供 EJB 和Web 容器的运行时。
- Application client 容器。管理客户端组件。运行在 client 上。
- Applet container。管理 applets 的执行,由浏览器和 Java 插件提供运行时。
如图:
下图展示了这些技术一般应用于哪些容器组件中:
- Web :
- EJB 容器:
- 客户端:
Java EE 打包与部署
待补充。等我试验后补充。