`
xiaoboss
  • 浏览: 648135 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

DWR 原理简单介绍

 
阅读更多
使用DWR已经好长一段时间了,可是今天才知道它的工作原理,下面与大家分享,如果有什么不对之处,欢迎指出,大家一起讨论...

 

 

      使用DWR时,页面需要导入engine.js文件,另外还需要导入DWR自动生成的文件(根据用户在dwr.xml中配置信息生成),如:logAjax.js,这个文件是在服务器端是找不到的,不过可以在浏览器的缓存中可以找到。如果页面引入如下:

 

 

<script type="text/javascript" src="<%=webRoot %>/dwr/engine.js"></script>
<script type="text/javascript" src="<%=webRoot %>/dwr/interface/logAjax.js"></script>

 

 

// Provide a default path to dwr.engine
if (typeof this['dwr'] == 'undefined') this.dwr = {};
if (typeof dwr['engine'] == 'undefined') dwr.engine = {};
if (typeof dwr.engine['_mappedClasses'] == 'undefined') dwr.engine._mappedClasses = {};
if (window['dojo']) dojo.provide('dwr.interface.logAjax');
if (typeof this['logAjax'] == 'undefined') logAjax = {};
logAjax._path = '/study/dwr';
/**
 * @param {function|Object} callback callback function or options object
 */
logAjax.getAllLogs = function(callback) {
  return dwr.engine._execute(logAjax._path, 'logAjax', 'getAllLogs', arguments);
};
/**
 * @param {function|Object} callback callback function or options object
 */
logAjax.getLogService = function(callback) {
  return dwr.engine._execute(logAjax._path, 'logAjax', 'getLogService', arguments);
};
/**
 * @param {class com.xdja.log.LogService} p0 a param
 * @param {function|Object} callback callback function or options object
 */
logAjax.setLogService = function(p0, callback) {
  return dwr.engine._execute(logAjax._path, 'logAjax', 'setLogService', arguments);
};

 

当访问该页面,并执行到上面的代码时,由于配置了/dwr路径,web.xml中配置的DWR的DwrServlet会处理请求,然后将engine.js以流的形式发送给浏览器,同时它还会自动生成logAjax.js ,并同样以流的形式发送给浏览器,这两个文件都可以在浏览器的缓存里找到,我的logAjax.js的内容如下:
可见,当我们在页面中使用logAjax.getAllLogs();调用服务器端Java的方法getAllogs()时,实际上是执行的
dwr.engine._execute(logAjax._path, 'logAjax', 'getAllLogs', arguments);

该请求同样被DwrServlet处理,然后在dwr.xml中查询到logAjax的对应项目,然后根据配置信息,自己根据反射生成对象或者由Spring注入对象,然后调用方法getAllLogs() 后,将处理结果返回给浏览器,最后执行回调函数...
分享到:
评论

相关推荐

    dwr反推简单例子

    Direct Web Remoting (DWR) 是一个开源的Java库,它允许JavaScript在浏览器端与服务器端的Java对象...不过,理解DWR的工作原理仍然有助于理解Web应用的异步通信机制,对于学习Web开发的历史和技术演进有一定的价值。

    dwr demo dwr简单使用

    通过这个简单的DWR演示项目,你可以深入理解DWR的工作原理,掌握如何配置DWR、编写可被客户端调用的Java方法,以及如何在JavaScript中使用这些方法。这对于想要学习和使用DWR来构建动态Web应用的初学者来说是一个很...

    dwr入门简单实现示例

    **二、DWR的工作原理** 1. **配置阶段**:在服务器端,我们需要在`dwr.xml`配置文件中声明可被远程调用的Java类和方法。 2. **编译阶段**:DWR自动生成JavaScript接口文件,供客户端使用。 3. **运行时**:客户端...

    一个DWR最简单的例子,不错的哦!

    DWR(Direct Web Remoting)是一种Java技术,它允许Web应用程序在客户端JavaScript和服务器端Java之间进行实时的、异步的通信。...这将帮助你理解DWR的工作原理,并为构建更复杂的交互式Web应用打下基础。

    Dwr最简单例子(2.0)

    在这个"Dwr最简单例子(2.0)"中,我们将探讨如何使用DWR 2.0设置一个基础的应用程序,以便理解其核心概念和工作原理。首先,我们需要了解DWR的基本组件: 1. **配置文件**:DWR的配置文件(通常为`dwr.xml`)定义了...

    DWR原理及中文文档

    DWR(Direct Web Remoting)是一种Java库,用于在Web应用程序中实现JavaScript和服务器端Java对象之间的双向通信。...通过深入学习DWR的原理和实践,开发者可以构建出更具吸引力和响应性的Web应用。

    DWR简单测试例子

    下面我们将深入探讨DWR的工作原理、配置过程以及如何创建一个简单的测试例子。 1. DWR的工作原理: DWR的核心在于它提供了一种安全的、跨域的通信方式。它通过JavaScript接口(JSR-269或JSR-173注解)动态生成...

    DWR介绍

    ### DWR介绍 #### 一、DWR概述 DWR(Direct Web Remoting)是一种用于简化客户端JavaScript调用服务器端Java方法的技术。它通过Ajax技术实现了网页上的JavaScript直接调用服务器端的Java对象,极大地提高了Web应用...

    AJAX框架DWR简单应用

    在提供的“AJAX框架DWR简单应用.pdf”文件中,你可能会找到关于如何设置DWR环境、编写Java接口、配置DWR配置文件、在前端JavaScript中使用DWR,以及示例代码和实际运行效果的详细教程。这个文件是学习和理解DWR工作...

    DWR Ajax简单入门例子

    首先,我们需要理解DWR的工作原理。DWR通过在服务器端运行一个Servlet,这个Servlet处理所有客户端的Ajax请求,并将结果返回给JavaScript。在客户端,DWR提供了一套API,使得JavaScript可以直接调用服务器端的Java...

    DWR做的简单登录实例

    1. **DWR工作原理**:如何利用DWR实现实时的前后端交互。 2. **Ajax技术**:DWR底层使用的Ajax技术,允许无刷新的数据更新。 3. **JSP页面编程**:如何在jsp页面上编写DWR调用的JavaScript代码。 4. **Java后端服务*...

    DWR AJAX 简单示例

    **DWR的工作原理:** 1. **配置DWR:** 首先,我们需要在服务器端配置DWR,包括设置允许JavaScript调用的Java类和方法,创建`dwr.xml`配置文件,并在Web应用的部署目录下放置DWR的相关JAR文件。 2. **Java接口与实现:...

    dwr简单示例(完整web工程)

    这个压缩包文件“dwr简单示例(完整web工程)”显然是一个包含了完整配置和代码的DWR应用实例,旨在帮助开发者了解和学习如何在实际项目中使用DWR。 1. **DWR的基本概念**: - **Web Remoting**:DWR的核心是Web...

    DWR让Ajax如此简单

    DWR的工作原理 - **配置**: 首先,开发者需要在服务器端配置DWR Engine,声明允许被客户端调用的Java类和方法。 - **JavaScript API**: DWR自动生成JavaScript接口,使得开发者可以方便地在浏览器中调用这些方法...

    Struts2+DWR的简单实现

    Struts2和Direct Web Remoting (DWR) 是两种在Web开发中常用的技术。Struts2是一个基于MVC设计模式的Java EE框架,用于...通过深入理解这两个技术的工作原理和整合方式,开发者可以构建出高效、易维护的企业级Web应用。

    dwr的简单应用程序

    《DWR的简单应用程序》 DWR(Direct Web Remoting)是一种开源JavaScript库,它允许在Web浏览器和Java服务器之间进行实时的、双向的通信,实现了JavaScript与Java之间的远程调用,极大地增强了Web应用的交互性。DWR...

    dwr2.0最简单例子实用亲测试

    下面将详细介绍DWR的基本概念和在这个实例中可能涉及的关键知识点: 1. **DWR的核心组件**: - **Engine**: DWR的核心,负责管理所有远程调用和映射。 - **Ajax引擎**: 处理JavaScript到服务器的请求和服务器到...

    dwr简单的例子

    首先,理解DWR的基本工作原理至关重要。DWR通过在服务器上运行一个Servlet,这个Servlet负责处理JavaScript与Java之间的通信。当JavaScript调用一个远程方法时,DWR会自动将请求发送到服务器,执行相应的Java方法,...

    DWR与后台异步交互简单例子

    通过分析这些代码,你可以更好地理解DWR的工作原理和使用方式。 总的来说,DWR为开发人员提供了一种高效、便捷的手段来实现Web应用的异步交互,提升了用户体验,同时也简化了开发过程。理解并熟练掌握DWR的应用,...

Global site tag (gtag.js) - Google Analytics