`
AllenHU0320
  • 浏览: 85846 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

DWR框架详解

 
阅读更多

1.DWR基本原理:当开发者直接调用远程Java方法时,DWR会负责将这种调用转换成对应的Ajax请求,并使用XMLHttpRequest将请求发送到远程服务器端。当服务器处理完成后,DWR负责将处理结果传回客户端的JavaScript代码。在整个Ajax交互过程中,DWR负责数据的传递和转换。

 

2.编写配置文件

修改web.xml文件保证特定请求被转发给DWR的核心Servlet处理

\WEB-INF\web.xml

<!-- 配置DWR的核心Servlet -->

<servlet>

      <!-- 指定DWR核心Servlet的名字 -->

      <servlet-name>dwr-invoker</servlet-name>

      <!-- 指定DWR核心Servlet的实现类 -->

      <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>

      <!-- 指定DWR核心Servlet处于调试状态 -->

      <init-param>

               <param-name>debug</param-name>

               <param-value>true</param-value>

      </init-param>

</servlet>

<!-- 指定核心Servlet的URL映射 -->

<servlet-mapping>

       <servlet-name>dwr-invoker</servlet-name>

       <!-- 指定核心Servlet映射的URL -->

       <url-patterm>/*</url-pattern>

</servlet-mapping>

添加dwr.xml文件,该文件负责定义Java类和JavaScript对象之间的对应关系

\WEB-INF\dwr.xml

<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN"
 "http://getahead.ltd.uk/dwr/dwr20.dtd">
<dwr>
    <allow>
         <!-- 判断 -->  
         <create creator="new" javascript="JJudgeAuditor" scope="request">
              <param name="class" value="com.xxx.JudgeAuditor" />
              <include method="getPaidLeave" />
         </create>
  
         <!-- 使用spring创建器,创建一个名为XXXFacade的JavaScript对象 -->
         <create creator="spring" javascript="XXXFacade">
              <!-- 将Spring容器中的XXXFacade创建成名为XXXFacade的对象 -->
              <param name="beanName" value="XXXFacade"/>
              <!-- 使用include元素定义那些方法将暴露到客户端 -->
              <include method="XXXById"/>
         </create>
         
         <!-- 定义使用Bean转换器处理如下Java类 -->
         <convert converter="bean" match="com.xxx.XXXDto" />
         <convert converter="bean" match="com.xxx.XXXUser" />
    </allow>
</dwr>

 

3.页面中导入JavaScript代码库

<script type="text/javascript" src="/xxx/interface/XXX.js"></script>

<script type="text/javascript" src="/xxx/engine.js"></script>

<script type="text/javascript" src="/xxx/util.js"></script>

 

4.编写处理类

处理类完全就是一个POJO(Plain Old Java Object)

远程处理类的方法名不要使用JavaScript保留字

远程处理类的方法不要重载

 

5.使用DWR的转换器

1)基本转换器

对于所有基本数据类型,包括String和BigDecimal等,DWR已经提供了简单对象的转换器,无需在dwr.xml中<allow>元素中使用<convert>元素定义

2)对象转换器

DWR默认关闭了Bean和Object转换器。Bean转换器用于完成JavaBean对象和JavaScript对象之间的转换,需要在dwr.xml中显示打开。

Object转化器通过反射来访问Java对象的属性,即Object转换器用于转换普通Java对象

推荐使用JavaBean作为远程Java方法的参数和返回值

3)数组转换器:默认是打开的

4)集合类型转换器

<convert converter="collection" match="java.util.Collection" />

<convert converter="map" match="java.util.Map" />

 

6.使用DWR的创建器

new,none,scripted,spring,jsf,struts,pageflow,ejb3

 

7.调用服务器端的方法

1)调用服务器端的通用配置

engine.js:DWR的核心JavaScript文件

util.js:DWR的工具JavaScript文件,该文件内提供了一些工具方法

2)使用回调

指定回调函数有两种做法:简单回调和使用JSON格式。如果使用简单回调,则调用远程方法的最后一个参数是函数引用,该函数就是回调函数;除此之外,还可以指定最后一个函数一个JSON格式对象,这种方式可指定更多的回调函数

function sendMessage(){

     var name=document.getElementById("name").value;

     //调用远程方法,cb是回调函数

     hello.hello(name,cb);

}

function cb(data){

     document.getElementById("show").innerHTML=data;

}

 

8.使用engine.js

设置调用顺序:dwr.engine.setOrdered(boolean)

设置全局超时时长:dwr.engine.setTimeout(5000);

设置全局Hook函数:dwr.engine.setPreHook(preFun);dwr.engine.setPostHook(postFun);

 

9.使用util.js

util.js中提供了4个基本的页面操作函数:getValue[s]()和setValue[s]()可以操作除table,list和image之外的html元素,getText()可以操作select,list。要修改页面的表格,可以使用addRows()和removeAllRows()。要修改列表可以使用addOptions()和removeAllOptions()函数

使用$()函数与Prototype中的一样

分享到:
评论

相关推荐

    dwr框架d ppt

    ### DWR框架详解 #### 一、为什么要使用Ajax框架? Ajax框架的核心价值在于它能够显著地提高用户界面的响应性和用户体验。传统的Web应用程序通常需要完全重新加载页面来更新数据或内容,而Ajax技术则允许在不刷新...

    AJAX_DWR框架

    **AJAX_DWR框架详解** AJAX (Asynchronous JavaScript and XML) 和 DWR (Direct Web Remoting) 是两种在Web开发中广泛使用的技术,它们共同构成了一个强大的框架,用于构建高度交互性和动态的Web应用程序。AJAX允许...

    Ajax dwr框架 pdf

    **Ajax和DWR框架详解** Ajax(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。它通过在后台与服务器进行少量数据交换,使得网页实现异步更新。这种方式可以让...

    DWR整合SSH框架实现类百度搜索实例(Oracle)

    【DWR框架详解】 DWR允许JavaScript与服务器端的Java代码进行实时交互,实现AJAX无刷新效果。它提供了一种简单的方式来暴露Java方法给JavaScript调用,使得前端可以动态地更新页面,提高用户体验。在这个搜索实例中...

    SSH与DWR框架整合

    ### SSH与DWR框架整合详解 #### 一、概述 SSH与DWR框架整合是指将Struts、Spring、Hibernate(通常简称为SSH)这三种框架与DWR框架进行结合使用的过程。这种整合使得Web应用程序能够更好地支持AJAX技术,提高用户...

    AJAX高级的应用--DWR框架使用的学习笔记

    **DWR框架详解** DWR (Direct Web Remoting) 是一个强大的AJAX框架,它允许JavaScript与Java在浏览器和服务器之间进行直接通信,实现了异步数据交换,从而提供了丰富的用户体验。DWR使得开发者能够轻松地在客户端...

    dwr框架实现无刷新分页

    **一、DWR框架基础** 1. **DWR的核心概念:** - **AJAX(Asynchronous JavaScript and XML)**:DWR是基于AJAX技术实现的,通过异步方式与服务器通信,无需刷新整个页面。 - **Cascading Style Sheets (CSS)和...

    dwr2框架实显简单webim及即时通讯功能,供学习

    **DWR框架详解及其在构建WebIM中的应用** DWR(Direct Web Remoting)是一个开源的Java库,它使得JavaScript和服务器端的Java代码能够直接交互,实现了浏览器与服务器之间的实时通信,极大地增强了Web应用程序的...

    DWR框架开发详解从入门到精通

    通过阅读"DWR框架开发详解从入门到精通"这本书,你将能够掌握这些技能,并熟练地在项目中应用DWR框架,提升Web应用的用户体验和开发效率。 为了更好地学习DWR,建议你阅读提供的`DWRchinese(1).pdf`文档,它包含了...

    ajax dwr 框架实现二级联动下拉列表源码

    本实例主要讲解如何利用DWR框架实现二级联动下拉列表,这是一种常见的前端交互设计,通常应用于地区选择、分类筛选等场景。 1. **DWR框架简介** DWR的核心功能是创建JavaScript对象,这些对象能够直接调用服务器上...

    struts2与dwr整合实例

    **DWR框架详解** DWR是一款优秀的JavaScript到Java的远程调用框架,它使得前端JavaScript可以直接调用后端Java对象的方法,从而实现了类似AJAX的功能,但比传统的AJAX更加简单易用。DWR通过自动暴露Java对象,生成...

    ajax框架:dwr》实战(包括整合)

    ### DWR 框架详解及实战应用 #### 一、DWR 快速入门 **1. DWR 简介** DWR (Direct Web Remoting) 是一种用于简化 Ajax 开发的 Java 库。它允许前端 JavaScript 直接调用后端 Java 对象的方法,从而减少了开发人员...

    《ajax框架:dwr与ext》实战

    ### DWR 框架详解及实战应用 #### 一、DWR简介 DWR(Direct Web Remoting)是一款远程过程调用(RPC)库,它简化了在JavaScript中调用Java函数以及从Java调用JavaScript函数的过程。这种双向交互方式通常被称为...

    dwr在线交流即时通讯系统

    1. **DWR框架详解** DWR的核心功能是提供了一种安全、高效的机制,使得JavaScript可以直接调用服务器端的Java方法,而无需传统的HTTP请求。这种方式极大地减少了页面刷新,提升了用户体验。DWR通过XMLHttpRequest...

    结合Spring 与DWR 构建Ajax 应用

    #### DWR框架详解 DWR(Direct Web Remoting)框架是Ajax开发中的一个重要工具,它位于服务器端,其核心功能是将服务器端Java对象的方法直接暴露给JavaScript调用,无需编写复杂的Ajax代码。DWR自动处理了跨域问题...

    DWR实现Google自动提示功能

    一、DWR框架详解: DWR的核心功能是提供了一种方式使得JavaScript可以调用服务器端的Java方法,就像是在本地调用一样。这主要通过以下三个关键组件实现: 1. **dwrcache.js**:这是DWR的核心库,负责建立与服务器的...

    《疯狂Ajax讲义(第3版).part4

    《疯狂ajax讲义》(第三版) 李刚的疯狂系列大家应该都懂的(PDF格式,共624页...第九章 DWR框架详解 第十章 基于DWR的应用:即时消息系统 第十一章 基于Ext JS的应用:简易Blog系统 第十二章 Ajax实例:电子拍卖系统

    《疯狂Ajax讲义(第3版).part1

    《疯狂ajax讲义》(第三版) 李刚的疯狂系列大家应该都懂的(PDF格式,共624页...第九章 DWR框架详解 第十章 基于DWR的应用:即时消息系统 第十一章 基于Ext JS的应用:简易Blog系统 第十二章 Ajax实例:电子拍卖系统

Global site tag (gtag.js) - Google Analytics