• [转]dwr3框架学习笔记--简介及原理简介


    1、DWR简介

    DWR(直接web远程访问),DWR是一个Java库,使服务器上的Java和JavaScript的浏览器进行交互和相互调用尽可能简单。

    DWR 是一个可以允许你去创建 AJAX WEB 站点的 Java 开源库。它可以让你在浏览器中的 JavaScript 代码调用 Web 服务器上的 Java 代码,就像在 Java 代码就在浏览器中一样。

    DWR官网: http://www.directwebremoting.org/dwr/index.html

    英文如果还可以的话,可以看官网快速开始:http://www.directwebremoting.org/dwr/introduction/getting-started.html
     

    2、DWR工作原理原理窥探

    DWR 包含 2 个部分:

      •Java Servlet,运行在服务器端,它处理请求并且向浏览器发回响应。

      •JavaScript,运行在浏览器端 ,它发送请求而且还能动态更新网页。

    DWR 工作原理:

      是通过动态把 Java 类生成为 Javascript。它的代码就像 Ajax 一样,你感觉调用就像发生在浏览器端,但是实际上代码调用发生在服务器端,DWR 负责数据的传递和转换。这种从 Java 到JavaScript的远程调用功能的方式使DWR用起来有种非常像RMI或者SOAP的常规RPC机制,而且DWR的优点在于不需要任何的网页浏览器插件就能运行在网页上。

      Java 从根本上讲是同步机制,然而 AJAX 却是异步的。所以你调用远程方法时,当数据已经从网络上返回的时候,你需要提供有反调 (callback) 功能的 DWR,即你的js代码调用最后一个参数是一个回调函数,由回调函数处理数据返回后想做的操作。

    DWR 动态在 js里生成一个 AjaxService 类,这个类与java中的 AjaxService 类是对应的,相当于类和方法全都暴露给前端,就是在jsp页面的js中直接可以用   类名.方法名(参数1,参数2,参数3...,回调函数);  的方式进行调用前端只需要进行调用就行了,非常简单就实现了页面无刷新的调用效果。

    在示例中,先在 eventHandler 方法里调用 AjaxService 的 getOptions() 方法,然后通过反调 (callback)方法 populateList(data) 得到返回的数据,其中 data 就是 String[]{"1", "2", "3"},最后再使用 DWR utility 把data 加入到下拉列表。

    JS中用 AjaxService.getOptions(回调函数)方式进行调用时,DWR 处理所有的远程调用的细节,包括倒置 (converting) 所有的参数以及返回 Javascript 和 Java 之间的值。

     

    有了它(就不用再写ajax,后台也不用再配那么多拦截器了)传统方式前端进行请求,到后端会被拦截器解析进行各种操作及映射及解析,非常繁琐,而dwr这就是所谓的尽可能简单的调用。

  • 相关阅读:
    如何在TVM上集成Codegen(上)
    CodeGen准备存储库
    CodeGen按钮循环
    CodeGen标记循环
    CodeGen结构循环回路
    CodeGen处理Synergy方法目录
    回顾6 单点登录
    回顾 five 幂等性
    回顾 four Object
    程序员的数学基础课 笔记6
  • 原文地址:https://www.cnblogs.com/baojiao/p/6762797.html
Copyright © 2020-2023  润新知