`

dwr入门教程

    博客分类:
  • Ajax
阅读更多
引用
DWR(Direct Web Remoting)是一个WEB远程调用框架.利用这个框架可以让AJAX开发变得很简单.利用DWR可以在客户端利用JavaScript直接调用服务端的Java方法并返回值给JavaScript就好像直接本地客户端调用一样(DWR根据Java类来动态生成JavaScrip代码).它的最新版本DWR0.6添加许多特性如:支持Dom Trees的自动配置,支持Spring(JavaScript远程调用spring bean),更好浏览器支持,还支持一个可选的commons-logging日记操作.


以上摘自open-open,它通过反射,将java翻译成javascript,然后利用回调机制,轻松实现了javascript调用Java代码。

User.java
package com.makey;

public class User {

	private String id;
	//姓名
	private String name;
	//口令
	private String password;
	//电子邮件
	private String email;
	
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	public String getEmail() {
		return email;
	}
	public void setEmail(String email) {
		this.email = email;
	}
}


UserDao.java
package com.makey;

import java.util.HashMap;
import java.util.Map;

public class UserDao {

    private static Map dataMap = new HashMap();

    //持久用户
    public boolean save(User user) {
      if (dataMap.containsKey(user.getId()))
        return false;
      System.out.println("下面开始保存用户");
      System.out.println("id:"+user.getId());
      System.out.println("password:"+user.getPassword());
      System.out.println("name:"+user.getName());
      System.out.println("email:"+user.getEmail());
      dataMap.put(user.getId(), user);
      System.out.println("用户保存结束");
      return true;
    }

    //查找用户
    public User find(String id) {
      return (User)dataMap.get(id);
    }
}


DWRUserAccess.java
package com.makey;

public class DWRUserAccess {

    UserDao userDao = new UserDao();

    public boolean save(User user) {
      return userDao.save(user);
    }

    public User find(String id) {
      return userDao.find(id);
    }
}

dwr.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN" "http://www.getahead.ltd.uk/dwr/dwr10.dtd">

<dwr>
	<allow>
		<create creator="new" javascript="DWRUserAccess">
			<param name="class" value="com.makey.DWRUserAccess" />
		</create>
		<convert converter="bean" match="com.makey.User" />
	</allow>
</dwr>


web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" 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">

	<servlet>
		<servlet-name>dwr-invoker</servlet-name>
		<servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class>
		<init-param>
			<param-name>debug</param-name>
			<param-value>true</param-value>
		</init-param>
		<init-param>
			<param-name>scriptCompressed</param-name>
			<param-value>false</param-value>
		</init-param>
		<load-on-startup>1</load-on-startup>
	</servlet>

	<servlet-mapping>
		<servlet-name>dwr-invoker</servlet-name>
		<url-pattern>/dwr/*</url-pattern>
	</servlet-mapping>
	
	<welcome-file-list>
		<welcome-file>index.html</welcome-file>
	</welcome-file-list>
</web-app>


index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<TITLE>DWR测试</TITLE>
<meta http-equiv=Content-Type content="text/html; charset=gbk">
<script src="dwr/engine.js"></script>
<script src="dwr/util.js"></script>
<script src="dwr/interface/DWRUserAccess.js"></script>
</HEAD>
<BODY>
<B>用户注册</B><br>
------------------------------------------------
<Br>
<form name="regForm">
登陆ID:<input type="text" name="id"><br>
口  令:<input type="password" name="password"><br>
姓  名:<input type="text" name="name"><br>
电子邮件:<input type="text" name="email"><br>
<input type="button" name="submitBtn" value="提交" onclick="OnSave()"><br>
    </form>

<br>
<br><B>用户查询</B><br>
------------------------------------------------
<Br>
<form name="queryForm">
登陆ID:<input type="text" name="id"><br>
<input type="button" name="submitBtn" value="提交" onclick="OnFind()"><br>
</form>
<br>
</html>

<SCRIPT LANGUAGE="JavaScript">
<!--
function saveFun(data) {
if (data) {
  alert("注册成功!");
} else {
  alert("登陆ID已经存在!");
}
}

function OnSave() {
var userMap = {};
userMap.id = regForm.id.value;
userMap.password = regForm.password.value;
userMap.name = regForm.name.value;
userMap.email = regForm.email.value;
DWRUserAccess.save(userMap, saveFun); 
}

function findFun(data) {
if (data == null) {
  alert("无法找到用户:"+queryForm.id.value);
  return;
}

alert("找到用户,nid:"+data.id+",npassword:"+data.password+",nname:"+data.name+",nemail:"+data.email);

}

function OnFind() {
DWRUserAccess.find(queryForm.id.value, findFun); 
}
//-->
</SCRIPT>


分享到:
评论

相关推荐

    dwr API dwr入门教程

    在DWR入门教程中,首先会介绍DWR的基本概念和工作原理。DWR的核心是将Java方法暴露给JavaScript,通过在服务器端创建一个称为"逆向Ajax"的通道,使得JavaScript能够调用远程服务器上的Java方法。这个过程涉及到几个...

    软件工程DWR入门教程.docx

    软件工程 DWR 入门教程 DWR(Direct Web Remoting)是一种基于 Java 的远程方法调用技术,它允许在 Web 应用程序中将 Java 对象作为远程服务暴露给客户端,客户端可以通过 Ajax 调用这些服务。下面是 DWR 入门教程...

    DWR入门教程及实例(含源代码)

    本教程“DWR入门教程及实例(含源代码)”旨在帮助初学者快速掌握DWR的基本概念和使用方法。教程内容可能包括以下几个核心知识点: 1. **DWR概述**:讲解DWR的基本理念,如何通过HTTP协议实现JavaScript与Java之间...

    DWR入门教程

    《DWR入门教程:服务器推送新手指南》 Direct Web Remoting (DWR) 是一种用于在Web应用程序中实现实时服务器推送技术的开源框架。它允许JavaScript与服务器端的Java对象进行交互,使得Web应用能够实时地更新客户端...

    DWR入门教程之HelloWorld

    在本“DWR入门教程之HelloWorld”中,我们将逐步学习如何搭建一个简单的DWR应用,体验其基本功能。首先,我们需要了解以下关键组件: 1. **配置DWR**: 在Web应用程序的`web.xml`文件中,我们需要添加DWR的Servlet...

    DWR基础教程 开发案例

    **DWR基础教程 开发案例** DWR,全称Direct Web Remoting,是一个开源的Java库,用于在Web应用程序中实现Ajax(异步JavaScript和XML)功能。它简化了JavaScript和服务器端Java代码之间的交互,使得开发者能够在...

    DWR入门教程之提示性文字

    提供的博文链接(https://hintcnuie.iteye.com/blog/175857)可能包含更详细的DWR入门教程和示例代码,建议访问学习以加深对DWR的理解和实践。 总结,DWR作为一个强大的工具,极大地简化了Web应用中的Ajax开发,...

    DWR基础教程及配置.doc

    以下是对DWR基础教程及配置的详细解释: **1. 安装DWR** 要开始使用DWR,首先需要将`dwr.jar`文件添加到你的web应用的`WEB-INF/lib`目录下。这个库包含了DWR运行所需的类和资源。确保`dwr.jar`与其他必要的库一起...

    DWR入门教程.pdf

    DWR(Direct Web Remoting)是一个用于简化Web应用中JavaScript到Java对象之间通信的开源库。DWR使得开发者能够轻松地在浏览器端使用JavaScript调用服务器端的Java方法。这一过程是透明的,用户无需了解底层的Ajax...

    【软件工程】DWR入门教程.docx

    **DWR(Direct Web Remoting)入门教程** DWR 是一款强大的 Java 框架,用于实现在浏览器和服务器之间进行实时的、安全的、跨域的 AJAX(Asynchronous JavaScript and XML)通信。通过 DWR,开发者可以在客户端的 ...

    DWR入门教程之HelloWorld - 中文JAVA技术网.mht

    请先到 http://getahead.ltd.uk/dwr/ 下载 dwr.jar ,放到 WEB-INF/lib 下 … 负责处理客户端请求,并呼叫 Java 对象的是 DWRServlet , DWR 其实也有些 Model 2 的味道,只是 View 的这一层比较弱,因为放到客户端...

    DWR中文教程(教程实在不可多得)

    **DWR(Direct Web Remoting)...这个DWR中文教程涵盖了所有你需要知道的基础知识和实践技能,无论你是初学者还是有经验的开发者,都能从中受益。通过学习这个教程,你将能够熟练地运用DWR构建高效、互动的Web应用。

    dwr 基础教程适合初学者阅读 (是一个例子)

    这个基础教程是为初学者设计的,通过实例来讲解DWR的使用。 DWR的核心概念包括以下几个部分: 1. **Reverse Ajax**:DWR实现了Reverse Ajax,即由服务器向客户端推送数据,打破了传统的Web应用中客户端发起请求、...

    dwr实例教程 很好的入门实例

    ### dwr实例教程知识点解析 #### 一、DWR简介及功能特点 DWR(Direct Web Remoting)是一种简化Ajax应用开发的技术框架。它能够使客户端的JavaScript代码直接调用服务器端的Java方法,实现数据的实时交互。与传统...

Global site tag (gtag.js) - Google Analytics