在很长的一段时间中,J2EE 看起来是一项强大且复杂的技术。但是,如果花时间对其进行充分了解后,您会发现这是一个用于构建基于组件的可伸缩多层企业应用程序的绝妙解决方案。
Java EE 5 保留了老版 J2EE 的功能,但新版本更为简单且易于使用。本文探讨 Java EE 5 的一些新特性,并指导您使用 Oracle Workshop(以前称为 BEA Workshop)构建一个简单的 Web 应用程序。您将从中学习如何设置 Web 项目、构建基于 JavaServer Faces (JSF) 的表单、定义页面导航规则、创建带批注的会话 EJB、在 JSF 管理的 bean 中使用相关性注入、将应用程序打包到 EAR 文件中以及将其部署到本地或远程 Oracle WebLogic 服务器。
在 Java EE 5 中,JSP 和 JSF 标准通过统一表达式语言进行了更好的集成,这意味着任何自定义 JSP 标记(包括标记文件)现在可在其属性中使用延迟值和方法。几个 JSTL 标记(如 <c:forEach>)支持延迟表达式,且可结合 JSF 组件使用。些外,您可安全地将 JSF 标记和 HTML 内容混合,无需显式地在 Web 页面中使用 <f:verbatim>,因为 JSF 呈现已得到改进,可以为您自动生成那些 <f:verbatim> 组件。
Java EE 的批注可以很好地替代基于 XML 的 EJB 部署描述符,因为在进行更改时您要编辑的文件会更少。此外,EJB 的持久性现在基于普通传统 Java 对象 (POJO) 模型。批注可用于任何基于 Java 的组件中,包括 EJB、Servlet 和 JSF 管理的 bean。
好处是巨大的。例如,如果您需要一个会话 bean,您只需对接口及其实施进行批注。然后,如果您想从 Web 层调用它,可以通过 @EJB 批注将对 EJB 组件的引用注入到 JSF 管理的 bean,并由应用服务器处理衔接。本文的示例应用程序将向您介绍如何实施 JSF 表单,该表单使用辅助 bean 与模拟语言转换服务的 EJB 组件进行交互。
尽管有这些改进,使用文本编辑器编写 Java EE 应用程序代码仍然不是一个明智的选择。幸运的是,现代 Java IDE 可以显著提升开发人员的生产率。Oracle Workshop 是一个优秀的开发工具,它利用许多向导和编辑器对 Eclipse 进行了扩展。它支持最重要的 Java EE 标准,包括 Servlets 2.5、JSP 2.1、JSF 1.2、JSTL 1.2、EJB 3、JAX-WS 和 JAXB 2.0。
Workshop 的一个独特的特性是 AppXRay 技术,它可用于分析众多类型的源文件,包括 Java 类、Web 页面和配置文件。本文将对代码自动完成和验证功能,以及文件浏览和相关性可视化功能( AppXplorer 和 AppXaminer 提供)进行介绍,这些功能所收集的信息可用于改善开发体验。
本节将向您介绍如何创建和配置 Web 项目。您将使用 Workshop 的 Dynamic Web Project 向导和 JSF 框架的 Faces Configuration 编辑器。
单击 File > New > Project...在 New Project 窗口中,展开 Web 节点,选择 Dynamic Web Project。然后单击 Next。
输入 WebPrj 作为名称,保持 Oracle WebLogic Server v10.3 目标运行时不变,使用 Default Configuration for Oracle WebLogic Server v10.3,如要使用 EJB,请选择 Add project to an EAR 复选框,在 EAR Project Name 文本域中输入 EarPrj,然后单击 Next。
在以下页面中,保持默认选项不变,然后单击 Finish。
Workshop 将创建 Web 项目,其中包含一个 WebContent 文件夹,在其中您会发现一个 index.jsp 页面,该页面将请求从 pages 子文件夹转发到 welcome.jsp。您可能希望用 index.jsp 中的 <c:redirect> 替换 <jsp:forward>,以避免 Web 浏览器中的相对 URL 出现问题。
<%@ page language="java" contentType="text/html;charset=UTF-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <c:redirect url="/pages/welcome.jsf"/>
WEB-INF 文件夹包含配置文件(weblogic.xml、web.xml 和 faces-config.xml),可使用 Workshop 进行编辑。