java 平台企业版( j2ee ) 原理

60
Java Java 平平平平平平平平平平J2E J2E E E 平平 平平

Upload: brendan-lyne

Post on 03-Jan-2016

169 views

Category:

Documents


2 download

DESCRIPTION

Java 平台企业版( J2EE ) 原理. 说 明. 本文不深入具体技术,而是从一个比较宏观的角度讲述 J2EE 平台所涉及的一些技术,对于每种技术只介绍其特点以及应用,如有可能对相似技术做了一些简单的比较。. 内 容. 一、 J2EE 的由来 √ 二、 J2EE 的组成. * 一 般 知 识 *. 一、计算机应用程序的一般特点 : 大多数应用,从 PC 机上的简单报表程序到大型机上的复杂计算,都由三部分组成: 用户界面部分:表示层 应用逻辑部分:业务逻辑层 数据访问部分:数据访问层 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Java 平台企业版( J2EE )  原理

JavaJava 平台企业版(平台企业版( J2J2EEEE )) 原理 原理

Page 2: Java 平台企业版( J2EE )  原理

说 明说 明

本文不深入具体技术,而是从一个本文不深入具体技术,而是从一个比较宏观的角度讲述比较宏观的角度讲述 J2EEJ2EE 平台所涉及的平台所涉及的一些技术,对于每种技术只介绍其特点一些技术,对于每种技术只介绍其特点以及应用,如有可能对相似技术做了一以及应用,如有可能对相似技术做了一些简单的比较。些简单的比较。

Page 3: Java 平台企业版( J2EE )  原理

内 容 内 容 一、一、 J2EEJ2EE 的由来的由来 √ √

二、二、 J2EEJ2EE 的组成的组成

Page 4: Java 平台企业版( J2EE )  原理

* * 一 般 知 识 一 般 知 识 **

一、计算机应用程序的一般特点一、计算机应用程序的一般特点 : : 大多数应用,从大多数应用,从 PCPC 机上的简单报表程序到大型机上的复杂机上的简单报表程序到大型机上的复杂

计算,都由三部分组成:计算,都由三部分组成: 用户界面部分:表示层用户界面部分:表示层 应用逻辑部分:业务逻辑层应用逻辑部分:业务逻辑层 数据访问部分:数据访问层 数据访问部分:数据访问层

二、应用程序开发模型的变迁过程:二、应用程序开发模型的变迁过程:

单层 两层 三层 单层 两层 三层 NN 层 层

1 2 3 1 2 3 1 2 3 1 2 3 4

Page 5: Java 平台企业版( J2EE )  原理

一、一、 J2EEJ2EE 的由来的由来

11 、、传统应用程序模型 传统应用程序模型 √√22 、、 WebWeb 应用程序模型应用程序模型33 、为什么需要、为什么需要 J2EEJ2EE44 、什么是、什么是 J2EEJ2EE

Page 6: Java 平台企业版( J2EE )  原理

11 、传统应用程序模型(一)、传统应用程序模型(一)

数据访问、表示和业务逻辑在一个应用中数据访问、表示和业务逻辑在一个应用中 代码复用、代码可维护性、代码的修改十分困难代码复用、代码可维护性、代码的修改十分困难 应用不是分布式的,不具有可伸缩性应用不是分布式的,不具有可伸缩性

主机系统或单层结构:主机 / 终端模式

Page 7: Java 平台企业版( J2EE )  原理

11 、传统应用程序模型(二)、传统应用程序模型(二)

用户界面和程序逻辑绑在一起,代码难以重用用户界面和程序逻辑绑在一起,代码难以重用 服务器的数据库必须同每一个活动的客户保持连接,消耗大量的运服务器的数据库必须同每一个活动的客户保持连接,消耗大量的运

算资源,随着客户数目的增加性能不断下降,且存在死锁及崩溃的算资源,随着客户数目的增加性能不断下降,且存在死锁及崩溃的可能可能

数据模型“紧耦合”在每一客户端,数据库结构改变将导致全体客数据模型“紧耦合”在每一客户端,数据库结构改变将导致全体客户端改变,不利于更新和维护户端改变,不利于更新和维护

原始数据通过网络传递:加重网络负担原始数据通过网络传递:加重网络负担 客户端应用程序越来越大,对使用者的要求也越来越高客户端应用程序越来越大,对使用者的要求也越来越高

客户 / 服务器结构:“胖”客户端胖客户端:

表示逻辑业务逻辑

业务数据模型通讯

Fat clientFat client

Page 8: Java 平台企业版( J2EE )  原理

一、一、 J2EEJ2EE 的由来的由来

11 、传统应用程序模型、传统应用程序模型22 、、 WebWeb 应用程序模型 应用程序模型 √√33 、为什么需要、为什么需要 J2EEJ2EE44 、什么是、什么是 J2EEJ2EE

Page 9: Java 平台企业版( J2EE )  原理

22 、 、 WebWeb 应用程序模型(一)应用程序模型(一)传统的 Web 应用程序模型:三层分布式架构

Page 10: Java 平台企业版( J2EE )  原理

22 、 、 WebWeb 应用程序模型(一)应用程序模型(一)

WWWWWW 浏览方式带来的变化:浏览方式带来的变化: ““Browser-based” Browser-based” 的客户端与“的客户端与“ Internetworking”Internetworking” 计算方式向服务器端的集中转化计算方式向服务器端的集中转化

客户端:业务数据模型与客户端:业务数据模型与 UIUI 分开,更“瘦”分开,更“瘦” 业务逻辑在中间层,通过:连接池,多线程可以处理多客户端业务逻辑在中间层,通过:连接池,多线程可以处理多客户端

早期应用编程困难且性能比较差:早期应用编程困难且性能比较差: CGI(C/C++, VB, PerlCGI(C/C++, VB, Perl 等等等等 )) ,, ISAISAPI PI ,, NSAPINSAPI

传统的 Web 应用程序模型:三层分布式架构

Page 11: Java 平台企业版( J2EE )  原理

22 、 、 WebWeb 应用程序模型(二)应用程序模型(二)N 层计算模式的引入

采用采用 NN 层计算结构,从逻辑角度看,系统分成客层计算结构,从逻辑角度看,系统分成客户端、户端、 WebWeb 服务器、应用服务器、数据库服务器四层;服务器、应用服务器、数据库服务器四层;从物理角度看,应用服务器可以视用户并发数从从物理角度看,应用服务器可以视用户并发数从 11 到到NN 台进行扩充,以保证客户端用户的响应要求。台进行扩充,以保证客户端用户的响应要求。

Page 12: Java 平台企业版( J2EE )  原理

22 、 、 WebWeb 应用程序模型(二)应用程序模型(二)

从从 11 层到层到 NN 层,得到的改进:层,得到的改进: 每一层可以被单独改变,而无需其它层的改变每一层可以被单独改变,而无需其它层的改变 降低了部署与维护的开销,提高了灵活性、可伸缩性降低了部署与维护的开销,提高了灵活性、可伸缩性 引入瘦客户端,计算被集中至服务器端,使性能提高成为引入瘦客户端,计算被集中至服务器端,使性能提高成为

可能可能 仍然存在的问题:仍然存在的问题:

对企业级应用开发人员的要求太高:对企业级应用开发人员的要求太高: 需要熟悉分布式协议(需要熟悉分布式协议( IIOPIIOP 、、 IIOPSIIOPS 、、 HTTPHTTP 、、 HTTPSHTTPS 、、

CGICGI 、、 ISAPIISAPI 、、 NSAPINSAPI )),进行一致性事务处理,负载平衡,,进行一致性事务处理,负载平衡,考虑安全性……考虑安全性……

N 层计算模式的引入

Page 13: Java 平台企业版( J2EE )  原理

22 、 、 WebWeb 应用程序模型(三)应用程序模型(三)

应用程序各部分之间松耦合,从而应用程序各应用程序各部分之间松耦合,从而应用程序各部分的更新相互独立部分的更新相互独立

业务逻辑集中放在服务器上由所有用户共享,业务逻辑集中放在服务器上由所有用户共享,使得系统的维护和更新变得简单,也更安全使得系统的维护和更新变得简单,也更安全

数据库不再和每一个活动的用户保持一个连接,数据库不再和每一个活动的用户保持一个连接,而是由应用程序组件负责与数据库打交道,降而是由应用程序组件负责与数据库打交道,降低数据库服务器的负担,提高了性能低数据库服务器的负担,提高了性能

多层应用程序的真正优点

Page 14: Java 平台企业版( J2EE )  原理

一、一、 J2EEJ2EE 的由来的由来

11 、传统应用程序模型、传统应用程序模型22 、、 WebWeb 应用程序模型应用程序模型33 、、为什么需要为什么需要 J2EE J2EE √√44 、什么是、什么是 J2EEJ2EE

Page 15: Java 平台企业版( J2EE )  原理

33 、为什么需要、为什么需要 J2EEJ2EE在企业级应用开发中所面临的而且必须解决的问题:在企业级应用开发中所面临的而且必须解决的问题: 分布式分布式 可移植可移植 旧系统集成支持旧系统集成支持 面向面向 WebWeb 可装配可装配 满足企业计算要求满足企业计算要求

一致性一致性 事务性事务性 安全性安全性

要有好的特性要有好的特性 可伸缩可伸缩 可扩展可扩展 易维护易维护

Page 16: Java 平台企业版( J2EE )  原理

33 、为什么需要、为什么需要 J2EEJ2EE

J2EEJ2EE 提供了一套完整的解决所有这些提供了一套完整的解决所有这些问题的框架方案:问题的框架方案:

提供了分布式、可移植构件的框架提供了分布式、可移植构件的框架

为构件与应用服务器提供标准为构件与应用服务器提供标准 APIAPI

简化了服务器端中间层构件的设计简化了服务器端中间层构件的设计

Page 17: Java 平台企业版( J2EE )  原理

33 、为什么需要、为什么需要 J2EEJ2EE

J2EEJ2EE 对开发者和用户来说意味着对开发者和用户来说意味着:: 更短的开发时间更短的开发时间

可重用构件可重用构件 JSPJSP EJBEJB

更简化的连接更简化的连接 XMLXML ,, JDBCJDBC ,, RMI-IIOPRMI-IIOP

Page 18: Java 平台企业版( J2EE )  原理

一、一、 J2EEJ2EE 的由来的由来

11 、传统应用程序模型、传统应用程序模型22 、、 WebWeb 应用程序模型应用程序模型33 、为什么需要、为什么需要 J2EEJ2EE44 、、什么是什么是 J2EE J2EE √√

Page 19: Java 平台企业版( J2EE )  原理

44 、什么是、什么是 J2EEJ2EE

Open and standard based platform for Open and standard based platform for developing, deploying and managing developing, deploying and managing n-tier, Web-enabled, server-centric entn-tier, Web-enabled, server-centric enterprise applicationserprise applications

开放的、基于标准的平台,用以开发、部开放的、基于标准的平台,用以开发、部署和管理署和管理 NN 层结构、面向层结构、面向 WebWeb 的,以服的,以服务器为中心的企业级应用务器为中心的企业级应用

Page 20: Java 平台企业版( J2EE )  原理

内 容 内 容 一、一、 J2EEJ2EE 的由来的由来

二、二、 J2EEJ2EE 的组成 的组成 √√

Page 21: Java 平台企业版( J2EE )  原理

二、二、 J2EEJ2EE 的组成的组成11 、、 What is Java 2 Platform What is Java 2 Platform √√

22 、、 J2EEJ2EE 的组成的组成

33 、、 J2EEJ2EE 架构及核心技术简介架构及核心技术简介

Page 22: Java 平台企业版( J2EE )  原理

11 、、 What is Java 2 What is Java 2 PlatformPlatform

JavaJava 的版本历史:的版本历史:从一种语言发展为一种平台从一种语言发展为一种平台 JavaJava 的前身是一种与平台无关的语言-“的前身是一种与平台无关的语言-“ OaKOaK”,”,诞生于诞生于 19911991年年 SunSun公公司的一个研究项目,最初目的是为了应用于消费类电子设备的开发;司的一个研究项目,最初目的是为了应用于消费类电子设备的开发;

19941994年年 InternetInternet 开始起步,开始起步, 19951995 年年 NetScapeNetScape宣布把宣布把 JavaJava 集成到其浏集成到其浏览器中,可执行的览器中,可执行的 JavaJava 代码可以以代码可以以 AppletApplet 的形式在浏览器中运行,的形式在浏览器中运行, JavaJava开始流行。开始流行。

SunSun公司公司 19961996 年年 11月发布月发布 JDK1.0JDK1.0 ,, 19971997 年年 22月发布月发布 JDK1.1JDK1.1 ,, JavaJava 开开始在企业中应用。始在企业中应用。

19981998 年年 1212月发布月发布 JDK1.2JDK1.2 ,即,即 Java 2 Java 2 平台,并于平台,并于 19991999 年年 66月经集成重月经集成重组后重新发布。组后重新发布。

目前目前 J2SEJ2SE 的最高版本为的最高版本为 1.41.4 。。

目前主要的目前主要的 JavaJava 平台及特点如下:平台及特点如下: J2MEJ2ME - Java 2 Micro Edition: - Java 2 Micro Edition: 用于创建嵌入式应用程序的用于创建嵌入式应用程序的 JavaJava 平台平台 (( 如如 PDAPDA 、仪、仪

表表 )) 。。 J2SEJ2SE - Java 2 Standard Edition: - Java 2 Standard Edition: 用于创建典型的桌面与工作站应用的用于创建典型的桌面与工作站应用的 JavaJava 平台。平台。 J2EEJ2EE - Java 2 Enterprise Edition: - Java 2 Enterprise Edition: 用于创建可扩缩的企业应用的用于创建可扩缩的企业应用的 JavaJava 平台。平台。

Page 23: Java 平台企业版( J2EE )  原理

二、二、 J2EEJ2EE 的组成的组成11 、、 What is Java 2 PlatformWhat is Java 2 Platform

22 、、 J2EEJ2EE 的组成 的组成 √√

33 、、 J2EEJ2EE 架构及核心技术简介架构及核心技术简介

Page 24: Java 平台企业版( J2EE )  原理

22 、、 J2EEJ2EE 的组成的组成

J2EE

J2EESpecification

J2EEReference

Implementation

J2EECompatibility

Test Suite

J2EEBlue Prints

Page 25: Java 平台企业版( J2EE )  原理

二、二、 J2EEJ2EE 的组成的组成11 、、 What is Java 2 PlatformWhat is Java 2 Platform

22 、、 J2EEJ2EE 的组成的组成

33 、、 J2EEJ2EE 架构及核心技术简介 架构及核心技术简介 √√

Page 26: Java 平台企业版( J2EE )  原理

33 、、 J2EEJ2EE 架构及核心技术简介架构及核心技术简介 J2EEJ2EE 架构:架构:

Page 27: Java 平台企业版( J2EE )  原理

33 、、 J2EEJ2EE 架构及核心技术简介架构及核心技术简介 J2EEJ2EE容器和构件:容器和构件:

容器处理 构件处理

•分布性•可伸缩性•可用性•事务性•安全性• 生命周期管理

•表示•JSP, Servlet, Applet

•业务逻辑•EJB

•数据访问逻辑•EJB

Page 28: Java 平台企业版( J2EE )  原理

33 、、 J2EEJ2EE 架构及核心技术简介架构及核心技术简介

J2EEJ2EE核心技术:核心技术: 1313 种种

EJBEJB 、 、 CORBACORBA 、 、 RMIRMI 、、 JSPJSP 、、 Java ServletJava Servlet 、、 JavaBeanJavaBean 、、 JDBCJDBC XMLXML 、、 JMS……JMS……

Page 29: Java 平台企业版( J2EE )  原理

33 、、 J2EEJ2EE 架构及核心技术简介架构及核心技术简介EJB — J2EEEJB — J2EE 的基石:的基石:

EJB (Enterprise JavaBeans) EJB (Enterprise JavaBeans) ::

EJBEJB 不是一个具体的产品,而是一个不是一个具体的产品,而是一个 JavaJava 服务器端组件开发的规范,服务器端组件开发的规范,软件厂商根据它来实现软件厂商根据它来实现 EJBEJB 服务器。服务器。

使用使用 EJBEJB ,, JavaJava 程序员可以将一些定义明确的程序块组合到一起,程序员可以将一些定义明确的程序块组合到一起,从而方便、快捷地建构分布式应用程序。从而方便、快捷地建构分布式应用程序。

使用使用 EJBEJB 可以使整个程序分块明确,并且可以使整个程序分块明确,并且 EJBEJB 可以使用其它可以使用其它 EJBEJB 或或 JJDBCDBC 等服务,从而增强了分布式应用程序的可扩展性和性能;等服务,从而增强了分布式应用程序的可扩展性和性能;

EJBEJB规范在简化分布式应用程序开发复杂性方面做了大量的工作,所规范在简化分布式应用程序开发复杂性方面做了大量的工作,所以以 EJBEJB 程序员不必太担心事务处理、多线程、资源管理等方面的问题,程序员不必太担心事务处理、多线程、资源管理等方面的问题,可以专注于支持应用所需的商业逻辑,而不用担心周围框架的实现问可以专注于支持应用所需的商业逻辑,而不用担心周围框架的实现问题。题。

EJBEJB 的使用增强了整个系统程序的可靠性、可管理性和可移植性。的使用增强了整个系统程序的可靠性、可管理性和可移植性。

Page 30: Java 平台企业版( J2EE )  原理

33 、、 J2EEJ2EE 架构及核心技术简介架构及核心技术简介EJB — J2EEEJB — J2EE 的基石:的基石: EJBEJB 容器是:容器是: EJBEJB 的运行环境的运行环境。它提供规范中定义的接口使。它提供规范中定义的接口使 EJBEJB 类访问所需的服类访问所需的服

务。容器厂商也可以在容器或服务器中提供额外服务的接口。务。容器厂商也可以在容器或服务器中提供额外服务的接口。 它的责任 它的责任包括:包括:

Page 31: Java 平台企业版( J2EE )  原理

33 、、 J2EEJ2EE 架构及核心技术简介架构及核心技术简介EJB — J2EEEJB — J2EE 的基石:的基石: EJBEJB 服务器是:服务器是: 管理管理 EJBEJB容器的高端进程或应用程序,并提供对系容器的高端进程或应用程序,并提供对系

统服务的访问。统服务的访问。 EJBEJB 服务器也可以提供厂商自己的服务器也可以提供厂商自己的特性,如优化的数据库访问接口,对其他服务(如特性,如优化的数据库访问接口,对其他服务(如CORBACORBA 服务)的访问。一个服务)的访问。一个 EJBEJB 服务器必须提供服务器必须提供支持对支持对 JNDIJNDI 的名字服务和的名字服务和 TSTS事务服务的可访问。事务服务的可访问。

EJBEJB 分为两种:分为两种: 会话会话 EJBEJB 和实体和实体 EJBEJB ,会话,会话 EJBEJB 向客户提供一向客户提供一定的服务,如:特定的商业逻辑、数据库查询等;定的服务,如:特定的商业逻辑、数据库查询等;而实体而实体 EJBEJB则代表数据对象,通常代表的是数据表则代表数据对象,通常代表的是数据表记录集的一行,一个实体记录集的一行,一个实体 EJBEJB 可以同时与多个客户可以同时与多个客户进行交互。进行交互。

Page 32: Java 平台企业版( J2EE )  原理

33 、、 J2EEJ2EE 架构及核心技术简介架构及核心技术简介

J2EEJ2EE核心技术:核心技术:

EJBEJB 、 、 CORBACORBA 、、 RMIRMI 、、 JSPJSP 、、 Java ServletJava Servlet 、、 JavaBeanJavaBean 、、 JDBCJDBC 、、

XMLXML 、、 JMS……JMS……

Page 33: Java 平台企业版( J2EE )  原理

33 、、 J2EEJ2EE 架构及核心技术简介架构及核心技术简介CORBACORBA 体系结构:体系结构:核心-核心- ORBORB

Page 34: Java 平台企业版( J2EE )  原理

33 、、 J2EEJ2EE 架构及核心技术简介架构及核心技术简介CORBACORBA 技术:技术: CORBACORBA (( Common Object Request Broker ArchitecturCommon Object Request Broker Architectur

ee )是一个分布式对象体系结构,它独立于平台,也)是一个分布式对象体系结构,它独立于平台,也独立于语言。独立于语言。

在这个体系结构中,一个对象可以被本机上的客户在这个体系结构中,一个对象可以被本机上的客户或远程客户通过方法激活来存取。客户(一个对象或远程客户通过方法激活来存取。客户(一个对象或应用)无须知道被调用对象(称为服务对象)的或应用)无须知道被调用对象(称为服务对象)的运行环境,也无须知道实现这个对象的编程语言,运行环境,也无须知道实现这个对象的编程语言,客户只要知道服务对象的逻辑地址和提供的接口。客户只要知道服务对象的逻辑地址和提供的接口。

这种互操作性的关键是这种互操作性的关键是 IDLIDL (( Interface Definition LaInterface Definition Languagenguage 、接口定义语言),、接口定义语言), IDLIDL说明对象接口中的说明对象接口中的方法,这些方法可以被其它对象(或应用)激活。方法,这些方法可以被其它对象(或应用)激活。

Page 35: Java 平台企业版( J2EE )  原理

33 、、 J2EEJ2EE 架构及核心技术简介架构及核心技术简介

J2EEJ2EE核心技术:核心技术:

EJBEJB 、 、 CORBACORBA 、 、 RMIRMI 、、 JSPJSP 、、 Java ServletJava Servlet 、、 JavaBeanJavaBean 、、 JDBCJDBC 、、

XMLXML 、、 JMS……JMS……

Page 36: Java 平台企业版( J2EE )  原理

33 、、 J2EEJ2EE 架构及核心技术简介架构及核心技术简介RMIRMI 技术:技术: RMI(Remote Method Invoke)RMI(Remote Method Invoke) 是一种被是一种被 EJBEJB 使用的更底层的协议,正使用的更底层的协议,正

如其名字所表示的那样,如其名字所表示的那样, RMIRMI 协议调用远程对象上方法,使用序列化方协议调用远程对象上方法,使用序列化方式在客户端和服务器端的对象之间传递数据。式在客户端和服务器端的对象之间传递数据。

RMIRMI 和和 CORBACORBA 相比:相比: 两者的关键差别在于语言环境,两者的关键差别在于语言环境, Java RMIJava RMI 是一个分布式对象计算的纯是一个分布式对象计算的纯 JaJa

vava解决方案解决方案 (( 如,在如,在 Java RMIJava RMI 中,对象的接口用中,对象的接口用 JavaJava定义,而不是用定义,而不是用 IIDL)DL) ;;

其次,其次, CORBACORBA没有定义安全服务,而没有定义安全服务,而 Java RMIJava RMI继承了继承了 JavaJava 的安全性;的安全性; 再者,再者, CORBACORBA 有不同的实现,不同的独立软件开发商的不同实现均有独有不同的实现,不同的独立软件开发商的不同实现均有独

特性,这使得在不同平台上的匹配比较困难,而且不是所有特性,这使得在不同平台上的匹配比较困难,而且不是所有 CORBACORBA产品产品开发商都支持所有平台,而几乎所有平台都支持开发商都支持所有平台,而几乎所有平台都支持 JavaJava虚拟机,因此虚拟机,因此 Java Java RMIRMI 具有更高的可移植性。如果客户对象和服务对象都基于具有更高的可移植性。如果客户对象和服务对象都基于 JavaJava虚拟机,虚拟机,那么那么 Java RMIJava RMI 是分布对象计算的最好选择。是分布对象计算的最好选择。

最后,最后, IIOPIIOP已经提供了已经提供了 Java RMIJava RMI 和和 CORBACORBA 的互操作能力,而且两者的互操作能力,而且两者的发展有互相借鉴的趋势。的发展有互相借鉴的趋势。

Page 37: Java 平台企业版( J2EE )  原理

33 、、 J2EEJ2EE 架构及核心技术简介架构及核心技术简介

J2EEJ2EE核心技术:核心技术:

EJBEJB 、 、 CORBACORBA 、 、 RMIRMI 、、 JSPJSP 、、 Java ServletJava Servlet 、、 JavaBeanJavaBean 、、 JDBCJDBC 、、

XMLXML 、、 JMS……JMS……

Page 38: Java 平台企业版( J2EE )  原理

33 、、 J2EEJ2EE 架构及核心技术简介架构及核心技术简介JSPJSP 技术:技术: JSPJSP 是服务器端的脚本语言,是以是服务器端的脚本语言,是以 JavaJava 和和 ServletServlet 为基础开发为基础开发

而成的动态网页生成技术,它的底层实现是而成的动态网页生成技术,它的底层实现是 Java ServletJava Servlet 。。 JSP(Java Server Pages)JSP(Java Server Pages) 页面由页面由 HTMLHTML 代码和嵌入其中的代码和嵌入其中的 JavJav

aa 代码所组成。服务器在页面被客户端所请求以后对这些代码所组成。服务器在页面被客户端所请求以后对这些 JavaJava代码进行处理,然后将生成的代码进行处理,然后将生成的 HTMLHTML页面返回给客户端的浏览页面返回给客户端的浏览器。器。

特点:面向对象,跨平台,和特点:面向对象,跨平台,和 ServletServlet 一样稳定,可以使用一样稳定,可以使用 SerServletvlet 提供的提供的 APIAPI ,克服了,克服了 ServletServlet 的缺点。的缺点。

应用:一般和应用:一般和 JavaBeansJavaBeans 结合使用,从而将界面表现和业务逻结合使用,从而将界面表现和业务逻辑分离。辑分离。

Page 39: Java 平台企业版( J2EE )  原理

33 、、 J2EEJ2EE 架构及核心技术简介架构及核心技术简介JSPJSP 和和 ASPASP 的比较(一):的比较(一):相似相似::

都是运行于服务器端的脚本语言,两者都是动态网都是运行于服务器端的脚本语言,两者都是动态网页生成技术。页生成技术。

这两项技术都使用这两项技术都使用 HTMLHTML 来决定网页的版面,都是来决定网页的版面,都是在在 HTML HTML 代码中混合某种程序代码,由语言引擎解代码中混合某种程序代码,由语言引擎解释执行程序代码。释执行程序代码。 HTMLHTML 代码主要负责描述信息的代码主要负责描述信息的显示样式,而程序代码则用来描述处理逻辑。显示样式,而程序代码则用来描述处理逻辑。

Page 40: Java 平台企业版( J2EE )  原理

33 、、 J2EEJ2EE 架构及核心技术简介架构及核心技术简介JSPJSP 和和 ASPASP 的比较(二):的比较(二):不同:不同: JSPJSP 是由是由 SunSun 推出的一项技术,是基于推出的一项技术,是基于 JavaServletJavaServlet 以及整个以及整个 javajava 体系体系

的的 WebWeb 开发技术,利用这一技术可以建立先进、安全和跨平台的动态网开发技术,利用这一技术可以建立先进、安全和跨平台的动态网站。站。 ASPASP 是是 MSMS公司推出的技术,只能在公司推出的技术,只能在 MSMS 的平台上运行,无法实现的平台上运行,无法实现跨平台,也无安全性保障。跨平台,也无安全性保障。

ASPASP 下的编程语言是 下的编程语言是 VBScript VBScript 之类的脚本语言,而之类的脚本语言,而 JSP JSP 使用的是使用的是 JavJavaa 。。

ASP ASP 与 与 JSP JSP 还有一个更为本质的区别:两种语言引擎用完全不同的方还有一个更为本质的区别:两种语言引擎用完全不同的方式处理页面中嵌入的程序代码。在 式处理页面中嵌入的程序代码。在 ASP ASP 下, 下, VBScript VBScript 代码被 代码被 ASP ASP 引擎解释执行;在 引擎解释执行;在 JSP JSP 下,代码被编译成 下,代码被编译成 Servlet Servlet 并由 并由 Java Java 虚拟机执虚拟机执行,这种编译操作仅在对 行,这种编译操作仅在对 JSP JSP 页面的第一次请求时发生。 页面的第一次请求时发生。

     

Page 41: Java 平台企业版( J2EE )  原理

33 、、 J2EEJ2EE 架构及核心技术简介架构及核心技术简介

J2EEJ2EE核心技术:核心技术:

EJBEJB 、 、 CORBACORBA 、 、 RMIRMI 、、 JSPJSP 、、 Java ServletJava Servlet 、、 JavaBeanJavaBean 、、 JDBCJDBC 、、

XMLXML 、、 JMS……JMS……

Page 42: Java 平台企业版( J2EE )  原理

33 、、 J2EEJ2EE 架构及核心技术简介架构及核心技术简介Java ServletJava Servlet 技术:技术: Servlets(Servlets(== Server Server ++ Applet)Applet) :是一些运行于:是一些运行于 WebWeb 服务服务

器端的器端的 JavaJava小程序,用来扩展小程序,用来扩展WebWeb 服务器的功能。服务器的功能。 ServletServlet 是一种扩展是一种扩展WebWeb 服务器功能的技术,而且由于它是服务器功能的技术,而且由于它是

用用 JavaJava 编写的,所以能够访问整个编写的,所以能够访问整个 Java APIJava API 库,包括用于库,包括用于访问企业数据库的访问企业数据库的 JDBC APIJDBC API 。。

ServletsServlets 用特定的用特定的 JavaJava解决方案替代了其它的解决方案替代了其它的 WebWeb 服务器服务器方编程模式(如:方编程模式(如: CGICGI ,, ISAPIISAPI 等),因而继承了等),因而继承了 JavaJava 的的所有特性所有特性 ((跨平台、多线程、跨平台、多线程、 OO)OO) 。。

用来编写用来编写 ServletsServlets 的的 Servlet APIServlet API 对于服务器环境和协议没对于服务器环境和协议没有任何特殊的要求,所以有任何特殊的要求,所以 ServletsServlets 具有很强的可移植性,也具有很强的可移植性,也不像利用不像利用 CGICGI 程序等其它方式那样具有性能局限。程序等其它方式那样具有性能局限。

ServletsServlets 也同样使用也同样使用 HTTPHTTP 协议与客户端进行通讯,所以有协议与客户端进行通讯,所以有时也称时也称 SevletsSevlets 为“为“ HTTP Servlets”HTTP Servlets” 。 。

Page 43: Java 平台企业版( J2EE )  原理

33 、、 J2EEJ2EE 架构及核心技术简介架构及核心技术简介Java ServletJava Servlet 和和 JSPJSP 的比较:的比较:相似:相似: 两者都是基于两者都是基于 JavaJava 的技术,所以都继承了的技术,所以都继承了 JavaJava 的所有特性(跨平台、的所有特性(跨平台、

多线程、多线程、 OO OO ),都可以使用),都可以使用 JavaJava强大的强大的 APIAPI 。。 两者工作方式相似:两者工作方式相似: JSPJSP 代码先被代码先被 JSPJSP容器转换为容器转换为 ServletServlet 代码再编译代码再编译

为类。为类。 两者在两者在 J2EEJ2EE 体系结构中的工作层次相同,都负责与客户端的连接。体系结构中的工作层次相同,都负责与客户端的连接。不同:不同: 编程方式不同。编程方式不同。 ServletsServlets 是一些运行于是一些运行于 WebWeb 服务器端的服务器端的 JavaJava小程序;小程序;

而而 JSPJSP 是脚本,编写起来更简单容易。是脚本,编写起来更简单容易。 应用目的不同。应用目的不同。 ServletServlet 主要用于从客户端接收请求信息,而主要用于从客户端接收请求信息,而 JSPJSP 主要负主要负责将服务器端信息传送到客户端。责将服务器端信息传送到客户端。

使用使用 JSPJSP 的真正意义在于:可以将界面设计和业务逻辑设计分离。的真正意义在于:可以将界面设计和业务逻辑设计分离。

Page 44: Java 平台企业版( J2EE )  原理

33 、、 J2EEJ2EE 架构及核心技术简介架构及核心技术简介

J2EEJ2EE核心技术:核心技术:

EJBEJB 、 、 CORBACORBA 、 、 RMIRMI 、、 JSPJSP 、、 Java ServletJava Servlet 、、 JavaBeanJavaBean 、、 JDBCJDBC 、、

XMLXML 、、 JMS……JMS……

Page 45: Java 平台企业版( J2EE )  原理

33 、、 J2EEJ2EE 架构及核心技术简介架构及核心技术简介JavaBeanJavaBean 技术:技术: JavaBeanJavaBean 是基于是基于 JavaJava 的组件模型,有点类似于的组件模型,有点类似于 MicrosoftMicrosoft

的的 COMCOM 组件。组件。 JavaBeanJavaBean 通过通过 JavaJava虚拟机虚拟机 (Java Virtual Machine)(Java Virtual Machine) 执行,执行,

运行运行 JavaBeanJavaBean 最小的需求是最小的需求是 JDK1.1JDK1.1 或者以上的版本。或者以上的版本。 在在 JavaJava 平台中,通过平台中,通过 JavaBeanJavaBean 可以无限扩充可以无限扩充 JavaJava 程序的程序的功能,通过功能,通过 JavaBeanJavaBean 的组合可以快速的生成新的应用程序。的组合可以快速的生成新的应用程序。

对于程序员来说,最好的一点就是对于程序员来说,最好的一点就是 JavaBeanJavaBean 可以实现代码可以实现代码的重复利用,另外对于程序的易维护性等等也有很重大的意的重复利用,另外对于程序的易维护性等等也有很重大的意义。义。

JavaBeanJavaBean 传统的应用在于可视化的领域,如传统的应用在于可视化的领域,如 AWTAWT 下的应用。下的应用。自从自从 JspJsp诞生后,诞生后, JavaBeanJavaBean 更多的应用在了非可视化领域,更多的应用在了非可视化领域,在服务器端应用方面表现出来了越来越强的生命力。在服务器端应用方面表现出来了越来越强的生命力。

Page 46: Java 平台企业版( J2EE )  原理

33 、、 J2EEJ2EE 架构及核心技术简介架构及核心技术简介

J2EEJ2EE核心技术:核心技术:

EJBEJB 、 、 CORBACORBA 、 、 RMIRMI 、、 JSPJSP 、、 Java ServletJava Servlet 、、 JavaBeanJavaBean 、、 JDBCJDBC 、、

XMLXML 、、 JMS……JMS……

Page 47: Java 平台企业版( J2EE )  原理

33 、、 J2EEJ2EE 架构及核心技术简介架构及核心技术简介JDBCJDBC 技术:技术: JDBCJDBC 是一组是一组 APIAPI ,定义了用来访问数据源的标准,定义了用来访问数据源的标准 JJ

avaava类库,使用这个类库可以以一种标准的方法、类库,使用这个类库可以以一种标准的方法、方便地访问数据库资源。方便地访问数据库资源。

JDBCJDBC 对数据库的访问具有平台无关性。 对数据库的访问具有平台无关性。 JDBC APIJDBC API 为访问不同的数据库提供了一种统一的途为访问不同的数据库提供了一种统一的途径,象径,象 ODBCODBC 一样,一样, JDBCJDBC 对开发者屏蔽了一些细对开发者屏蔽了一些细节问题。节问题。

JDBCJDBC 的目标是使应用程序开发人员使用的目标是使应用程序开发人员使用 JDBCJDBC 可以可以连接任何提供了连接任何提供了 JDBCJDBC驱动程序的数据库系统,这驱动程序的数据库系统,这样就使得程序员无需对特定的数据库系统的特点有样就使得程序员无需对特定的数据库系统的特点有过多的了解,从而大大简化和加快了开发过程。过多的了解,从而大大简化和加快了开发过程。

Page 48: Java 平台企业版( J2EE )  原理

33 、、 J2EEJ2EE 架构及核心技术简介架构及核心技术简介

J2EEJ2EE核心技术:核心技术:

EJBEJB 、 、 CORBACORBA 、 、 RMIRMI 、、 JSPJSP 、、 Java ServletJava Servlet 、、 JavaBeanJavaBean 、、 JDBCJDBC 、、

XMLXML 、、 JMS……JMS……

Page 49: Java 平台企业版( J2EE )  原理

33 、、 J2EEJ2EE 架构及核心技术简介架构及核心技术简介XMLXML 技术:技术: XML(Extensible Markup Language)XML(Extensible Markup Language) 是一种可以是一种可以

用来定义其它标记语言的语言,被用来在不同的商用来定义其它标记语言的语言,被用来在不同的商务过程中共享数据。务过程中共享数据。

XMLXML 的发展和的发展和 JavaJava 是相互独立的,但是它和是相互独立的,但是它和 JavaJava具有的相同目标即平台独立性。通过将具有的相同目标即平台独立性。通过将 JavaJava 和和 XMXMLL 的组合,可以得到一个完美的具有平台独立性的的组合,可以得到一个完美的具有平台独立性的解决方案。解决方案。

J2EEJ2EE 平台全面支持和实施平台全面支持和实施 XMLXML ,这种强大的组合,这种强大的组合可使可使 XMLXML 具备跨平台的兼容性,甚至用于对具备跨平台的兼容性,甚至用于对 XMLXML代码进行语法检查和调试的工具也可与平台无关。代码进行语法检查和调试的工具也可与平台无关。

Page 50: Java 平台企业版( J2EE )  原理

33 、、 J2EEJ2EE 架构及核心技术简介架构及核心技术简介

J2EEJ2EE核心技术:核心技术:

EJBEJB 、 、 CORBACORBA 、 、 RMIRMI 、、 JSPJSP 、、 Java ServletJava Servlet 、、 JavaBeanJavaBean 、、 JDBCJDBC 、、

XMLXML 、、 JMSJMS 、……、……

Page 51: Java 平台企业版( J2EE )  原理

33 、、 J2EEJ2EE 架构及核心技术简介架构及核心技术简介JMSJMS 技术:技术: JMSJMS 是一种基于 是一种基于 JavaJava 的技术,因此是平台无关的。它为消息服务定的技术,因此是平台无关的。它为消息服务定义了通用 义了通用 Java Java 语言接口,支持最常见的消息传递模型(发布语言接口,支持最常见的消息传递模型(发布 //订阅和点订阅和点到点)。通过对到点)。通过对 JMSJMS (( JavaJava 消息服务)消息服务) APIAPI 的访问可实现面向消息的通的访问可实现面向消息的通信 。 信 。 JMSJMS 通常用来实现异构系统之间的松散集成。通常用来实现异构系统之间的松散集成。

Page 52: Java 平台企业版( J2EE )  原理

33 、、 J2EEJ2EE 架构及核心技术简介架构及核心技术简介** 关于消息技术:关于消息技术: 消息系统的特点:消息系统的特点:

- - 消息是异步的。消息是异步的。 - 允许不同的应用程序之间进行通讯。- 允许不同的应用程序之间进行通讯。 -消息应用程序之间是对等的,服务器与客户-消息应用程序之间是对等的,服务器与客户机之间没有明显的界限。 消息的生产者可以消费机之间没有明显的界限。 消息的生产者可以消费消息,消费消息的应用程序也可以生产消息。消息,消费消息的应用程序也可以生产消息。

Page 53: Java 平台企业版( J2EE )  原理

33 、、 J2EEJ2EE 架构及核心技术简介架构及核心技术简介** 关于消息技术:关于消息技术: 消息系统的优势:消息系统的优势:

-与平台无关,与在网络上所处的位置无关。-与平台无关,与在网络上所处的位置无关。 -是可伸缩,可扩展的。需更大的吞吐量,只需添加硬 -是可伸缩,可扩展的。需更大的吞吐量,只需添加硬 件即可。可支持数万台客户机,每秒钟可处理事件的数目件即可。可支持数万台客户机,每秒钟可处理事件的数目可达几万。可达几万。 -在异构的环境中可以很好地工作。-在异构的环境中可以很好地工作。 -是健壮的,发送接受可以失败,网络也可以失败,这-是健壮的,发送接受可以失败,网络也可以失败,这时时 Messaging SystemMessaging System 可以继续执行它的职责。可以继续执行它的职责。

Page 54: Java 平台企业版( J2EE )  原理

33 、、 J2EEJ2EE 架构及核心技术简介架构及核心技术简介 J2EEJ2EE 其它核心技术:其它核心技术:

EJBEJB 、 、 CORBACORBA 、 、 RMIRMI 、、 JSPJSP 、、 JavaServJavaServletlet 、 、 JavaBeanJavaBean 、、 JDBCJDBC 、、

XMLXML 、、 JMSJMS 、、…………

几个对应于几种服务的企业级几个对应于几种服务的企业级 APIAPI :: JNDI(Java Naming and Directory Interface)JNDI(Java Naming and Directory Interface) 、 、 JMAPI(Java Management API)JMAPI(Java Management API) 、、 JTS/JTA(Java Transaction Service/API)JTS/JTA(Java Transaction Service/API) 、 、 Java Security APIJava Security API 。。

Page 55: Java 平台企业版( J2EE )  原理

33 、、 J2EEJ2EE 架构及核心技术简介架构及核心技术简介

J2EEJ2EE核心技术中最常用的技术:核心技术中最常用的技术:

EJBEJB 、、 CORBACORBA 、 、 RMIRMI 、、 JSPJSP 、、 Java ServletJava Servlet 、、 JavaBeanJavaBean 、、 JDBCJDBC 、、

XMLXML 、、 JMSJMS 、……、……

开发大型企业级应用:开发大型企业级应用:异构、分布、数据交换异构、分布、数据交换 CORBACORBA 、 、 RMIRMI 、、 XMLXML 、、 JMSJMS 、……、……

Page 56: Java 平台企业版( J2EE )  原理

内 容 内 容 一、一、 J2EEJ2EE 的由来 的由来 √√

二、二、 J2EEJ2EE 的组成 的组成 √√

Page 57: Java 平台企业版( J2EE )  原理

附录附录 现在支持现在支持 J2EEJ2EE 技术的技术的 ASAS ::

                                                      BEAWebLogic Server 7.0

BorlandEnterprise Server, AppServer Edition &JBuilder 8.0

FujitsuINTERSTAGE

Application Server

IBMWebSphere Application Server 5.0

IONAOrbix E2A Application Server

MacromediaJRun 4

Page 58: Java 平台企业版( J2EE )  原理

附录附录

Oracle9i Application Server

PramatiServer 3.0 &Studio 3.0

SASAppDev Studio 2.0.2 Preview Release

SilverStreameXtend App Server 4.0 Beta

SpiritSoft

SunTM ONEApplication Server

SunTM ONE

Studio 4

SybaseEAServer 4.1

Tmax SoftJEUS 4.0

Page 59: Java 平台企业版( J2EE )  原理

附录附录

TriforkApplication Server 3.1

J2EE SDK 1.3

Page 60: Java 平台企业版( J2EE )  原理

谢谢!