一、什么是DWR(Direct Web Remote)?
DWR是一种AJAX(Asynchronous JavaScript and XML)的JAVA实现,它提供了一种能在web浏览器端采用JavaScript语言直接调用后台业务商业组件的解决方案。DWR通过JavaScript直接调用远程组件可以减少Web开发的时间,特别对于那些具有和用户频繁交互的Web应用程序。DWR使得浏览器不用刷新页面就可以从远程Web服务器取得用户需的数据,这种无刷新页面的交互方式大大提高Web页面的响应时间。至少用户不会感觉到刷新页面带来的等待响应心理感觉。DWR采用浏览器端采用纯JavaScript实现,并且会自动根据浏览器类型采用最高效率的远程组件调用机制。
DWR包括一个java库,以及一套javascript,使得我们可以用一种非常简单的方式,在页面上使用javascript直接调用后台的java对象!
二、下面是DWR架构图
DWR的javascript库包括几个部分:dwr的javascript引擎(即对AJAX调用的封装)、dwr提供的一些非常有用的辅助javascript函数库、以及dwr自动帮我们生成的专门用于调用后台JavaBean方法的javascript库!
Dwr在运行的时候,动态生成一个javascript库,这个库是对后台javabean调用的封装,我们可以直接使用这个库来实现直接调用JavaBean的目的!
注意:是在运行的时候动态生成!
下面我们来看看如何安装和使用(基于DWR2.x版本):
三、如何下载、安装与使用?
官方网址: http://getahead.org/dwr
1、 下载dwr.jar,将其加入web-inf/lib目录
2、 修改web.xml文件,添加DWRServlet的映射
<servlet>
<servlet-name>dwr-invoker</servlet-name>
<servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>dwr-invoker</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>
3、 配置dwr,即在WEB-INF目录下,添加dwr.xml文件,让dwr知道在运行的时候应该给哪些JavaBean生成相应的javascript库!
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN" "http://getahead.org/dwr/dwr20.dtd">
<dwr>
<allow>
<create creator="new" javascript="test1">
<param name="class" value="com.dwr.Test1"/>
</create>
</allow>
</dwr>
这个配置的意思是,要创建的是Test1对象的javascript库,而且这个库的名字叫test1,同时,这也是我们在JSP页面上调用这个对象的时候所使用的名称,请看下面的JavaBean代码和JSP实例:
4、下面是Test1这个JavaBean的源代码:
public class Test1 {
public String sayHello(String name){
return "你好,"+name;
}
}
5、在JSP中的使用!
<%@ page language="java" contentType="text/html; charset=GB18030"
pageEncoding="GB18030"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
<script type="text/javascript" src="dwr/engine.js"></script>
<script type="text/javascript" src="dwr/util.js"></script>
<script type="text/javascript" src="dwr/interface/test1.js"></script>
<title>Insert title here</title>
<script type="text/javascript">
function sayHello(){
test1.sayHello("李四ddd",
function(data){
alert(data);
}
);
}
</script>
</head>
<body>
<a href="#" onclick="sayHello()">Test1</a>
</body>
</html>
让我们简单看一下这个JSP文件:首先引入DWR中的两个核心javascript库:engine.js和util.js,它们分别是dwr中的核心引擎库和辅助工具函数库!
第三个引入的dwr/interface/test1.js,实际上这个文件并不存在,这是由dwr在运行的时候动态生成的!test1这个名称,跟dwr.xml文件中配置的对应对象的javascript属性一致!而且,我们在使用的时候,直接使用test1这个名称,作为这个对象的引用。直接调用这个对象的方法:sayHello,这个方法的名称必须与JavaBean中的方法名称一致!
sayHello方法有一个参数,同时返回一个值。我们可以直接传递参数,同时指定一个javascript函数来处理这个返回值(如上例所示)。
5.1如何传递参数
如果要调用的方法有参数,则将参数放在前面
5.2如何处理返回值
定义一个函数来处理返回值,这个函数有一个参数,就是JavaBean方法的返回值
四、DWR Javascript库中常用函数的使用
设置异步/同步模式
默认情况下,DWR以异步的方式跟服务器通信,即可以同时向服务器发送请求,如果想要改为同步的方式,可以调用:dwr.engine.setAsync(false);
获得对某个页面元素对象的引用
$(“元素的ID或名称”)
- 大小: 5.6 KB
分享到:
相关推荐
#### 三、DWR入门 **1.1 简介** DWR通过提供一系列的工具和API,帮助开发者实现客户端与服务器端的异步通信。这包括了自动化的JavaScript生成、远程方法调用等功能。 **1.2 第一个DWR程序:HelloWorld** - **...
【描述】中提到的"入门的好资料"意味着这个压缩包可能包含初级到中级的教程、示例代码以及配置文档,适合初学者了解和掌握DWR的基础和进阶用法。"web.xml"和"dwr.xml"是两个关键的配置文件,它们在DWR集成到Web应用...
1. **DWR基础**:介绍DWR的基本概念、安装和配置过程,以及如何在项目中集成DWR框架。 2. **远程对象(Remote Objects)**:讲解如何定义和使用远程对象,使JavaScript能够直接调用Java类的方法。 3. **安全与权限...
#### 一、DWR入门 **1.1 简介** DWR(Direct Web Remoting)是一种简化Ajax应用程序开发的技术。它通过提供一种简单的方式来调用服务器端的Java方法,从而使得客户端的JavaScript代码可以直接操作服务器端的Java...
#### 二、DWR入门 ##### 2.1 简介 - **DWR** 是一种基于Ajax的开源框架,用于简化Ajax编程过程。 - DWR通过提供一系列工具和服务,使JavaScript能够直接调用服务器端的Java方法,极大地提高了开发效率。 - 开发者...
【程序员从初级到高级知识汇集】是一本涵盖了程序员从入门到精通所需掌握的全面知识的资料集合。本书针对初级和高级程序员,旨在提供一个系统化的学习路径,帮助程序员提升技能,成为行业专家。 1. **Java知识** -...
总的来说,这个压缩包提供了一个全面的Java框架学习路径,从基础的SSH框架到进阶的Spring框架,再到实际开发中的工具集成,无论你是初学者还是经验丰富的开发者,都能从中受益。通过深入学习和实践,你将能够熟练...
本篇将围绕“Java学习路线图”这一核心主题,深度解析Java学习的各个阶段及其关键知识点,旨在帮助学习者构建一个系统而全面的Java知识体系。 ### Java基础 #### 重点内容: - **Java语法**:理解变量、数据类型...
Ext教程为使用Ext JS框架的开发者提供了大量实例和详细的说明,涵盖了从基本入门到进阶使用,再到解决遇到的问题,是一份非常实用的参考资料。通过这些实例,开发者可以快速掌握Ext JS的使用,并能高效地应用于实际...
- **入门书-Ajax技术手册**:适合初学者,详细介绍Ajax的基本概念和技术要点。 - **进阶书-Ajax实战手册**:深入探讨Ajax的应用场景和最佳实践。 - **参考书-Ajax骇客八十招**:提供了大量的技巧和示例,帮助开发者...