Java EE框架开发技术与案例教程
上QQ阅读APP看书,第一时间看更新

1.1 Java EE简介

Java EE是由J2EE更名而来的。Sun公司(已被甲骨文公司收购)在1998年发布JDK1.2版本的时候,开始使用Java 2 Platform,即Java 2平台,修改后的JDK称为Java 2 Platform Software Developing Kit,即J2SDK,并分为标准版(Standard Edition, J2SE)、企业版(Enterprise Edition, J2EE)和微型版(Micro Edition, J2ME)。2006年5月,Sun公司推出Java SE5,此时,Java的各种版本依次更名为Java EE、Java SE和Java ME。

随着Java技术的发展,Java EE得到了迅速发展,如今,Java EE不仅仅是指一种标准平台,更表达了一种软件架构和设计思想。目前的版本已经发展为Java EE 7。本教材基于Java EE 7介绍其相关的设计思想、开发方法及开发技术。

本节将简单介绍Java EE平台,主要内容包括:Java EE应用分层架构、分层模式及Java EE的结构等有关知识。

1.1.1 Java EE组件与应用模型

Java EE 7提供了一套完整、全面、集成的组件帮助用户构建企业和Web应用程序。图1-1给出了各组件之间的关系,各组件的功能与特点将在1.1.2节进行详细说明。

图1-1 Java EE 7框架组件

Java EE利用这些组件给出了“应用程序的模型框架”,该框架把服务实现为多层应用,从而提供企业级应用开发的可扩展性、可访问性和管理性。一般分为:Domain Object(领域对象)层、DAO(Data Access Object,数据访问对象)层、业务逻辑层、控制层和表现层。

1)Domain Object层:领域对象组件抽象了系统的对象模型。该层由“领域对象组件”构成,即由系列的POJO(Plain Old Java Object,即普通的Java对象)组成,往往包含了各自所需要的逻辑方法。

2)DAO层:此层由系列的DAO组件组成,这些DAO实现了对数据库的查询、更新、删除和创建(CRUD)等原子操作。

3)业务逻辑层:此层由系列的业务逻辑对象组成,这些业务逻辑对象实现了系统所需要的业务逻辑方法。

4)控制层:此层由系列控制器组成,这些控制器用于拦截用户请求,并调用业务逻辑组件的业务逻辑方法,处理用户请求,并根据处理结果转发到不同的表现层组件。

5)表现层:该层主要负责收集用户请求,并显示处理结果。最常用的技术是JSP技术和JSF技术。

各层之间的关系如图1-2所示,各层的Java EE组件以松耦合的方式耦合在一起,这种方式方便了应用程序的扩展性,逆着箭头的方向,前面的组件依赖于后面的组件的功能;顺着箭头的方向,前面的组件支持后面的组件实现。

图1-2 Java EE应用模型结构框架

1.1.2 Java EE API及主要技术

Java EE以“容器”的形式提供服务,不同的容器由不同的组件构成,主要的服务器和容器有:Java EE服务器、EJB容器、Web容器、应用客户端容器和Applet容器。

1)Java EE服务器:这是Java EE产品的运行时部分。Java EE服务器提供了EJB容器和Web容器。

2)EJB容器:管理Java EE应用中的企业Bean的执行。企业Bean及其容器在Java EE服务器上运行。

3)Web容器:管理Java EE应用中Web页面、Servlet和一些EJB组件的执行。Web组件及其容器在Java EE服务器上运行。

4)应用客户端容器:管理应用客户端组件的运行。

5)Applet容器:管理Applet的执行。Applet容器包括一个Web浏览器和一个Java插件,都在客户端上运行。

图1-3给出了Java EE中各容器之间的关系,以及每个容器中可用的Java EE 7的API。其中图1-3a表示容器之间的关系,图1-3b显示应用客户端容器中可用的API;图1-3c显示Web容器中可用的API;图1-3d显示EJB容器中可用的API。

图1-3 Java EE中各容器之间的关系及可用的API

a) 各容器之间的关系b) 应用客户端容器中可用的API c) Web容器中可用的API d) EJB容器中可用的API

从图1-3可以看出,Java EE 7涉及的技术有:JDBC、JNDI、EJB、RMI、JSP、Servlet、XML、JMS、Java IDL、JTS、JTA、JavaMail和JAF等,下面对其中的主要技术给出简单的介绍。

1.JDBC技术

JDBC(Java Database Connectivity)提供连接各种关系数据库的统一接口,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC为数据库开发人员提供了一个标准的API。具体应用将在第2章给出应用案例。

2.JNDI技术

JNDI(Java Name and Directory Interface, Java命名和目录接口)被用于执行名称和目录服务。它提供了一致的模型来存取和操作企业级的资源,如DNS、LDAP、本地文件和目录服务。

在JNDI中,其目录结构中的每一个结点都称为context。每一个JNDI名称都是相对于context的。对于一个应用,可通过使用InitialContext类来得到其context。

3.EJB技术

EJB(Enterprise JavaBeans)使得开发者可以方便地创建、部署和管理跨平台的基于组件的企业应用。它提供了一个框架来开发和实施分布式商务逻辑,显著地简化了具有可伸缩性和高度复杂的企业级应用开发。EJB规范定义了EJB组件在何时如何与它们的容器进行交互作用。容器负责提供公用的服务,如目录服务、事务管理、安全性、资源缓冲池及容错性。

4.Java RMI技术

Java RMI(Java Remote Method Invocation,远程方法调用)定义了调用远程对象方法的标准接口。它通过使用序列化方式在客户端和服务器端传递数据。远程方法调用可以发生在对等的两端,也可以发生在客户端和服务器之间,只要双方的应用程序都是用Java编写的。

5.JSP技术

JSP(Java Server Pages)用以创建动态网页,且只需要相对较少的代码。JSP页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端所请求后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。

6.Java Servlet技术

Servlet提供的功能与JSP类似,不过实现方式不同。JSP通常是在HTML代码中嵌入少量的Java代码,而Servlet全部由Java编写并且生成HTML。

7.XML技术

XML(Extensible Markup Language)是一种可用来定义其他标记语言的语言,它被用来在不同的商务过程中共享数据。XML的发展和Java是相互独立的,但它和Java具有相同目标,即平台独立性。通过将Java和XML相组合,可得到一个完美的具有平台独立性的解决方案。

8.JMS技术

JMS(Java Messaging Service)是用于和面向消息的中间件相互通信的应用程序接口(API)。它既支持点对点的域,又支持发布/订阅(publish/subscribe)类型的域,且提供对下列类型的支持:经认可的消息传递、事务型消息的传递、一致性消息和具有持久性的订阅者支持。

9.Java IDL技术与CORBA技术

在Java IDL的支持下,开发人员可以将Java和CORBA集成在一起。它们可创建Java对象并使之可在CORBA ORB中展开,或可创建Java类并作为和其他ORB一起展开的CORBA对象的客户。后一种方法提供了另外一种途径,通过它Java可以被用于将新的应用和legacy系统相集成。

10.JTA技术和JTS技术

JTA(Java Transaction Architecture)定义了一种标准的API,应用系统由此可存取各种事务监控。

JTS(Java Transaction Service)是CORBA OTS事务监控的基本的实现,JTS规定了事务管理器的实现方式。该事务管理器是在高层支持Java Transaction API(JTA)规范,且在较低层实现OMG OTS specification的Java映像。JTS事务管理器为应用服务器、资源管理器、独立的应用及通信资源管理器提供了事务服务。

11.JavaMail技术和JAF技术

JavaMail是用于存取邮件服务器的API,它提供了一套邮件服务器的抽象类。不仅支持SMTP服务器,也支持IMAP服务器。

JavaMail利用JavaBeans Activation Framework(JAF)来处理MIME编码的邮件附件。MIME的字节流可被转换成Java对象。由此大多数应用都可不需要直接使用JAF。

12.JMAPI技术

JMAPI(Java Management API)为异构网络上系统、网络和服务管理的开发提供一整套丰富的对象和方法。

13.JMF技术

JMF(Java Media Framework API)可以帮助开发者把音频、视频和其他一些基于时间的媒体放到Java应用程序或Applet小程序中去,为多媒体开发者提供了捕捉、回放和编解码等工具,是一个弹性的、跨平台的多媒体解决方案。

14.Annotation技术

Annotation提供一种机制,将程序的元素,如类、方法、属性、参数、本地变量、包和元数据联系起来。这样编译器可以将元数据存储在Class文件中。这样虚拟机和其他对象可以根据这些元数据来决定如何使用这些程序元素或改变它们的行为。

15.JavaBeans技术

JavaBeans是一个开放的标准的组件体系结构,它独立于平台,但使用Java语言。一个JavaBean是一个满足JavaBeans规范的Java类,通常定义了一个现实世界的事物或概念。一个JavaBean的主要特征包括属性、方法和事件。

16.JavaFX技术

JavaFX Script编程语言(简称JavaFX)是Sun微系统公司开发的一种declarative、staticallytyped(声明性的、静态类型)脚本语言。

17.JMX技术

JMX(Java Management Extensions, Java管理扩展)是一个为应用程序、设备及系统等植入管理功能的框架。JMX可以跨越一系列异构操作系统平台、系统体系结构和网络传输协议,灵活地开发无缝集成的系统、网络和服务管理应用。

18.JPA技术

JPA(Java Persistence API)通过JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。

本书利用这些技术,并整合其他通用框架,给出应用程序的开发与设计过程。基于Java EE开发应用程序,首先要搭建开发环境,然后利用其所提供的技术实现应用程序所要求的功能。在下一节将介绍如何搭建Java EE开发环境。