Java EE 5 由 Java Community Process 通过 Java Specification Request 244 发布,这个 “总纲” JSR 指出了详细描述 Java EE 5 中各种技术的其他规范(参见 参考资料)。Sun Microsystems 的 Bill Shannon 领导一个专家组制订了这个规范,这个专家组包括从 IT 行业重量级人物到个人专家的 31 位成员。以前的 Java EE 版本有:
J2EE 1.2(于 1999 年 12 月发布):这是第一个 J2EE 版本,随着 Java 2 Standard Edition(J2SE) 发布。它包含 10 个规范和 API,针对企业应用程序所需的常用的 Web 层、业务逻辑、表示层和消息传递服务。
J2EE 1.3(于 2001 年 9 月发布):通过 JSR 58 发布,这个版本改进了半数 J2EE 1.2 规范并引入了 XML API、连接器架构和安全框架。
J2EE 1.4(于 2003 年 11 月发布):这个版本改进了 J2EE 1.3 中 13 种技术中的 9 种,并引入了新的 Web 服务和安全支持。
J2EE 1.4 之后就是 Java EE 5,因为 Sun 已经从名称中去掉了 “2”(这是从 Java 1.2 被称为 “Java 2” 时开始的做法),而且现在在技术的简写名中使用单词 “Java” 而不是 “J”。现在的标准版是 Java SE 6(而不是 J2SE 1.6),企业版是 Java EE 5(而不是 J2EE 1.5)。
JAVAEE5.0包含技术:
JSF1.2
JSP2.1
JSTL1.2
Java Servlet 2.5
EJB 3.0
JPA1.0
JAX-WS 2.0
JSF 1.2
JSF 为常见的 UI 问题提供了内置支持,比如组件状态管理、事件处理、导航、用户输入检验和国际化。有经验的开发人员可以创建定制的强大的可重用组件,还可以为 Web 浏览器之外的其他客户机设备创建定制的组件。技术经验不足的用户可以在 Sun Java Studio Creator 等可视编程环境中重用定制组件,包括用于 HTML 界面的默认 JSF 标记库。这让编程新手也能够创建复杂的 Web 表示层。
在开放源码领域和受许可协议限制的软件领域中,第三方 JSF 组件越来越多了。在 Web 上搜索 “JSF components” 或 “JSF component libraries” 会找到几十种组件。许多组件都依赖于 Asynchronous JavaScript + XML(Ajax)技术,这种技术是 “Web 2.0” 运动背后的主要驱动力。Web 程序员可以使用它们创建出比传统 Web 应用程序更好的用户体验,同时避免了从头编写 Ajax 组件的麻烦。
JSP 2.1
JSP 技术是从 J2EE 2.1 开始出现的。它使用 Java Servlet 规范支持声明式的 UI 编程。它支持以文档形式编写 UI,Web 应用程序容器将这些文档转换为 Java servlet 并编译,然后调用它们来响应请求。这些文档通常将 JSP 指令和脚本片段与某种标记语言(比如 HTML)混在一起。JSP 可以使用老式语法(使用以 <% 开头、以 %> 结束的特殊标记),也可以使用新的语法(良构的 XML)。它们通常作为 Model-View-Controller(MVC) UI 框架的 “View” 部分。
与以前的版本相比,JSP 2.1 和 JSF 1.2 之间的兼容性更好,这主要是因为它们的 EL 语法已经集成为统一 EL。EL 支持的操作包括:
在请求、会话和应用程序上下文中访问 JavaBean 的属性。
执行逻辑测试来做出各种选择,比如隐藏还是显示某个元素。
通过计算生成在 UI 中显示的数字和字符串。
过去,JSP 和 JSF EL 语法有差异,而且容器计算它们的方式也不一样。统一 EL 消除了这些差异,还增加了一些特性,比如:
一个可插入的框架,支持对 EL 的解释进行定制。
支持延期执行的表达式,JSP 标记处理器可以根据需要执行它们。
支持赋值操作,例如可以在 JSP 代码中用 EL 表达式设置 JavaBean 的属性。
对于 JSP 标记库开发人员来说,好消息是标记处理器现在支持用注解注入资源,所以大大简化了执行 Java Naming and Directory Interface(JNDI)所需的资源配置和代码。
JSTL 1.2
JSTL 已经存在多年了,但是在 Java EE 5 之前,Java EE 还不包含它。JSTL 标记支持在 JSP 中嵌入以下类型的元素:
过程式逻辑,比如循环和 if/else 结构。
对 JavaBean 的访问方法,这可以向 UI 提供动态数据并允许 UI 代码修改数据。
执行数据库访问的 SQL 命令。
格式化指令,可以根据特定的地区对 UI 输出进行格式化。
XML 处理,比如 Document Object Model(DOM)解析或 Extensible Stylesheet Language(XSL)转换。
JSTL 1.2 是一个维护版本,它支持统一 EL 并解决了在同一个 JSP 页面中混用 JSF 标记和 JSTL 迭代标记时遇到的问题。
Java Servlet 2.5
Java Servlet 规范是 Java Web 层技术的核心,它的历史与 Java EE 技术本身一样长。设计这个规范是为了提供一种高效率的基于组件的 Web 应用程序开发方法,并确保 Web 应用程序可以移植到实现这个规范的任何服务器上。
Java EE 5 所需的 Servlet 2.5 规范是一个维护版本,它对 2.4 版做了一些次要的改进。它在 Java 5 平台上引入了一些依赖项,还引入了一些注解,它们可以减少对 Web 应用程序部署描述符配置文件(web.xml)的配置需求。还增加了一些方便的配置特性,例如可以用通配符和多个 url-pattern 元素更灵活地配置 servlet。
回页首
企业应用程序技术
有大量技术属于企业应用程序的范围,其中许多在 Java EE 5 中没有变化或者不适合在本文中详细讨论。这里主要关注两个改进:对 EJB 开发的简化和新的持久化特性。
EJB 3.0
EJB 规范是 Java EE 平台的核心。它定义如何封装应用程序的业务逻辑,并以高度可伸缩、可靠且感知事务的方式分布业务逻辑,确保并发的数据访问不会破坏数据。
EJB 有三种基本类型:
会话 bean 分成两类:无状态 和有状态。无状态会话 bean 用于那些为单一客户机请求提供服务的业务逻辑任务。有状态会话 bean 维护客户机的 “会话状态”,适合处理那些跨越多个客户机请求的任务。会话 bean 不能在客户机之间共享。会话 bean 通常会操作一个或多个实体 bean。
实体 bean 代表持久化数据,数据通常是从数据库中装载的。实体 bean 可以在客户机之间共享,而且 EJB 规范提供了事务安全的机制,确保实体 bean 可以可靠地为多个并发客户机请求提供服务,而不会被破坏。实体 bean 可以自己管理持久化,也可以让容器来管理它(容器管理的持久化(container-managed persistence,CMP) )。
消息驱动 bean(MDB) 用来处理那些不要求客户机等待响应的客户机请求。它们通常与一个 Java Message Service(JMS)队列 — Java EE 5 中的另一种企业应用程序技术 — 进行交互,但是也可以以其他方式为异步客户机提供服务,客户机甚至可以不是用 Java 编写的。
在过去,EJB 的开发很复杂很麻烦,开发人员常常不得不依靠工具来管理实现 EJB 所需的所有接口和部署描述符。规范为业务逻辑代码规定了许多限制,要求扩展特定的类或实现特定的接口。为了获得一个简单的 EJB 引用,就需要许多样板代码。这些问题使 EJB 在开发社区中名声很差;在许多情况中,EJB 确实很糟糕。
EJB 3.0 大大改进了 EJB 编程模型,这是提高 Java EE 5 开发人员生产率的主要因素之一。EJB 现在可以是一个加了注解的 “普通 Java 对象(plain old Java object,POJO)”,它不需要扩展特定的类。它只需要实现一个远程接口,您可以自己定义这个接口,也可以让 IDE 自动生成它。不再需要部署描述符了,因为 EJB 容器可以从 EJB 上的注解提取出所需的所有信息。
Java Persistence API(JPA 1.0)
JPA 引入了一个用于 Java 对象持久化的对象-关系映射(object-relational mapping,ORM)框架。在开发它时主要考虑 EJB 的需要,但是它可以用于任何 Java 对象。可以使用注解指定哪些对象和字段应该持久化,以及它们应该映射到哪些数据库表和字段。JPA 支持一种与 SQL 相似的查询语言。这种查询语言可以:
定义参数化的查询,这种查询可以以有序列表形式接收参数(按索引号引用参数),也可以采用按名称引用的命名参数。
按照持久化实体之间的关系执行查询,而不需要 JOIN 语句(但是,如果您愿意,也可以使用 JOIN 语句)。
按照与 SQL 相似的方式指定搜索条件(比较操作符、LIKE 语句、BETWEEN 语句等等),定义如何对待结果集(使用 DISTINCT、ORDER BY、GROUP BY 等操作符)。
JPA 给 Java EE 平台提供了新功能,解决了与手工持久化和容器持久化相关的许多麻烦。
管理和安全性
Java EE 5 需要三个与以前版本相同的管理和安全性规范:
Application Deployment 提供一个用于将组件和应用程序部署到 Java EE 容器的 API。工具可以通过这个 API 将代码部署到 Java EE 5 容器中,而不需要重新启动容器。在开发期间,IDE 常常使用这个 API 支持快速的编写/测试/纠正循环。
Application Management 为容器管理的对象指定必需的属性和操作。它与多种行业标准管理协议兼容。
Authorization Contract for Containers(Java ACC)定义安全策略提供者的语义,以及如何授予对这个合约中的操作的访问权。它要求容器实现一些接口,使部署工具能够管理授权角色。
JAX-WS 2.0
Java EE 5 中 Web 服务支持的基础是 JAX-WS 2.0,它是一种替代 JAX-RPC 1.1 的技术。这两种技术都支持创建 REST 风格和基于 SOAP 的 Web 服务,而不必直接处理 Web 服务固有的 XML 处理和数据绑定细节。开发人员可以继续使用 JAX-RPC(这仍然需要 Java EE 5 容器),但是强烈建议迁移到 JAX-WS。刚开始学习 Java Web 服务的开发人员可以跳过 JAX-RPC,直接使用 JAX-WS。它们都支持 SOAP 1.1 over HTTP 1.1,所以完全兼容:JAX-WS Web 服务客户机可以访问 JAX-RPC Web 服务端点,反之亦然。
与 JAX-RPC 相比,JAX-WS 有许多优点。JAX-WS:支持 SOAP 1.2 标准(以及 SOAP 1.1)。支持 XML over HTTP。如果愿意,可以不使用 SOAP。(更多信息参见文章 “Use XML directly over HTTP for Web services (where appropriate)”。)使用 Java Architecture for XML Binding(JAXB)作为数据映射模型。JAXB 完全支持 XML 模式,而且性能更好(更多信息见下文)。为客户机和服务器引入了一个动态编程模型。客户机模型支持面向消息方式和异步方式。支持 Message Transmission Optimization Mechanism(MTOM),这是一个用于优化 SOAP 消息传输和格式的 W3C 建议规范。升级了 Web services interoperability(WS-I)支持。(它支持 Basic Profile 1.1;JAX-WS 只支持 Basic Profile 1.0。)升级了 SOAP 附件支持。(它支持 Attachments API for Java [SAAJ] 1.3:JAX-WS 只支持 SAAJ 1.2。)JAX-WS 中的 wsimport 工具自动地处理 Web 服务开发的许多细节,并以跨平台方式集成到构建过程中,这让开发人员可以将注意力集中于实现或使用服务的应用程序逻辑。它生成各种工件,包括服务、服务端点接口(SEI)、异步响应代码、基于 WSDL 错误的异常以及通过 JAXB 绑定到模式类型的 Java 类。JAX-WS 还能够提高 Web 服务的性能。在文章 “Implementing High Performance Web Services Using JAX-WS 2.0”(参见 参考资料 中的链接)中,对基于 JAX-WS 的 Web 服务实现(使用了 Java EE 5 中的另外两个 Web 服务特性 — JAXB 和 StAX)和基于 J2EE 1.4 中的 JAX-RPC 的服务实现做了性能对比。这项研究发现在不同负载下 JAX-WS 在各个功能领域产生了 40% 到 1000% 的性能改进。
JAVAEE6包含技术:
JSF2.0
JSP2.1
JSTL1.2
Java Servlet3.0
EJB 3.1
JPA2.0
JAX-RS 1.1
由于版面有限JAVAEE6的新特性给几个链接
JAVAEE6新特性:
可扩展性:Web分片和可插 http://url.cn/0t9klO
Servlet 3.0的异步处理 http://url.cn/4FEkxu
JSF 2.0简化页面制作 http://url.cn/44MGSK EJB
3.1五大模式改进 http://url.cn/4Z8NyF 引入的
JPA 2.0四大新特性详解 http://url.cn/25fnLb
Java EE 6引入的三大新技术之JAX-RS http://developer.51cto.com/art/200912/171668.htm
分享到:
相关推荐
9. **CDI(Contexts and Dependency Injection)**:虽然CDI是JavaEE 6引入的,但其前身JSR 299在JavaEE 5中已经开始出现,为组件管理和依赖注入提供了基础。 10. **JTA(Java Transaction API)**:JavaEE 5中的...
JavaEE5是Java企业版的一个重要版本,发布于2006年,它标志着Java在企业级开发领域的一次重大革新。...同时,也可以了解到JavaEE5是如何为后来的JavaEE6、7、8奠定基础的,进一步理解Java企业版的发展历程。
JavaEE5 API是Java企业版(Java Enterprise Edition)的一个重要组成部分,它定义了开发企业级应用程序所需的接口和类库。这个API包含了多个模块,旨在帮助开发者构建可扩展、分布式、多层的服务器端应用程序。在...
6. **Java Message Service (JMS)**:JavaEE5强化了消息传递能力,提供了异步通信的API,对于构建分布式系统和解耦应用组件非常有用。 在这个"JavaEE5的资源包"中,你可能会找到以上提到的各个组件的源代码。通过...
JavaEE 5 API 是一套用于开发企业级应用的框架,其全称为Java Platform, Enterprise Edition 5。这个API集合了多种技术规范,旨在简化企业级软件的开发、部署和管理,提供了一整套服务和组件模型,使得开发者可以...
JavaEE 5是Java平台企业版的一个版本,它为开发分布式、基于Web的企业应用程序提供了全面的框架。这个压缩包包含了四个关键的jar包,它们在JavaEE 5的环境中起着至关重要的作用。 1. **javaee.jar**:这是JavaEE 5...
JavaEE5是Java企业版的一个重要版本,它在JavaWeb开发领域中扮演着核心角色。这个压缩包包含了一系列关于JavaEE5 Web开发的教学PPT,旨在帮助开发者掌握该平台的关键技术和概念。 首先,"第1章 概述.ppt"会讲解...
JavaEE5_API是Java企业版5的API规格说明书,它为开发者提供了在Java平台上构建分布式、企业级应用程序的规范和接口。JavaEE5是Java平台的重要版本,它旨在简化开发,提高生产力,并促进Web服务的集成。这个压缩包中...
JavaEE5-API非常全 欢迎下载 绝对给力
6. **JMS (Java Message Service)**: JMS是JAVAEE5中的消息传递标准,它定义了如何在分布式环境中发送和接收消息。消息队列和发布/订阅模型是JMS的核心概念,有助于实现异步通信和解耦系统组件。 7. **JTA (Java ...
JAVAEE5API.chm
6. **Java Transaction API (JTA)**:JavaEE5支持JTA,允许在分布式环境中进行事务管理,确保了跨多个资源的事务一致性。 7. **Java Message Service (JMS)**:JMS允许应用程序之间通过消息传递进行异步通信,提高...
JavaEE5_API.chm是一个关于Java企业版5(Java Enterprise Edition 5)的离线帮助文档,它包含了JavaEE5的API详细说明和技术规范。这个压缩包文件是为那些正在学习或开发JavaEE5应用程序的人准备的宝贵资源,旨在提供...
JAVAEE 5中文文档内部版提供了全面的Java企业级应用开发知识,涵盖了J2EE(Java 2 Platform, Enterprise Edition)向JAVAEE(Java Platform, Enterprise Edition)过渡时期的重要技术。此文档对于开发者来说是一份...
### JavaEE 6 规范知识点详解 #### 一、JavaEE 6 概述 - **背景**:随着企业需求的变化,为了更好地服务于客户、员工及供应商,现代企业需要扩展自身影响力的同时降低成本并提高沟通效率。这要求企业级应用不仅...
5. **JPA(Java Persistence API)**:JavaEE 6中的JPA 2.0允许开发者在Java应用程序中轻松管理关系数据库的数据。`javax.persistence`包中的`EntityManager`, `Entity`, `@Entity`, `@Table`, `@Column`等是数据...
java程序开发文档——javaEE5-SDK开发帮助文档
JavaEE5 CHM JavaEE5 CHM JavaEE5 CHM JavaEE5 CHM
JavaEE6是Java企业版的一个重要版本,它提供了一套标准的API和框架,用于开发分布式、企业级的Web应用程序。这个压缩包“javaee6 jar”包含了开发JavaEE6项目所需的一些核心库,适用于在MyEclipse10及其以下版本的...