首页 / 网页编程 / JSP / 使用 JSP 集成 Amazon Web Service
使用 JSP 集成 Amazon Web Service2013-12-16 ibm Ken Yee在本系列文章的 第 1 部分 中,我们介绍了如何使用 Notes/Domino 6 来集成 Amazon Web Service。我 们确信很多读者很想了解如何使用 J2EE 来创建类似的应用程序,因为 IBM 已经从技术方面做出了很多努力 。因此,在本文中,我们将介绍如何使用 J2EE 来重新创建在第一篇文章中构建的 Notes 应用程序,同时还 将介绍这种技术与 Domino 的不同。本文的目的是为 Domino 开发人员简要介绍如何可以使用 J2EE 采用一种 不同的方法来开发一个类似的 Amazon Web Service 应用程序。本文假设您是一名非常有经验的 Java 开发人 员。首先,我们先来了解一下如何使用 Dreamweaver 和 JSP(JavaServer Page)来创建应用程序;这种技术 被用于最简单的 Web 应用程序,至于原因,我们会慢慢介绍。然后,我们将介绍如何使用 EJB(Entity JavaBeans)、JavaBeans 和 Struts 来创建应用程序,这种技术通常用于更加健壮、更复杂的 Web 应用程序 。J2EE 技术和框架在 J2EE 世界中有很多不同的技术和框架,例如 Cocoon(XML/XSLT)、Structs、ColdFusion MX、Java Server Faces,等等,它们都是在 J2EE 平台上运行的。当然,J2EE 平台允许您在运行 J2EE 的平台上使用 任何一种框架,这就为您提供了一个可以使用多种平台环境的承诺。Domino 服务器也可以采用混合型的 J2EE/Domino 设计,使用 Domino 表单来显示用户界面,使用 Java servlet 来实现对表单的处理。这为表单处理提供了更多的灵活性,并且比纯粹的 Domino 应用程序具有更好 的性能,但是很多纯粹的 J2EE 开发人员可能会认为这种方式非常奇怪。另外一种可以选择的 Domino/J2EE 混合架构将使用一台 J2EE 服务器(通常是 JSP,例如 Tomcat)来显 示用户界面,但使用 Domino 数据库来存储数据。这可以使用 Domino JSP 定制标签实现,在 LDD Today 概 述“Jeff Calow on new Web technologies in Domino 6” 中对此进行了讨论。另外,这种架构提供了比纯 粹的 Domino 应用程序更好的性能,但是大部分开发人员使用它是为了改善控制 Web 站点的图形化层次结构 的能力,因为 Domino 在自己的 Web 视图中并没有提供每个元素的位置。与使用 Domino 创建的站点相比,这两种混合技术在性能方面的改善都不是很明显,但是它们都提供了一 种替代品,替代品需要的工作量比纯 J2EE 应用程序更少;而且对于 Domino 开发人员来说,通过这种可选技 术来体验 J2EE 技术也非常有帮助。我们将在本系列的第三篇文章中介绍使用 Lotus Domino Toolkit for WebSphere Studio 来组合使用 Domino/J2EE 技术的方法,以及如何使用此工具为 Notes 数据库中保存的 Amazon 书籍数据开发一个 Web UI。什么是 J2EE?J2EE 是一组标准的技术和 API 集,Sun Microsystems 将其定义为一台 J2EE 服务器成为兼容服务器之前 必须具备的一些需求。与 Web 开发前景有关的一些技术是 servlet、JSP、JavaBeans 和 EJB。对于简单的 Web 应用程序来说,您可以使用 servlet 和 JSP。servlet 和 JSP 都受到 Apache Jakarta 项目的 Tomcat 引擎的支持。servlet 和 JSP 的效率比 Notes/Domino 代理高,因为它们只有在首次使用时 才需要加载;相比较而言,Java 代理在每次调用时都会重新进行加载,因此它们占用的 CPU 处理时间更多。 从 JSP 版本 1.1 开始,增加了 JSP 定制标签,您并不需要在其中编写 JSP 中的代码逻辑,因此您可以纯粹 将 JSP 作为一个表示层。EJB 通常都是与 J2EE 应用程序相关的。它们提供了一种封装数据库访问和业务逻辑的方法,这样就可以 在多台服务器上实现分发了。在正确完成处理之后,数据库访问被隐藏到了业务逻辑对象之后,因此,那些使 用 JSP 的 Web 站点的开发人员并不知道如何组织数据库。J2EE 强大功能的来源之一是它可以将一个层次划分为多个单独的服务器。虽然 Domino 可以运行数据库、 业务和 Web 服务器上的所有表示/UI 层,但 J2EE 可以将这三部分划分到不同的服务器上。另外,每个部分 都可以使用集群,这样就可以在层次级别上具有一些冗余。虽然您可以对 Domino 服务器采用集群,但是您并 不能非常精准或深入地进行这种聚集,因此一个精确定义的 J2EE 应用程序天生就比一个类似的 Domino 应用 程序范围更加广泛,因为您可以将其扩充到多台机器上。缺点是这种技术的开发成本更高并且更复杂。使用 RDBMS 数据库正如大部分 Domino 开发人员所知道的那样,将很多个字段放到一个表单中可以定义一个 Domino 数据库 。这种设计非常简单(也就是说,表单和视图的设计并不需要一个正式的设计过程),也可以使用一个正式的 过程进行设计;您可以任意添加字段,尤其是将某些字段从单值更改为多值。字段的大小并不需要提前指定, 不过您必须要知道字段大小的限定值。在创建表单之后,就可以用视图来简单地显示这些字段,其中包括那些 多值字段。在 RDBMS(关系数据库管理系统)中,在最初的数据库设计上您需要更多的努力,因为修改表的结构是非 常痛苦的一件事情,主要是因为所有的外键链接和字段大小都必须提前声明。在某些情况中,您还需要删除表 以及表中的所有数据,修改数据库的设计,然后重新加载数据。需要对多值字段进行更深入的讨论。您通常会将一个 Domino 文档映射为 RDBMS 表中的一行数据。Domino 文档中的每个字段可以映射成为该表中的一列。然而,一个表中的每一列(也就是每个字段)都只能存储一个 值。在一个 RDBMS 中,您需要单独创建一个具有两列的表。一列使用一个外键链接到表单上(表中的一行) 。另外一列链接到另外一个表上,其中列出了这个多值字段所有可能的值。