| « | 六月 2008 | » | ||||
|---|---|---|---|---|---|---|
| 一 | 二 | 三 | 四 | 五 | 六 | 日 |
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 | ||||||
DWR :轻松结合Ajax和JAVA
DWR(Direct Web Remoting)是一个基于Java的开源类库,它能使你方便的编写Ajax的web 站点。
DWR可以使运行在浏览器中的代码调用运行在服务器端的Java函数非常简单,就像这些Java函数也运行在浏览器。
DWR包含两个主要部分:
l 运行在服务器端的Servlet 处理请求,并将响应结果送回到客户端;
l 运行在Browser 中的JavaScript发送请求,并且能动态的更新网页内容。
DWR的工作原理是:基于java类动态的生成JavaScript代码。代码实现一些了一些Ajax的功能,让人感觉代码的执行过程发生在Browser,实际上是服务器在执行这些代码,DWR负责将数据编组进行往返。
这种在Java和JavaScript之间远程调用函数的方法,使DWR的用户感觉它非常类似传统的RPC机制,比如RMI和SOAP。利用这种方法的优点使得DWR在万维网之间运行但是不需要在Web-Browser上安装插件。
Java基本上是同步的,而Ajax是异步的。所以当你调用一个远程的方法,并且数据已经从网络返回的时候,你必须给DWR提供一个响应的方法。
下图展现了DWR如何响应JavaScript的事件(比如Click),来改变一个下拉列表的内容。
DWR集成了许多别的项目。一个最常用的问题是如果处理Servlet对象,比如HttpServletRequest,关于它的详细解释在accessing servlet objects。DWR已经集成了Spring, WebWork, JSF, Struts 1 和 Hibernate.
DWR动态的生成JavaScript格式的Ajax服务类来匹配服务器端代码。这被称之为EventHandler(事件处理器)。DWR处理所有的远程细节,包括参数转换以及在JavaScript和Java之间传递值。在本例中DWR执行提供的返回信息处理函数,这个函数使用 DWR工具集来改变页面显示。
DWR通过提供一组JavaScript库来帮助处理DHTML,以及一组实用的例子,可以帮助你实现高效互动的网站。