拍卖 Web 应用程序详细信息 |
拍卖 Web 应用程序样本是使用 Software Development Platform(SDP)V6.0 开发的。本文档描述了此拍卖 Web 应用程序的关键构建块,如下图所示: 在此拍卖 Web 应用程序中有许多组件。本文档不是有关如何构建整个应用程序的教程。实际上,本文档重点说明了利用随此工作台提供的不同工具的重要开发和设计点,以便您可将此知识应用到您自己的 Web 应用程序中。 如上图所示,Web 内容是与数据和业务逻辑并行开发的。在设计者开发 Web 页面的样式和布局时,Java 和 Web Service 开发者编码业务逻辑来驱动这些页面。以下章节描述这些关键组件是如何创建的,以及它们对拍卖 Web 应用程序所起的作用:
使用 EJB 映射编辑器将实体 bean 映射到数据库表Enterprise JavaBeans(EJB)为 Java 应用程序提供了一个方便的方法来访问存放在关系数据库中的数据。可使用 bean 管理的持久性(BMP)或容器管理的持久性(CMP)来开发实体 bean。因为 EJB 容器在 bean 的指导下进行所有特定于数据库的调用,所以 CMP 比使用 BMP 具有更多的灵活性。缺省情况下,Rational 工作台中的工具使用 CMP 生成实体 bean。CMP 实体 bean 不包含访问 SQL 代码。这样使得您可将此 bean 部署到其它使用不同数据库的 J2EE 服务器而不需要重写代码。 可以使用不同的方法将对象映射到关系数据库,例如:自顶向下方法、自底向上方法和中间会合方法。自顶向下方法从现有的对象开始,然后根据需要逐渐定义详细的层,并最后一步设计数据库。自底向上方法使用现有的数据库模式,然后设计相关层,这些层定义对象。中间会合方法使用现有数据库和现有对象,然后开发中间层将对象匹配到相应的数据库表。 此拍卖应用程序在开始实体 EJB 时使用了自底向上方法。Cloudscape 数据库最初就存在,并包含与所需的 EJB 几乎匹配的表。使用“数据库连接”向导与数据库创建了连接之后,使用了“EJB 到 RDB 映射”向导来创建从一个或多个表进行映射的 EJB,但有一些例外。下图显示了在此拍卖应用程序中使用的实体 EJB 以及连接它们的关系。 此拍卖应用程序中的实体 bean 不是由远程客户机直接访问的。所有请求和响应都由会话外观进行处理,bean 被用来访问后端数据。这样便允许与此持久数据存储的服务器端共享访问。下一节更深入地讨论会话外观。 有关映射实体 bean 的更多信息,请参阅生成自底向上映射帮助主题。 使用会话 bean 外观向导生成带有 SDO 数据对象的会话外观会话外观是客户机和后端之间的接口。后端提供了与服务数据对象(SDO)组件和数据库的通信。当客户机发送的请求要求多个对象来执行时,会话外观很有用。分别向这些对象发送请求会增加网络流量和等待时间。会话外观用作这两端之间的缓冲区,它从客户机接收总体请求,然后将特定请求发送到必需的对象。这减少了流量并简化了客户机开发。 一旦创建了外观,就可通过从工具的菜单中选择映射 EJB 来选择它管理的 EJB。外观从实体 bean 生成必需的 SDO 组件。根据以下两个功能组,此拍卖应用程序中有两个外观:
通过将 EJB 分组和使用两个不同的外观,可提高应用程序的性能,因为用户只访问他们需要的 EJB。控制 Web 站点本身的功能(例如类别)的实体 bean 由系统外观控制。 如下图所示,使用“创建会话 bean 外观”向导,一次选择一个由外观引用的 EJB。如果必要,一个 EJB 可在多个外观中引用。在此拍卖应用程序中没有这样做。可通过将方法添加到外观来添加其它的功能。例如,在用户外观中,有一个方法返回用户的列表,有另外一个方法返回活动用户的列表。使用这些方法作为示例,可将另外一个方法添加到此用户外观。该方法返回所有标记为非活动的用户的列表。 可在 java.sun.com 上的讨论文章“Design Patterns: Session Facade”中找到更多有关会话外观的信息。 使用 Web Site Designer 定义 Web 站点布局Web Site Designer 工具的“导航”视图提供了站点如何布局的可视表示。它显示了单个页面及其层次结构组织,并对维护站点内的页面的布局和组织很有用。当拖放页面到编辑器中时,页面模板中的导航控件会自动更新。例如,在拍卖导航结构如下图所示的情况下,可以通过将出售页面移动到“浏览”页面之前来更改导航选项卡的顺序。Web Site Designer 自动在所有页面上以正确的顺序生成选项卡。要使更改在运行的应用程序中可视,请重新保存每个使用导航模板的页面。除了上面刚讲到过的“导航”视图外,Web Site Designer 还提供了一个详细信息视图。该视图在一个方便的可编辑的表中组织其它的页面元素,如下图所示。该表使得更新页面属性(例如标题、作者和导航标签)变得很容易。 ![]() 有关使用 Web Site Designer 来管理 Web 站点布局的更多信息,请参阅联机帮助中的创建 Web 站点结构主题。 使用 Page Designer 创建 Web 页面模板工作台附带提供了一个可视设计器来开发页面模板以及 Web 页面本身。 页面模板是可重用的内容代码片断,这些代码片断为 Web 站点的某些部分提供了公共的外观或行为。要共享公共的外观,Web 页面只需引用这些模板。使用模板对用户和开发者都有好处。用户可简单地浏览 Web 站点,开发者只需编写特定于某个页面的代码。 页面模板也使得 Web 站点内容维护变得很简单。对模板文件的更改会自动反映在引用它的每个页面中。例如,在拍卖 Web 应用程序中,模板 maintemplate.jtpl 提供了拍卖页面的总体布局。Page Designer 中的选用板可以将元素拖放到 Web 页面,使用该选用板,可以将 Web 页面元素添加到模板。所需的 HTML 代码也将自动生成。使用这种方法可很容易地修改拍卖模板,例如,在页脚包含当前日期和时间。 拍卖模板中的关键元素是导航控件。拍卖 Web 应用程序导航栏使用两种形式的导航:
通过插入调用此模板的标记而不是对导航进行硬编码,可以在此站点的所有页面上包括相同的导航栏。模板映射编辑器将对模板的引用插入到 Web 页面。 动态模板使此技术更进一步,例如根据用户的角色或能力改变页面的内容,或是在 Web 页面中插入特定于用户的信息。拍卖样本使用动态模板来为作为管理员登录的用户在导航栏中提供管理链接,以及在用户成功登录后将“登录”按钮更改为显示“注销”。 有关创建 Web 页面模板的更多信息,请参阅有关创建页面模板的帮助主题。 使用 Page Designer 将 JavaServer Faces 组件添加到 JSP 文件JavaServer Faces(JSF)是一种技术。可使用此技术来辅助为在应用程序服务器上运行的动态 Web 应用程序构建用户界面。JSF 是一种开放标准语言并使用 JavaServer Faces 标准标记库。这些标记被插入到 HTML 代码来创建动态 Web 页面。 JSF 框架管理各服务器请求中的用户界面状态,并提供了一个简单开发模型来处理由客户机激活的服务器端事件。例如,JSF 针对不同的类似单击按钮这样的事件可具有指定的行为。Page Designer 有一些内置功能可视地显示在选用板上,可将它们拖放到 Web 页面。这些拖放功能使得很容易使用 JSF、HTML 和其它脚本元素。这不仅对于控制字段的基本功能(例如,文本字段的值类型:整数或字母数字)很有用,而且它使得设置验证规则成为可能。在 Page Designer 中,JSF 控件可被绑定到与每个页面关联的 SDO 数据。 可使用 Page Designer 选用板将其它的功能添加到 JSF 页面。例如,可将一个“立即购买”按钮添加到商品详细信息页面来允许用户以卖方为此商品设定的价格购买此商品。 下图显示了拍卖详细信息页面的 JSF 控件。通过选中仅整数复选框,可将 newbid inputText 字段限制为只接受整数,如图中右下角所示。inputText 字段具有有关验证、行为和辅助功能的其它设置,如在图中左下角 h:inputText 下面的选项卡中所定义。“验证”选项卡是使用 Java 定义特定的验证规则的地方。例如,newbid inputText 字段的有效输入是一个非空的整数,它要大于起始竞价,也要大于当前竞价加一。以下代码是为拍卖应用程序的商品详细信息页面上的 newbid inputText 字段生成的。 <h:inputText styleClass="inputText" id="newbid" required="true" size="14"> <f:convertNumber integerOnly="true" /> <f:validateLongRange minimum="#{pc_Itemdetail.userFacadeLocalGetFindHighestBidResultBean==null ? pc_Itemdetail.userFacadeLocalGetBidItemSDOByKeyResultBean.startingbid : pc_Itemdetail.userFacadeLocalGetFindHighestBidResultBean.currentbid+1}"> </f:validateLongRange> </h:inputText> 有关开发 Faces JSP 文件的更多信息,请参阅有关 JavaServer Faces 的帮助主题。 使用 Java 可视编辑器创建 Swing 用户界面除了 Web 页面外,拍卖应用程序还提供了一个 Java Swing 客户机来让管理员维护诸如名称和密码之类的用户信息。使用 Swing 客户机,可以在在客户机上进行处理,这会减少与 Web 应用程序关联的等待时间。用户管理客户机列示所有的应用程序用户。管理员可与用户数据交互并管理其特定属性,而不需要等待 Web 页面装入。Swing 客户机还提供了一个更加干净且更加面向应用程序的界面。 如下所示,Swing 客户机应用程序是使用 Java 可视编辑器开发的。使用可视编辑器可以可视地开发应用程序,而代码是自动生成的。这减少了手工编写复杂的 Swing 代码的需要。 ![]() 上图显示了 Java 可视编辑器内的用户管理应用程序。右边的块是会话外观,它使用 SDO 对象来访问业务逻辑。将这些块与界面设计连接起来的实线与用户界面中的特定事件关联。虚线显示哪些参数被传递到 SDO 对象以及它们返回的值。可视地开发此应用程序比编写复杂的 Java Swing 代码要快,并且简化了对用户界面进行更改。 用户管理界面是直接在 Java 可视编辑器中创建的。可从选用板选择新的 Swing 组件并将它们添加到应用程序。可通过使用提供的工具、向导、反馈和属性表中的属性来定制任何组件以满足预期的外观要求。并且,可显示诸如表和文本字段之类的内容的组件可被绑定为显示由数据源提供的数据。 在开发完用户管理应用程序后,需要将它部署到 Web 站点。完成的用户管理应用程序被放到一个 EAR 文件中,并被放置到此 Web 站点的目录结构中。如随 WebSphere Application Server 产品打包在一起的 WebSphere Application Client 软件的文档所述,创建了一些其它的脚本和 HTML 资源来通过 WebStart 正确部署应用程序。为了安全,使用证书签署客户机端运行的资源。一旦文档中所描述的所有必需设置步骤都执行完后,应用程序就已经准备好部署到仅具有浏览器和 WebStart 的客户机上。 在创建 Web 应用程序组件后,拍卖 Web 应用程序被部署到一个应用程序服务器并在此应用程序服务器上运行。“样本库”中的拍卖应用程序中有一些其它的组件。 有关更多信息,请参阅有关在可视编辑器中编辑 Java 的帮助主题。 创建 Web ServiceWeb Service 是与 Web 应用程序并行开发的,因为它并不依赖于此 Web 应用程序。而 Web Service 是另外一种访问业务逻辑的方法,并且它没有包括此 Web 应用程序的所有功能。请参阅 Web Service 一节以获取有关拍卖应用程序的此片断的更详细的描述。 |