首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Ajax >

透过DWR简化AJAX开发

2013-09-05 
通过DWR简化AJAX开发DWR(Direct Web Remoting)是一个WEB远程调用框架,采取了一个类AJAX的新方法来动态生成

通过DWR简化AJAX开发

    DWR(Direct Web Remoting)是一个WEB远程调用框架,采取了一个类似AJAX的新方法来动态生成基于JAVA类的JavaScript代码。这样WEB开发人员就可以在JavaScript里使用Java代码,就像它们是浏览器的本地代码(客户端代码)一样。

     

    其开发过程如下:
    1. 拷贝dwr.jar文件
    2. 修改web.xml文件,添加dwr servlet配置
    3. 编写dwr组件,即提供给javascript访问的java类。
    4. 在web-inf下面添加dwr.xml文件,进行配置
    5. 创建jsp页面,需引入dwr的javascript文件,调用java类方法

     

    下面以用户注册的例子,来说明其使用。

     

    修改web.xml文件,添加dwr servlet配置

    创建jsp页面,需引入dwr的javascript文件,然后调用java类方法

    通过转换器,把javascript的map结构转换到java的User对象或者把java User对象转换到javascript的map结构。(javascript的map结构:各个项是用逗号连接的,而每个项的键值对是用冒号连接的,如var userMap = {id:'admin',password:'123456',name:'chenbug'};)转换器也有多种,比如BeanConverter、ArrayConverter等

     

    分析js代码

    DWRUserAccess.js和DWRUserAccess.java是对应的,将我们编写的DWRUserAccess类,经dwr反射后,生成的就是对应的javascript代码,实际上我们就是通过这个js文件去调用服务器端的DWRUserAccess类的。

     

    OnSave函数,首先它构造一个map,然后调用DWRUserAccess.save(userMap, saveFun),第一个参数userMap是javascirpt中的map对象,而服务器端的DWRUserAccess中的save方法是这样的:boolean save(User user),参数是一个User对象,所以在服务器端代码执行前,会通过convert转换成User对象。第二个参数saveFun即是一个回调函数,执行完服务端的方法后,将结果填充到function saveFun(data)中的data中。

     

    OnFind函数,因为服务器端返回的是一个User对象,所以需要通过convert,将User对象转换成avascript的一个map对象,将最终结果填充到回调函数findFun(data)的data参数中。

     

    小结

    这个从JAVA到JavaScript的远程调用,非常像传统的RPC机制,比如RMI或者Web Service,只需要通过网络向远程计算机请求相应的服务,就能达到想要做的事情。

热点排行