http://getahead.org/dwr 官方网站
http://baike.baidu.com/view/73492.htm?fr=ala0_1_1
index.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>DWR入门</TITLE>
<script type='text/javascript' src='./leedwr/interface/hello.js'></script>
<script type='text/javascript' src='./leedwr/engine.js'></script>
<script type='text/javascript' src='./leedwr/util.js'></script>
<script type="text/javascript" src="hellodwr.js"></script>
</HEAD>
<BODY>
<h3>DWR入门</h3>
请输入您的名字<input id="name" name="name" type="text"/><br>
<input type="button" value="发送简单请求" onClick="sendMessage();"/>
<input type="button" value="发送对象参数" onClick="sendObject();"/>
<input type="button" value="返回JavaBean" onClick="getBean();"/><br>
<input type="button" value="返回Object" onClick="getObject();"/>
<input type="button" value="返回Bean集合" onClick="getBeanList();"/>
<input type="button" value="返回Bean数组" onClick="getBeanArray();"/><br>
<input type="button" value="返回Bean Map" onClick="getBeanMap();"/>
<input type="button" value="发送Bean集合" onClick="sendBeanList();"/>
<input type="button" value="发送Bean Map" onClick="sendBeanMap();"/><br>
<hr>
下面是服务器的回应:<br>
<div id= "show"></div>
</BODY>
</HTML>
hellodwr.js
//--------------------发送简单字符串参数,返回普通字符串----------------------------
function sendMessage()
{
var name = document.getElementById("name").value;
hello.hello(name , cb)
}
function cb(data)
{
document.getElementById("show").innerHTML = data;
}
//-------------------发送一个JavaBean对象作为参数,返回普通字符串-------------------
function sendObject()
{
var nameValue = document.getElementById("name").value;
hello.sendObj({name:nameValue} , cb);
}
//--------------------调用返回JavaBean方法----------------------
function getBean()
{
var name = document.getElementById("name").value;
hello.getBean(name , beanCb)
}
function beanCb(data)
{
document.getElementById("show").innerHTML = data.name + ",您好,您已经学会了使用JavaBean返回值";
}
//--------------------调用返回getObject方法----------------------
function getObject()
{
var name = document.getElementById("name").value;
hello.getObject(name , objCb)
}
function objCb(data)
{
document.getElementById("show").innerHTML = data.name + ",是从服务器返回的猫的名字";
}
//---------------调用返回集合的方法--------------------------
function getBeanList()
{
hello.getPersonList(listCb);
}
function listCb(data)
{
var result='';
for (var i = 0 ; i < data.length ; i ++)
{
result += data[i].name + "<br>";
}
document.getElementById("show").innerHTML = result;
}
//---------------调用返回数组的方法-------------------------
function getBeanArray()
{
hello.getPersonArray(arrayCb);
}
function arrayCb(data)
{
var result='';
for (var i = 0 ; i < data.length ; i ++)
{
result += data[i].name + "<br>";
}
document.getElementById("show").innerHTML = result;
}
//---------------调用返回map的方法-------------------------
function getBeanMap()
{
hello.getPersonMap(mapCb);
}
function mapCb(data)
{
var result='';
for (var key in data)
{
result += "键为" + key + ",其值为:" + data[key].name + "<br>";
}
document.getElementById("show").innerHTML = result;
}
//---------------调用发送集合的方法-------------------------
function sendBeanList()
{
var args = [
{name:"客户端aaa"},
{name:"客户端bbb"},
{name:"客户端ccc"}
];
hello.sendList(args , sendListCb);
}
function sendListCb(data)
{
document.getElementById("show").innerHTML = data;
}
//---------------调用发送Map的方法-------------------------
function sendBeanMap()
{
var args = {
first:{name:"客户端aaa"},
second:{name:"客户端bbb"},
third:{name:"客户端ccc"}
};
hello.sendMap(args , sendMapCb);
}
function sendMapCb(data)
{
document.getElementById("show").innerHTML = data;
}
HelloDwr.java
package lee;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.util.HashMap;
public class HelloDwr
{
public String hello(String name)
{
return name + ",您好!您已经开始了DWR的学习之旅,祝您学得开心...";
}
public String sendObj(Person p )
{
return p.getName() + ",您好!您已经学会了使用JavaBean参数...";
}
public Person getBean(String name)
{
return new Person("服务器端" + name);
}
public Cat getObject(String name)
{
return new Cat("服务器端" + name);
}
public List<Person> getPersonList()
{
List<Person> result = new ArrayList<Person>();
result.add(new Person("集合aaaa"));
result.add(new Person("集合bbbb"));
result.add(new Person("集合cccc"));
return result;
}
public Person[] getPersonArray()
{
Person[] result = new Person[3];
result[0] = new Person("数组aaaa");
result[1] = new Person("数组bbbb");
result[2] = new Person("数组cccc");
return result;
}
public Map<String, Person> getPersonMap()
{
Map<String, Person> result = new HashMap<String, Person>();
result.put("first" , new Person("Map aaaa"));
result.put("second" , new Person("Map bbb"));
result.put("third" , new Person("Map cccc"));
return result;
}
public String sendList(List<Person> pl)
{
String result = "";
for (Person p : pl)
{
result += p.getName() + "<br>";
}
return result;
}
public String sendMap(Map<String , Person> pmap)
{
String result = "";
for (String key : pmap.keySet())
{
result += "键" + key + " 其值为:" + pmap.get(key).getName() + "<br>";
}
return result;
}
}
Person.java
package lee;
public class Person
{
private String name;
public Person()
{
}
public Person(String name)
{
this.name = name;
}
public void setName(String name)
{
this.name = name;
}
public String getName()
{
return name;
}
}
Cat.java
package lee;
public class Cat
{
private String name;
public Cat(String name)
{
this.name = name;
}
}
dwr.xml
<?xml version="1.0" encoding="GBK"?>
<!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="hello">
<param name="class" value="lee.HelloDwr"/>
</create>
<convert converter="bean" match="lee.Person"/>
<convert converter="object" match="lee.Cat">
<param name="force" value="true"/>
</convert>
</allow>
<signatures>
<![CDATA[
import lee.HelloDwr;
import lee.Person;
import java.util.List;
import java.util.Map;
]]>
</signatures>
</dwr>
web.xml
<?xml version="1.0" encoding="GBK"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">
<!-- 配置DWR的核心Servlet -->
<servlet>
<!-- 指定DWR核心Servlet的名字 -->
<servlet-name>dwr-invoker</servlet-name>
<!-- 指定DWR核心Servlet的实现类 -->
<servlet-class>uk.ltd.getahead.dwr.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-pattern>/leedwr/*</url-pattern>
</servlet-mapping>
</web-app>
分享到:
相关推荐
Dwr入门操作手册Dwr入门操作手册Dwr入门操作手册Dwr入门操作手册Dwr入门操作手册Dwr入门操作手册Dwr入门操作手册Dwr入门操作手册Dwr入门操作手册Dwr入门操作手册Dwr入门操作手册Dwr入门操作手册Dwr入门操作手册Dwr...
DWR(Direct Web Remoting)是一...通过学习这套DWR入门资料,你将能够熟练地使用DWR创建动态、交互性强的Web应用,提高开发效率,同时提升用户体验。实践中不断探索,理论与实战相结合,将助你在Web开发领域更进一步。
在DWR入门教程中,首先会介绍DWR的基本概念和工作原理。DWR的核心是将Java方法暴露给JavaScript,通过在服务器端创建一个称为"逆向Ajax"的通道,使得JavaScript能够调用远程服务器上的Java方法。这个过程涉及到几个...
**DWR入门步骤:** 1. **引入依赖**:首先,你需要在项目中添加dwr.jar到类路径中,这将包含所有DWR运行所需的类和库。 2. **配置DWR**:在Web应用的Web-INF目录下创建dwr.xml配置文件,设置允许的远程接口和方法...
在"DWR+dwr入门手册"中,你将深入了解到以下几个核心知识点: 1. **DWR的基本概念**:DWR的核心是Remoting Engine,它负责在客户端JavaScript和服务器端Java之间建立通信通道。DWR提供了一套API,包括`dwr.engine`...
在这个"DWR入门例子"中,我们将深入探讨如何使用DWR进行服务器和客户端之间的数据交换。 1. **DWR基本概念** - **反向AJAX**: DWR的核心理念是反向AJAX,即由服务器主动向客户端推送数据,而不仅仅是响应客户端的...
软件工程 DWR 入门教程 DWR(Direct Web Remoting)是一种基于 Java 的远程方法调用技术,它允许在 Web 应用程序中将 Java 对象作为远程服务暴露给客户端,客户端可以通过 Ajax 调用这些服务。下面是 DWR 入门教程...
STRUT2 DWR入门教程 DWR(Direct Web Remoting)是一种开源JavaScript库,它允许在Web应用程序中实现Ajax功能,使用户界面更加动态和交互性更强。与STRUT2框架结合使用,DWR可以为Java后端提供简单且高效的远程方法...
《DWR入门操作手册》深度解析与实践指南 一、DWR配置与使用基础 DWR,全称为Direct Web Remoting,是一种使Java对象能够直接从JavaScript调用的技术,简化了Ajax开发流程,使得前后端交互更为直接和高效。本文档...
**DWR(Direct Web Remoting)入门操作手册及DWR包** DWR,全称Direct Web Remoting,是一个...通过深入学习"Dwr入门操作手册"并实践使用"dwr.jar",你可以掌握如何利用DWR构建交互性更强、用户体验更好的Web应用。
这个“最完整的DWR入门文档及DWR使用案例”包含的资源无疑将帮助你深入理解和高效使用DWR。 首先,DWR的核心功能是提供了一种跨域的通信机制,使得前端JavaScript可以直接调用后端Java方法,就像操作本地函数一样,...
3. **DWR入门步骤**: - **准备环境**:首先,需要下载DWR的jar包,如dwrc.jar,将其放入项目的lib目录下。 - **创建Web项目**:创建一个新的Web项目,例如名为sayHello。 - **编写Java类**:创建一个名为...
在"DWR入门程序--计算两个数之和及包含页面的例子(使用1.0版本).rar"中,我们可以看到一个简单的例子,展示了如何使用DWR 1.0进行数据交互。这个例子可能包括一个HTML页面,该页面包含一个JavaScript函数,该函数...
在“dwr入门例子 返回list”这个主题中,我们将深入探讨如何使用DWR从服务器返回列表数据到客户端。列表通常包含多个项目,如数据库查询结果,这些数据可以在网页上以表格或其他形式展示给用户。DWR提供了方便的方法...
DWR入门涉及以下几个关键知识点: 1. **配置DWR**:首先,你需要在项目中集成DWR,这通常包括在`web.xml`中配置DWR的Servlet,以及在项目的类路径下创建`dwr.xml`配置文件,用于声明暴露给JavaScript的Java类和方法...
在"**dwr入门资料,简单入门,让你轻松掌握dwr**"的资源中,你可以期待学习到以下关键知识点: 1. **DWR的基本概念**:理解DWR的核心概念,如Remoting、Reverse Ajax和Caching,以及如何通过DWR实现浏览器与服务器...
本教程“DWR入门教程及实例(含源代码)”旨在帮助初学者快速掌握DWR的基本概念和使用方法。教程内容可能包括以下几个核心知识点: 1. **DWR概述**:讲解DWR的基本理念,如何通过HTTP协议实现JavaScript与Java之间...
这份"个人编写的一份dwr入门源代码"是针对初学者设计的,通过五个简单示例帮助理解DWR的基本用法和功能。 1. **DWR简介**:DWR简化了AJAX开发,通过自动处理跨域问题和JSON/JavaScript对象转换,使得前端可以像调用...
在本“DWR入门教程之HelloWorld”中,我们将逐步学习如何搭建一个简单的DWR应用,体验其基本功能。首先,我们需要了解以下关键组件: 1. **配置DWR**: 在Web应用程序的`web.xml`文件中,我们需要添加DWR的Servlet...