(原版英文章节可以点击上述链接来查看)
1.9 JAVA EE 6的API
下图显示了Java EE容器间的关系
下图显示了在web容器中可用的Java EE 6 API
下图显示了在EJB容器中Java EE 6可用的API
下图显示了在客户端应用容器中Java EE 6可用的API
以下几节给出了对Java EE平台中技术和API的大略总结。
1.9.1 企业Java Bean技术
企业Java Bean(EJB)组件或者企业bean,是实现了业务逻辑模块的代码。你可认为企业bean是在Java EE服务器上一个独立运行或与其它企业bean一起执行的业务逻辑。
企业bean可以是会话bean或者是消息驱动bean:
- 会话bean呈现着与客户端的一个短暂的会话。当客户端执行完毕,会话bean和它的数据也会消失。
- 消息驱动bean是会话bean的特性和消息侦听接口的组合,允许业务逻辑组件一步的接受消息。通常,这些消息是Java 驱动bean(JMS)的消息。
在 Java EE 6平台中,新的企业bean特性包含以下几点:
- 在WAR文件中打包本地企业bean的能力
- 提供了能更容易共享状态的单例会话bean
- 提供了Java EE配置化,比如Java EE web profile,这种轻量级的企业bean功能子集
Java EE 6平台要求企业Bean 3.1和拦截器 1.1. 拦截器标准是EJB3.1规范中的一部分,使得在EJB3.0中定义的拦截器更通用。
1.9.2 Java Servlet 技术
Java Servlet技术可以使你定义针对HTTP规范的servlet类。一个servlet类通过请求-响应编程模型扩展了应用服务器的能力。尽管servlet可以响应任何类型的请求,不过通常会对web 服务器扩展。
在Java EE 6平台中,新的Java Servlet 技术特性包含以下几点:
- 支持注解
- 支持异步
- 易于配置
- 改进了现有的API
- 可插性
Java EE 6平台要求使用Servlet 3.0.
1.9.3 JavaServer Faces 技术
JavaServer Faces技术是一个用来构建web应用的用户接口框架。JavaServer Faces中主要的组件如下:
- 一个GUI组件框架
- 用来灵活的渲染HTML或标记语言中组件的模型和技术。一个渲染对象会生成相应的标记来对组件渲染,同时会将模型中保存的数据转换成响应的类型在视图中显示
- 标准的RenderKit,可以生成HTML/4.01的标记
以下是GUI组件支持的特性:
- 输入验证
- 事件处理
- 模型和组件之间的数据转换
- 可管理的模型对象创建
- 可配置的页面导航
- 表达式语言(EL)
所有这些功能都可以从标准的Java API 和 基于XML配置文件中获得。
在Java EE 6平台中,JavaServer Faces的一些新特性如下:
- 使用注解来代替配置文件对可管理的bean和其它组件进行配置
- Facelets,一个使用XHTML文件来代替JSP技术的显示技术
- Ajax的支持
- 复合组件的支持
- 隐式导航的支持
Java EE 6平台要求使用 JavaServer Faces 2.0 和 Expression Language 2.2.
1.9.4 JavaServer Pages技术(JSP)
JSP技术可以使你将servlet代码片段直接插入到文本文档中去。一个JSP页面是基于文本的文档,它包含以下两种类型的文本:
- 静态数据,比如HTML或者XML这样可以被直接表现出来的哦任何文本格式
- JSP元素,决定着该页面如何构建动态的内容
对于JSP技术更多的信息,请查看 Java EE 5教程:http://docs.oracle.com/javaee/5/tutorial/doc/
Java EE 6平台要求使用JSP 2.2以兼容以前的版本,但是建议使用Facelets作为新应用的首选显示技术。
1.9.5 JavaServer Pages 标准标签库(JSP STL)
JSP标准标签库(JSTL)封装了JSP应用中通用的核心功能。在你的JSP应用中,你应该采用单一的、标准的一系列标签,而不是大量的由其它不同开发人员提供的混杂的标签。这种标准化可以是你将你的应用部署到任何支持JSTL的JSP容器中去,同时这些标签的实现很有可能是经过优化了的。
JSTL有迭代器和条件判断标签可以处理数据流控制、有处理XML的标签、有处理国际化的标签、有使用SQL访问数据库的标签、和一些通用的功能。
Java EE 6 平台要求使用 JSTL 1.2.
1.9.6 Java持久化API
Java持久化API是Java针对持久化的标准解决方案。持久化使用了对象/关系映射作为面向对象的模型和关系型数据库的桥梁。Java持久化API能在Java SE应用中使用,完全脱离Java EE环境。Java持久化有以下几个方面组成:
- Java持久化API
- 查询语言
- 对象/关系映射元数据
Java EE 6平台要求使用 JPA 2.0.