使用 DWR、Java 和 Dojo 工具箱集成 Java 和 JavaScript

来源:互联网 发布:linux 怎么装anaconda 编辑:程序博客网 时间:2024/05/01 11:26
您能很快地说出多少 Java™ Web开发框架、库和工具箱?没错,数量太多,以至于很难弄清楚它们各自的功能以及哪个功能可以真正帮助您解决问题。但是,如果您从事的是 Ajax开发,那么您必须要知道这个库:Direct Web Remoting (DWR)。它利用 Java 语言和 Java Web 技术大大地简化了Ajax 开发,并为如何无缝地将 Ajax 集成到 Java Web 应用程序设立了标准。实际上,DWR 加入了 DojoFoundation,后者集合了许多流行的开源 Ajax 技术。在本文中,了解使用 DWR 轻松开发 Ajax。

本文是包含 3 个部分的系列文章的第 3 部分,也是最后一个部分,这个系列文章介绍了创建 Ajax 支持的应用程序所需的流行 JavaScript 库。在 第 1 部分,您了解了如何使用 Prototype 库构建一个用来管理歌曲的 Web 应用程序。第 2 部分 讨论了如何使用 Scriptaculous 库构建一个用来管理照片的 Web 应用程序。本文侧重于向您展示如何利用 DWR 简化 Ajax 开发。

Ajax 资源中心

请访问 Ajax 资源中心,这是有关 Ajax 编程模型信息的一站式中心,包括很多文档、教程、论坛、blog、wiki 和新闻。任何 Ajax 的新信息都能在这里找到。

本文使用 DWR 2.0 版本。由于使用了泛型和注释,所以示例代码要求 Java 5+。示例应用程序结合使用了 MySQL 5.12 和Tomcat 6.0.14。当然,您应该能够轻松切换到其他实现。应用程序还使用了 Java Persistence API (JPA) 和OpenJPA 1.0,分别用于数据访问和应用程序的 JPA 实现。同样,您也应该能够切换到其他 JPA 实现(比如Hibernate、Kodo 等)。本文使用了 Firefox 的 Firebug 插件,因为该插件是一个很棒的 Ajax 调试工具。在 参考资料 部分可以获得这些工具的相关链接。

Direct Web Remoting (DWR) 简介

Ajax应用程序看上去有些神秘,幸好开发应用程序的过程还比较直观。对于每个 Ajax 交互,必须在服务器上创建一个端点(从从事 Web服务的朋友那里借用的术语),并且还要创建客户端代码来调用该端点。此外,还必须创建用于序列化客户机和服务器之间的数据流的所有代码。这些服务器端点可以是泛型服务,甚至可以是 REST式的端点。但是,它们的创建通常特定于客户机的需要。有时应该避免紧密耦合,但有时又应该采用。对于后一种情况,DWR是一种一揽子的解决方案。它允许您将服务器端代码作为 Ajax 端点公开,而所有模板都是自动生成的。现在,让我们通过一个特定的示例来看看 DWR是如何工作的。





回页首

示例应用程序:Ajax 留言板

这里使用的示例应用程序是一个简单的留言板。数据模型已经大大简化,以便您能把精力放在借助 DWR 的 Ajax 交互。我们先来研究一下应用程序的后端,看看 DWR 如何能层叠于其上以启用应用程序的 Ajax 功能。





回页首

设置后端

先为留言板创建一个数据库表。清单 1 给出了创建此表所需的 SQL 脚本。


清单 1. 留言表的 SQL 脚本

CREATE TABLE 'messages' (
'id' int(11) NOT NULL auto_increment,
'title' varchar(40) NOT NULL,
'body' text,
'created_at' timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
'author' varchar(40) NOT NULL default 'anonymous',
PRIMARY KEY ('id')
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

这里需要特别注意的一点是:



本文转自IBM Developerworks中国

      请点击此处查看全文


原创粉丝点击