面向Java开发人员的Ajax:结合Direct Web Remoting使用Ajax

理解 Ajax 编程的基本知识 是重要的,但是如果正在构建复杂的用户界面,那么能够在更高层次的抽象上工作也很重要。在面向 Java 开发人员的 Ajax 系列的第 3 篇文章中,我在上个月的 Ajax 的数据序列化技术 基础之上,介绍一种可以避免繁琐的 Java 对象序列化细节的技术。

在 上一篇文章 中,我介绍了如何用 JavaScript 对象标注(JSON)以一种在客户机上容易转化成 JavaScript 对象的格式对数据进行序列化。有了这个设置,就可以用 JavaScript 代码调用远程服务,并在响应中接收 JavaScript 对象图,但是又不像远程过程调用。这一次,将学习如何更进一步,使用一个框架,把从 JavaScript 客户代码对服务器端 Java 对象进行远程调用的能力正式化。

DWR 是一个开放源码的使用 Apache 许可协议的解决方案,它包含服务器端 Java 库、一个 DWR servlet 以及 JavaScript 库。虽然 DWR 不是 Java 平台上唯一可用的 Ajax-RPC 工具包,但是它是最成熟的,而且提供了许多有用的功能。请参阅 参考资料,在继续学习之前下载 DWR。

DWR 是什么?

从最简单的角度来说,DWR 是一个引擎,可以把服务器端 Java 对象的方法公开给 JavaScript 代码。使用 DWR 可以有效地从应用程序代码中把 Ajax 的全部请求-响应循环消除掉。这意味着客户端代码再也不需要直接处理 XMLHttpRequest 对象或者服务器的响应。不再需要编写对象的序列化代码或者使用第三方工具才能把对象变成 XML。甚至不再需要编写 servlet 代码把 Ajax 请求调整成对 Java 域对象的调用。

DWR 是作为 Web 应用程序中的 servlet 部署的。把它看作一个黑盒子,这个 servlet 有两个主要作用:首先,对于公开的每个类,DWR 动态地生成包含在 Web 页面中的 JavaScript。生成的 JavaScript 包含存根函数,代表 Java 类上的对应方法并在幕后执行 XMLHttpRequest。这些请求被发送给 DWR,这时它的第二个作用就是把请求翻译成服务器端 Java 对象上的方法调用并把方法的返回值放在 servlet 响应中发送回客户端,编码成 JavaScript。DWR 还提供了帮助执行常见的用户界面任务的 JavaScript 工具函数。

关于示例

在更详细地解释 DWR 之前,我要介绍一个简单的示例场景。像在前一篇文章中一样,我将采用一个基于在线商店的最小模型,这次包含一个基本的产品表示、一个可以包含产品商品的用户购物车以及一个从数据存储查询产品的数据访问对象(DAO)。Item 类与前一篇文章中使用的一样,但是不再实现任何手工序列化方法。图 1 说明了这个简单的设置:

图 1. 说明 Cart、CatalogDAO 和 Item 类的类图

在这个场景中,我将演示两个非常简单的用例。第一,用户可以在目录中执行文本搜索并查看匹配的商品。第二,用户可以添加商品到购物车中并查看购物车中商品的总价。

时间: 2024-10-28 14:01:09

面向Java开发人员的Ajax:结合Direct Web Remoting使用Ajax的相关文章

面向Java开发人员的Ajax:探索 Google Web Toolkit

最近发布的 Google Web Toolkit (GWT) 是一组全面的 API 和工具,它支持用户几乎完全使用 Java 代码来创建动态 Web 应用程序.Philip McCarthy 回到了他广受欢迎的面向 Java 开发人员的 Ajax 系列,向您展示 GWT 能做什么,并帮助您确定它是否适合您. GWT(请参阅 参考资料)采用了一种不寻常的方式进行 Web 应用程序开发.它没有采用客户端和服务器端代码库的普通隔离,而是提供了一个 Java API,该 API 允许创建基于组件的 GU

结合Direct Web Remoting使用AJAX

ajax|web [导读]本文介绍通过结合Direct Web Remoting使用AJAX,把从 JavaScript 客户代码对服务器端 Java 对象进行远程调用的能力正式化. DWR 简介 从最简单的角度来说,DWR 是一个引擎,可以把服务器端 Java 对象的方法公开给 JavaScript 代码.使用 DWR 可以有效地从应用程序代码中把 Ajax 的全部请求-响应循环消除掉.这意味着客户端代码再也不需要直接处理 XMLHttpRequest 对象或者服务器的响应.不再需要编写对象的

面向 Java 开发人员的 Ajax: 探索 Google Web Toolkit

ajax|google|web GWT(请参阅 参考资料)采用了一种不寻常的方式进行 Web 应用程序开发.它没有采用客户端和服务器端代码库的普通隔离,而是提供了一个 Java API,该 API 允许创建基于组件的 GUI,然后编译它们,从而在用户的 Web 浏览器上显示它们. 与一般的 Web 应用程序开发体验相比,使用 GWT 更接近于使用 Swing 或 SWT 进行开发,它还试图将 HTTP 协议和 HTML DOM 模型抽象出去.实际上,应用程序最终几乎总是会呈现在 Web 浏览器中

面向Java开发人员的Ajax:Java对象序列化(1)

ajax|java对象 本文我们讨论 Ajax 开发的基础知识,但是将侧重于许多 Java Web 开发人员最关心的问题:为客户机生成数据. 多数 Java 开发人员已经把模型-视图-控制器(MVC)模式应用在他们的 Web 应用程序上.在传统的 Web 应用程序中,视图组件由 JSP 或者其他表示技术(例如 Velocity 模板)构成. 这些表示组件动态地生成全新的 HTML 页面,替代用户以前正在查看的页面,从而更新用户界面.但是,在 Java Web 应用程序使用 Ajax UI 的情况

面向Java开发人员的Ajax: Ajax的Java对象序列化

在这个系列的 第一篇文章 中,我介绍了 Ajax 的构造块: 如何用 JavaScript XMLHttpRequest 对象从 Web 页面向服务器发送异步请求. 如何用 Java servlet 处理和响应请求(向客户机返回 XML 文档). 如何在客户端用响应文档更新页面视图. 这一次,我将继续讨论 Ajax 开发的基础知识,但是将侧重于许多 Java Web 开发人员最关心的问题:为客户机生成数据. 多数 Java 开发人员已经把模型-视图-控制器(MVC)模式应用在他们的 Web 应用

面向Java开发人员的Ajax:构建动态的Java应用程序

在 Web 应用程序开发中,页面重载循环是最大的一个使用障碍,对于 Java 开发人员来说也是一个严峻的挑战.在这个系列中,作者 Philip McCarthy 介绍了一种创建动态应用程序体验的开创性方式.Ajax(异步 JavaScript 和 XML)是一种编程技术,它允许为基于 Java 的 Web 应用程序把 Java 技术.XML 和 JavaScript 组合起来,从而打破页面重载的范式. Ajax(即异步 JavaScript 和 XML)是一种 Web 应用程序开发的手段,它采用

面向 Java 开发人员的 Ajax: Google Web Toolkit 入门

简介: Ajax 被用于创建更加动态和交互性更好的 Web 应用程序.Google Web Toolkit (简称GWT) 是 Google 推出的 Ajax 应用开发包,GWT 支持开发者使用Java 语言开发 Ajax 应用.本文中作者将介绍如何使用 GWT 开发 Ajax 应用的基本方法和步骤. ## Ajax简介 ## Ajax是 Asynchronous JavaScript and XML(以及 DHTML 等)的缩写,由XHTML.CSS.JavaScript.XMLHttpReq

面向Java开发人员的Ajax: 使用Jetty和DWR实现Comet Web应用程序

作为一种广泛使用的 Web 应用程序开发技术,Ajax 牢固确立了自己的地位,随之而来的是一些通用 Ajax 使用模式.例如,Ajax 经常用于对用户输入作出响应,然后使用从服务器获得的新数据修改页面的部分内容.但是,有时 Web 应用程序的用户界面需要进行更新以响应服务器端发生的异步事件,而不需要用户操作 -- 例如,显示到达 Ajax 聊天应用程序的新消息,或者在文本编辑器中显示来自另一个用户的改变.由于只能由浏览器建立 Web 浏览器和服务器之间的 HTTP 连接,服务器无法在改动发生时将

面向Java开发人员的Ajax:Google Web Toolkit入门

Ajax简介 Ajax是 Asynchronous JavaScript and XML(以及 DHTML 等)的缩写,由XHTML.CSS.JavaScript.XMLHttpRequest.XML等技术组合而成,是当前Web应用开发领域的热门技术,用于创建更加动态和交互性更好的Web应用程序,提升用户的浏览体验. Ajax的核心是JavaScript对象XmlHttpRequest.XmlHttpRequest处理所有服务器通信的对象,是一种支持异步请求的技术.简而言之,XmlHttpReq