规范文档JavaEE7

1 本教程的目标

  • 理解层次化应用的基本
  • 理解JavaEE平台的基本
  • 创建一个多层次的JavaEE应用程序
  • 在JavaEE服务器上部署并运行你的应用程序
  • 了解接下来从哪里获得更多有关JavaEE平台的信息

2.1 企业级应用概述

总体而言,JavaEE平台的设计目标是帮助开发者创建 大规模的,多层次的,可伸缩,可靠的 以及安全的网络化应用,这样一个应用的简洁称呼是“企业级应用”,这么称呼它是因为这样的应用被设计用来解决大型企业所面临的问题。企业级应用不仅仅对大企业,代理服务器以及政府部门有用。同时在这个越来越网络化的时代也对独立开发者或者小团体来说十分有用甚至非常必要。

使得企业级应用如此具有力量的特性,例如安全性,可靠性,通常都会使得应用变得复杂。JavaEE平台通过提供一套开发模型,API,运行时环境来减少企业级应用开发的复杂性以允许开发者专注于功能上的开发。

2.1.1 层级应用

在多层级应用中,应用的功能被分离到各个独立的功能区域,这种被独立起来的区域就称为层。通常,多层次应用会有一个客户端层,一个中间层,和一个数据层(数据层通常又被称为企业信息系统层)。客户端层由客户端程序组成向中间层发送请求。中间层又被分离层 web层和业务逻辑层,分别来处理客户端请求以及处理应用数据,存储数据进入一个在数据层的持久数据存储中。

JavaEE应用开发专注于中间层使得企业应用管理更加简单,更具鲁棒性以及更加安全。

2.1.1.1 客户端层

客户端层由应用程序客户端构成,它们可以访问一个JavaEE服务器并且通常位于与服务器不同的机器上。客户端构造请求给服务器。服务器处理请求并返回一个响应给客户端。大量不同类型的应用程序可以称为JavaEE客户端,他们并不总是一个Java应用程序,甚至通常就不是Java写的。客户端可以是网络浏览器,一个独立的应用程序,或者其他服务器程序,一个共同点是她们都运行在不同于JavaEE服务器的机器上。

2.1.1.2 web层

web层由可以处理客户端与业务逻辑层的组件构成。它们的主要任务是:

  • 动态的为客户端产生各种格式(根据客户端的需求或者UI设计的要求等等)
  • 收集用户从客户端界面产生的输入信息并返回适当的结果从业务逻辑层。
  • 控制客户端屏幕或者页面的流动
  • 为用户会话维护数据状态.
  • 运行某些基本逻辑并且临时持有一个数据到管理beans中(EJB的一种).

Table2-1 列举了一些主要的JavaEE技术被应用与web层。

Technology Purpose
JavaServer Faces technology 一个为web应用准备的用户界面组件框架允许你使用XHTML标签来囊括UI组件(如 fields buttons 等等),这种页面被称为Facelets page;转换验证UI组件数据;保存UI组件数据到服务器数据存储;维护组建的状态
Expression Language 一组使用在Facelets page中的标准标记来应用JavaEE组件
Servlets Java 编程语言class,他可以动态的处理请求并构造响应,通常产生HTML页面
Contexts and Dependncy Injection for Java EE 一组上下文服务,来让开发者更加容易让企业级beans与JavaServer Faces技术共同工作在web应用中

2.1.1.3 业务逻辑层

业务逻辑层由为应用提供业务逻辑的组件组成。业务逻辑是在一个特定的业务领域提供功能的代码,比如在金融产业或者电子商务网站。在一个被合理设计的企业级应用中,核心的功能都存在与业务逻辑层组件中。


下列的JavaEE技术总结了部分使用在JavaEE应用程序中的技术:

  • Enterprise JavaBeans components
  • JAX-RS RESTful web services
  • Java Persistence API entities

2.1.1.4 企业信息系统层

企业信息系统(EIS)层主要由数据库服务器,企业资源计划系统,以及其他一些旧时代的数据源 比如 大型机。这些资源通常位于一个不同于JavaEE服务器的机器上,并且被业务逻辑内的组件访问。


下列JavaEE技术被用来访问JavaEE应用中的EIS层:

  • Java Database Connectivity API (JDBC)
  • Java Persistence API
  • Java EE Connector Architecture
  • Java Transaction API(JTA)

2.2 JavaEE服务器以及容器

一个JavaEE服务器是一个实现了JavaEE APIs 的服务器应用,提供了标准的Java EE服务。JavaEE 服务器有时候被称为应用服务器,因为它们允许服务器服务应用数据给客户端,就如同web服务器服务web page 给 web浏览器一样。 JavaEE服务器寄宿了几种对应于层次应用程序中的层次类型的应用组件(这些组件将使用服务器提供的服务)。Java EE服务器将以容器的形式提供服务器给寄宿在其中的组件。JavaEE容器本质上时组件与平台提供给改组件的低层支持功能的交流接口,这些容器的功能被平台定义并且对每种不同类型的组件是不同的。虽然如此服务器允许不同的组件类型工作在一起来为一个企业级应用提供完整的功能集合(此点特性非常重要)

2.2.1 Web容器

web容器是web组件(web层)与web服务器的交互接口。一个网页组件可以时servlet或者JavaServer Faces Facelets page。 该容器管理了组件的生命周期,分发客户端请求给应用组件,提供接口来上下文数据,例如当前请求的信息。

2.2.2 EJB容器

EJB容器是ejb(在Java EE 应用程序中提供商业逻辑)与JavaEE服务器交互的接口。EJB容器运行在JavaEE 服务器上,并且管理了一个应用的企业级beans的执行。

2.2.3 应用客户端容器

应用客户端容器是JavaEE 应用客户端(特指使用了Java EE服务器组件的JavaSE应用程序)与JavaEE服务器直接的交互接口。应用客户端容器运行在客户端机器上并且是客户端应用程序与该客户端使用的JavaEE服务器组件之间的网关。

#TODO