[ 登录 ][ 注册 ] 天极传媒: 比特网 | 天极网 | IT专家网 | IT商网 | 52PK游戏网 | 手机天极 | IT分众 |
您现在的位置: IT专家网 > Web服务子站 > WebService开发

结合Direct Web Remoting使用Ajax

作者: 佚名,  出处:IT专家网社区, 责任编辑: 包春林, 
2008-07-23 04:00
  虽然令人兴奋,但是把Ajax功能添加到应用程序可能意味着大量的艰苦工作。在面向Java开发人员的Ajax系列的第3篇文章中,Philip McCarthy介绍了如何使用Direct Web Remoting(DWR)直接把JavaBean的方法公开给JavaScript代码并自动进行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类的类图

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

共8页。 1 2 3 4 5 6 :
  • 本文关键词:

网友评论

笔名 
请您注意:遵守国家有关法律、法规,尊重网上道德,承担一切因您的行为而直接或间接引起的法律责任。    IT专家网友拥有管理笔名和留言的一切权利。

邮件订阅