1、1JAVAEE 编程技术1目 录一.JAVAEE 的核心技术简介 .2EJB-JAVAEE 的基石 .2CORBA 技术 .3RMI 技术 .3JAVA SERVLET 技术 .4JAVABEAN 技术 .4JDBC 技术 .4XML 技术 .5其他技术 .5技术之间的区别 .5二.JAVAEE 的原理(图) .6三.JAVAEE 的应用 .71.应用 .72.JavaEE 应用的现状: .73.使用 JavaEE 开发企业应用要注意的问题: .74.JavaEE 应用的展望: .7四.服务器 .81.WEB 服务器的工作原理? .82.TOMCAT 的工作原理 .8五.MVC 模式 .91一
2、.JAVE 核心技术简介JAVAEE 核心技术有 13 种:EJB、 CORBA、 RMI、JSP、Java Servlet、JavaBean、JDBCXML、EJB-JAVAEE 的基石1.1 什么是 EJB?EJB (Enterprise JavaBean)是一个 Java 服务器端组件开发的规范.他从技术上而言不是一种“ 产品 “ 而是一种标准 .描述了构建应用组件要解决的:可扩展 (Scalable)分布式 (Distributed)事务处理 (Transactional)数据存储 (Persistent)安全性 (Secure)1.2 EJB 组件EJB 组件分为三种:会话 EJB:
3、会话 EJB 向客户提供一定的服务,如:特定的商业逻辑、数据库查询等实体 EJB:实体 EJB 则代表数据对象,通常代表的是数据表记录集的一行,一个实体EJB 可以同时与多个客户进行交互。消息驱动 EJB:是 EJB2.0 中引入的新的企业 Bean,它基于 JMS 消息,只能接收客户端发送的 JMS 消息然后处理。1.3 EJB 的容器是 EJB 组件的运行环境,为部署的 EJB 组件提供各种服务(事务、安全、远程客户端的网络发布、资源管理等)。容器厂商也可以在容器或服务器中提供额外服务的接口1.4 EJB 的服务器管理 EJB 容器的高端进程或应用程序,并提供对系统服务的访问。EJB 服务
4、器也可以提供厂商自己的特性,如优化的数据库访问接口,对其他服务(如 CORBA 服务)的访问等。CORBA 技术公用对象请求代理(调度)程序体系结构(Common Object Request Broker Architecture),缩写为 CORBA,是对象治理组织(Object Management Group)( OMG) 为 解 决 分 布 式 处 理 环 境 (DCE)中 , 硬 件 和 软 件 系 统 的 互 连 而 提 出 的 一 种 解 决方 案 .简而言之,CORBA 答应应用程序和其他的应用程序通讯,而不论他们在什么地方或者由谁来设计。CORBA1.1 由对象治理组织在
5、1991 年发布。他定义了接口定义语言(IDL)和应用编程接口(API),从而通过实现对象请求代理(ORB)来激活客户/服务器的交互。CORBA2.0 于 1994 年的 12 月发布。他定义了如何跨越不同的 ORB 提供者而进行通讯.1RMI 技术RMI,远程方法调用(Remote Method Invocation)是 Enterprise JavaBeans 的支柱,是建立分布式 Java 应用程序的方便途径。RMI 协议调用远程对象的方法,使用序列化方式在客户端和服务器端的对象之间传递数据。1. JSP 技术JSP 是服务器端的脚本语言,是以 Java 和 Servlet 为基础开发而
6、成的动态网页生成技术,它的底层实现是 Java Servlet。JSP(Java Server Pages)页面由 HTML 代码和嵌入其中的 Java 代码所组成。服务器在面被客户端请求以后对这些 Java 代码进行处理,然后将生成的 HTML 页面返回给客户端的浏览器。特点:面向对象,跨平台,和 Servlet 一样稳定,可以使用 Servlet 提供的 API,克服了 Servlet 的缺点。应用:一般和 JavaBeans 结合使用,从而将界面表现和业务逻辑分离。浏览器 JSP 文件 数据库BEANJAVA SERVLET 技术Servlets(Server Applet):是一些运行
7、于 Web 服务器端的 Java 小程序,用来扩展Web 服务器的功能。Servlet 是一种扩展 Web 服务器功能的技术,而且由于它是用 Java 编写的,所以能够访问整个 Java API 库,包括用于访问企业数据库的 JDBC API。Servlets 用特定的 Java 解决方案替代了其它的 Web 服务器方编程模式(如:CGI,ISAPI 等),因而继承了 Java 的所有特性(跨平台、多线程、OO)。Servlets 也同样使用 HTTP 协议与客户端进行通讯,所以有时也称 Sevlets 为“HTTP Servlets”用来编写 Servlets 的 Servlet API 对
8、于服务器环境和协议没有任何特殊的要求,所以Servlets 具有很强的可移植性,也不像利用 CGI 程序等其它方式那样具有性能局限。1JAVABEAN 技术JavaBean 是基于 Java 的组件模型,有点类似于 Microsoft 的 COM 组件。在 Java 平台中,通过 JavaBean 可以无限扩充 Java 程序的功能,通过 JavaBean 的组合可以快速的生成新的应用程序。JavaBean 可以实现代码的重复利用,并有利于提高程序的易维护性。JavaBean 的传统应用领域是可视化组件,如 AWT 下的应用。自从 Jsp 诞生后,JavaBean更多的应用在了非可视化领域,在
9、服务器端应用方面表现出来了越来越强的生命力。 JDBC 技术JDBC 是一组 API,定义了用来访问数据源的标准 Java 类库,使用这个类库可以以一种标准的方法、方便地访问数据库资源。JDBC 对数据库的访问具有平台无关性。 JDBC API 为访问不同的数据库提供了一种统一的途径,象 ODBC 一样,JDBC 对开发者屏蔽了一些细节问题。JDBC 的目标是使应用程序开发人员使用 JDBC 可以连接任何提供了 JDBC 驱动程序的数据库系统,这样就使得程序员无需对特定的数据库系统的特点有过多的了解,从而大大简化和加快了开发过程。XML 技术XML(Extensible Markup Lang
10、uage)是一种可以用来定义其它标记语言的语言,被用来在不同的商务过程中共享数据。XML 的发展和 Java 是相互独立的,但是它和 Java 具有的相同目标即平台独立性。通过将 Java 和 XML 的组合,可以得到一个完美的具有平台独立性的解决方案。JavaEE 平台全面支持和实施 XML,这种强大的组合可使 XML 具备跨平台的兼容性,甚至用于对 XML 代码进行语法检查和调试的工具也可与平台无关其他技术JNDI(Java Naming and Directory Interface)、 JMAPI(Java Management API)、JTS/JTA(Java Transactio
11、n Service/API)、 JMS( Java Messaging Service)、Java Security API。1技术之间的区别10.1 RMI 和 CORBA 的区别首先,二者的工作的语言环境不同。RMI 是纯粹的 JAVA 解决方案,而 CORBA 用的是 IDL其次,CORBA 的安全性没有 RMI 的强。再次,RMI 具有可移植性。10.2 JSP 和 ASP相同:二者都是运行服务器端的脚本语言,都是动态网页的生成技术。二者都是使用HTML 来决定网页的版面,都是在 HTML 代码中混合某种程序代码,由语言引擎解释执行程序代码。不同:JSP 是基于 JAVASERVLET
12、 及整个 JAVA 体系的 WEB 生成技术。ASP 只能在 MS 平台上运行。二者的编程语言不同。两种语言引擎用完全不同的方式处理页面中嵌入的程序代码。在 ASP 下, VBScript 代码被 ASP 引擎解释执行;在 JSP 下,代码被编译成 Servlet 并由 Java 虚拟机执行10.3 JAVASERVLET 和 JSP两者工作方式相似:JSP 代码先被 JSP 容器转换为 Servlet 代码再编译为类。两者在 JavaEE 体系结构中的工作层次相同,都负责与客户端的连接Servlets 是一些运行于 Web 服务器端的 Java 小程序;而 JSP 是脚本,编写起来更简单容易
13、。Servlet 主要用于从客户端接收请求信息,而 JSP 主要负责将服务器端信息传送到客户端二.JAVAEE 的原理(图)JavaEE 的运行环境定义了 4 种类型的应用组件:l Applet 客户端l Application 客户端l Web 组件l EJB 组件1三.JAVAEE 的应用1.应用12.JavaEE 应用的现状:JavaEE 是成长最快的技术应用框架,全球 87%的新应用是由 JavaEE 分布式应用体系支撑的。最近,全球最大的 ERP 供应商 SAP 也宣布选用 JavaEE。但在中国,由于受限于技术没有普及、开发平台复杂难用、人力资源稀缺等因素,JavaEE 应用还没有
14、被客户完全接受,离大规模应用还有很长的路要走。3.使用 JavaEE 开发企业应用要注意的问题:结合本企业的实际情况选用最适当的技术,需要终合考虑企业规模、业务特征、应用能力、预算费用、性能、开发周期、管理成本、维护成本等各种因素,还需要有一定的前瞻性4.JavaEE 应用的展望:JavaEE 本身是一个很好的技术,JavaEE 体系结构提供中间层集成框架用来满足没有太多费用而又需要高可用性、高可靠性以及可扩展性的应用的需求。通过提供统一的开发平台,JavaEE 降低了开发多层应用的费用和复杂性,同时提供对现有应用程序集成强有力支持。通过技术人员、厂商以及用户的共同努力,JavaEE 一定能够
15、成为用户进行电子商务应用和信息化建设的首选方案。 四.服务器1.WEB 服务器的工作原理?HTTP 是一种让 Web 服务器与浏览器(客户端)通过 Internet 发送与接收数据的协议。它是一个请求、响应协议-客户端发出一个请求,服务器响应这个请求。HTTP 运用可靠的 TCP 连接。HTTP 中,客户端总是通过建立一个连接与发送一个 HTTP 请求来发起一个事务。服务器不能主动去与客户端联系,也不能给客户端发出一个回叫连接。客户端与服务器端都可以提前中断一个连接。例如,当用一个浏览器下载一个文件时,你可以通过点击“停止” 键来中断文件的下载,关闭与服务器的 HTTP 连接。2.TOMCAT
16、 的工作原理TOMCAT 的功能:WEB 服务器SERVLET 容器1JSP 容器1五.MVC 模式MVC 架 构 是 “Model-View-Controller“的 缩 写 , 中 文 翻 译 为 “模 型 -视 图 -控 制 器 “。 MVC应 用 程 序 总 是 由 这 三 个 部 分 组 成 . MVC 英 文 即 Model-View-Controller, 即 把 一 个 应用 的 输 入 、 处 理 、 输 出 流 程 按 照 Model、 View、 Controller 的 方 式 进 行 分 离 , 这 样 一个 应 用 被 分 成 三 个 层 模 型 层 、 视 图 层
17、 、 控 制 层 。视 图视 图 (View)代 表 用 户 交 互 界 面 , 对 于 Web 应 用 来 说 , 可 以 概 括 为 HTML 界 面 ,但 有 可 能 为 XHTML、 XML 和 Applet。 随 着 应 用 的 复 杂 性 和 规 模 性 , 界 面 的 处 理 也 变得 具 有 挑 战 性 。 一 个 应 用 可 能 有 很 多 不 同 的 视 图 , MVC 设 计 模 式 对 于 视 图 的 处 理 仅限 于 视 图 上 数 据 的 采 集 和 处 理 , 以 及 用 户 的 请 求 , 而 不 包 括 在 视 图 上 的 业 务 流 程 的 处 理 。业 务
18、 流 程 的 处 理 交 予 模 型 (Model)处 理 。 比 如 一 个 订 单 的 视 图 只 接 受 来 自 模 型 的 数 据 并显 示 给 用 户 , 以 及 将 用 户 界 面 的 输 入 数 据 和 请 求 传 递 给 控 制 和 模 型 。模 型模 型 (Model): 就 是 业 务 流 程 /状 态 的 处 理 以 及 业 务 规 则 的 制 定 。 业 务 流 程 的 处 理过 程 对 其 它 层 来 说 是 黑 箱 操 作 , 模 型 接 受 视 图 请 求 的 数 据 , 并 返 回 最 终 的 处 理 结 果 。 业务 模 型 的 设 计 可 以 说 是 MVC
19、 最 主 要 的 核 心 。 目 前 流 行 的 EJB 模 型 就 是 一 个 典 型 的 应用 例 子 , 它 从 应 用 技 术 实 现 的 角 度 对 模 型 做 了 进 一 步 的 划 分 , 以 便 充 分 利 用 现 有 的 组 件 ,但 它 不 能 作 为 应 用 设 计 模 型 的 框 架 。 它 仅 仅 告 诉 你 按 这 种 模 型 设 计 就 可 以 利 用 某 些 技 术组 件 , 从 而 减 少 了 技 术 上 的 困 难 。 对 一 个 开 发 者 来 说 , 就 可 以 专 注 于 业 务 模 型 的 设 计 。MVC 设 计 模 式 告 诉 我 们 , 把 应
20、 用 的 模 型 按 一 定 的 规 则 抽 取 出 来 , 抽 取 的 层 次 很 重 要 ,这 也 是 判 断 开 发 人 员 是 否 优 秀 的 设 计 依 据 。 抽 象 与 具 体 不 能 隔 得 太 远 , 也 不 能 太 近 。MVC 并 没 有 提 供 模 型 的 设 计 方 法 , 而 只 告 诉 你 应 该 组 织 管 理 这 些 模 型 , 以 便 于 模 型 的重 构 和 提 高 重 用 性 。 我 们 可 以 用 对 象 编 程 来 做 比 喻 , MVC 定 义 了 一 个 顶 级 类 , 告 诉它 的 子 类 你 只 能 做 这 些 , 但 没 法 限 制 你 能
21、 做 这 些 。 这 点 对 编 程 的 开 发 人 员 非 常 重 要 。控 制控 制 (Controller)可 以 理 解 为 从 用 户 接 收 请 求 , 将 模 型 与 视 图 匹 配 在 一 起 , 共 同 完成 用 户 的 请 求 。 划 分 控 制 层 的 作 用 也 很 明 显 , 它 清 楚 地 告 诉 你 , 它 就 是 一 个 分 发 器 , 选择 什 么 样 的 模 型 , 选 择 什 么 样 的 视 图 , 可 以 完 成 什 么 样 的 用 户 请 求 。 控 制 层 并 不 做 任 何的 数 据 处 理 。 例 如 , 用 户 点 击 一 个 连 接 , 控
22、制 层 接 受 请 求 后 , 并 不 处 理 业 务 信 息 , 它只 把 用 户 的 信 息 传 递 给 模 型 , 告 诉 模 型 做 什 么 , 选 择 符 合 要 求 的 视 图 返 回 给 用 户 。 因 此 ,一 个 模 型 可 能 对 应 多 个 视 图 , 一 个 视 图 可 能 对 应 多 个 模 型 。模 型 、 视 图 与 控 制 器 的 分 离 , 使 得 一 个 模 型 可 以 具 有 多 个 显 示 视 图 。 如 果 用 户 通 过某 个 视 图 的 控 制 器 改 变 了 模 型 的 数 据 , 所 有 其 它 依 赖 于 这 些 数 据 的 视 图 都 应 反 映 到 这 些变 化 。 因 此 , 无 论 何 时 发 生 了 何 种 数 据 变 化 , 控 制 器 都 会 将 变 化 通 知 所 有 的 视 图 , 导 致