1。加载DWR的jar包。
2。配置web.xml
<!-- dwr -->
<servlet>
<servlet-name>dwr-invoke</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-invoke</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>
3.在web.xml所在的目录下建立一个dwr.xml(这个xml的作用主要用于建立页面与java方法的对应法则)
<!DOCTYPE dwr PUBLIC
"-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN"
"http://getahead.org/dwr/dwr20.dtd">
<!-- 上面的说明一定要有-->
<dwr>
<!-- allow段落里面定义的试DWR可以创建和转换的类。-->
<allow>
<!--create用于定义一个在页面调用的js对象-->
<!--creator用来指定使用那种创造器,new:用于java.spring:通过Spring框架访问Bean.jsf:使用JSF的Bean.Struts:struts的formBean。pageflow:访问Beehive或Weblongic的pageflow. javascript用来定义一个页面调用后台方法的对象名称-->
<create creator="new" javascript="Demo">
<!--param用于指向接受和处理的java类。在页面可以利用Demo来调用DwrTest这个java类里的方法-->
<param name="class" value="action.DwrTest"/>
<!--如果<include method=“”/>没有配置;那class内的所有方法都是被允许调用的-->
<include method=“getName“ />
</create>
</allow>
</dwr>
4.编写java类:DwrTest
public class DwrTest {
public int getName(String name){
System.out.println("my name is:"+name);
return 1;
}
}
5,在index.html里面我们嵌入
<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/Demo.js'> </script>
首先引入DWR中的两个核心javascript库:engine.js和util.js,它们分别是dwr中的核心引擎库和辅助工具函数库!
第三个引入的dwr/interface/Demo.js,实际上这个文件并不存在,这是由dwr在运行的时候动态生成的!Demo这个名称,跟dwr.xml文件中配置的对应对象的javascript属性一致!
而且,我们在使用的时候,直接使用Dome这个名称,作为这个对象的引用。直接调用这个对象的方法:getName(),这个方法的名称必须与JavaBean中的方法名称一致!
getName()方法有一个参数,同时返回一个值。我们可以直接传递参数,同时指定一个javascript函数来处理这个返回值
index.html页面代码:
<%@ page language="java" import="java.util.*" pageEncoding="gbk"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>DWR - Test Home</title>
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="this is my page">
<meta http-equiv="content-type" content="text/html; charset=gbk">
<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/Demo.js'></script>
<script>
/*ged()函数是用来取得页面的值,并将页面的值传递给服务器*/
function ged(){
var name = dwr.util.getValue("demoName");
Demo.getName(name,haolejiaowo);
}
/* 回调函数用来获取服务器传递过来的值,并将服务器响应的值动态展示到页面上*/
function haolejiaowo(data){
dwr.util.setValue("demoReply", data);
}
/**********原始的ajax传递方式*************/
//创建XmlHttpRequest对象,首先对浏览器进行判断
function createXmlHttpRequest(){
var xmlreq=false;
if(window.XMLHttpRequest){
xmlreq=new XMLHttpRequest();
}else if(window.ActiveXObject){
try{
//创建较新版本的对象
xmlreq=new ActiveXObject("Msxml2.XMLHTTP");
}catch(e1){
try{
xmlreq=new ActiveXObject("Microsoft.XMLHTTP");
}catch(e2){
}
}
}
return xmlreq;
}
var request;
function testUse(){
var useValue=document.getElementById("demoName").value;
request=createXmlHttpRequest();//创建xmlHttpRequest对性
/*url用到了Struts1.2中的Actionneirong.需要自动以一个继承自DispathAction的Action*/
var url="user.do?method=ajaxtest&useue="+useValue;
//建立到服务器的新请求
request.open("post",url);
//向服务器发送请求
request.send();
//指定readyState属性改变时的事件处理
request.onreadystatechange=haole;
}
function haole(){
//status的状态0:未初始化。1:open方法成功调用以后。2:服务器已经应答客户端的请求。3:交互中,Http头部信息已经接收,相应数据尚未接收。4:完成。
if(request.readyState==4&& request.status==200){ //responseText
var data=request.responseText;
dwr.util.setValue("demoReply", data); }
}
</script>
</head>
<body>
<p>
Name:
<input type="text" id="demoName"/>
<input value="Send" type="button" onclick="testUse()"/>
<br/>
Reply: <span id="demoReply"></span>
</p>
</body>
</html>
分享到:
相关推荐
这个“一个DWR最简单的例子”为我们提供了一个直观的学习DWR如何工作的起点。 首先,DWR的核心概念是远程方法调用(Remote Method Invocation, RMI)。在传统的Web应用中,JavaScript主要处理前端交互,而服务器端...
在“dwr2.0最简单例子实用亲测试”中,我们可以预期这是一个关于如何使用DWR 2.0版本的入门教程,包含了实际可运行的示例代码。下面将详细介绍DWR的基本概念和在这个实例中可能涉及的关键知识点: 1. **DWR的核心...
在这个"Dwr最简单例子(2.0)"中,我们将探讨如何使用DWR 2.0设置一个基础的应用程序,以便理解其核心概念和工作原理。首先,我们需要了解DWR的基本组件: 1. **配置文件**:DWR的配置文件(通常为`dwr.xml`)定义了...
标题"Dwr最简单小例子"指的是一个简化的DWR教程或示例项目,旨在帮助初学者快速理解和应用DWR。相比于官方文档可能涉及的复杂概念和配置,这个小例子以直观易懂的方式呈现了DWR的基本工作流程。 描述中提到"官网的...
在这个"Dwr和Spring集成简单例子"中,我们将探讨如何将这两个强大的工具结合在一起,以便在Web应用中创建动态、交互性强的用户界面。 首先,我们需要在项目中引入DWR和Spring的相关依赖。这通常通过Maven或Gradle的...
在"ajax_dwr"压缩包文件中,可能包含了一个简单的DWR和Ajax结合使用的示例。通常,这个示例会包括以下几个步骤: 1. **设置DWR服务端**:首先,你需要在服务器端创建一个Java类,并定义一个可供JavaScript调用的...
一个最简单的DWR例子(一看就会)
这个“最简单的dwr例子”可能是一个入门教程,帮助开发者理解如何使用DWR来创建异步、动态的Web应用程序。 DWR的核心功能在于提供了一个桥梁,使得JavaScript可以调用服务器端的Java方法,就像它们是本地函数一样,...
这个“DWR最容易理解且最简单的例子”旨在帮助开发者快速掌握DWR的基本用法,通过一个简洁的示例来降低学习曲线。 DWR的核心功能是允许JavaScript在浏览器端直接调用服务器端的Java方法,仿佛它们是在同一环境中...
在这个名为“dwr例子”的压缩包中,包含了一个名为“dwrdemo1”的示例项目。这个项目可能是一个简单的DWR应用,用于展示如何配置和使用DWR框架。下面,我们将详细讨论DWR的关键概念和使用方法。 1. **DWR配置**: ...
在这个"一个简单的dwr例子dwrTest"中,我们将会探讨DWR的基础用法以及如何在一个MyEclipse环境中设置和运行这个入门实例。 首先,DWR的主要功能是提供AJAX(异步JavaScript和XML)的支持,使得Web应用能够无需刷新...
非常好懂,就是一个文本框,旁边一个按钮,连接了mysql数据库,在文本框里输入注册名,如果数据库里面已有,就会在旁边提示出来,用的是DWR技术,DER是ajax技术里的一个框架,简单易学,只要看了我这个例子,就可以开发出一般的...
总结来说,DWR提供了一个简单而强大的方式来实现浏览器与服务器之间的实时交互。通过学习这个入门例子,你可以了解DWR的基本使用,包括服务器端的Java类定义、dwr.xml配置、以及客户端的JavaScript调用。这只是一个...
这个“DWR做的简单登录实例”是基于DWR技术实现的一个基本用户登录系统,它展示了如何利用DWR进行异步数据交换,以及在jsp页面上进行前端交互。 在DWR的环境中,我们通常有三个主要组件:`DWR Engine`、`Servlet`和...
在这个“用DWR实现的简单购物车例子”中,我们将探讨如何利用DWR来构建一个无需数据库支持的购物车系统。 首先,我们需要了解**DWR的基本概念**。DWR的核心功能是提供一种方式,使得JavaScript可以直接调用服务器端...
这个"Dwr Eclipse简单例子"是一个快速上手的教程,旨在帮助开发者理解如何在Eclipse中配置和使用DWR。通过这个例子,你将学习到以下关键知识点: 1. **DWR框架基础**:DWR的核心是提供一种安全、高效的机制,使得...
Direct Web Remoting (DWR) 是一个开源Java库,它允许Web应用程序在浏览器和服务器之间进行实时、安全的双向通信,使得JavaScript可以调用服务器端的Java方法,就像它们是本地函数一样。这个"DWР简单教程电子书中有...
**DWR(Direct Web Remoting)实用案例** DWR 是一个开源 Java 库,它允许在浏览器和服务器之间进行实时的、双向的通信...这个例子不仅适用于初学者,也是有经验的开发者了解 DWR 最新特性和最佳实践的一个宝贵资源。
在本"第一个DWR例子源程序"中,我们将深入探讨DWR的基础概念、工作原理以及如何通过实例来实现一个简单的DWR应用。 首先,DWR的核心功能在于提供了一个桥梁,使得JavaScript可以直接调用服务器端的Java方法,而无需...
dwr最简单的实例,网上找了很多的例子,看了一下,基本上都是转载一个地方的,初学者看了会很迷茫,不过讲解的很好,我这里只是把代码整理了一下,想了解详细情况的可以上网搜索一下,要代码实现的话,可以看我共享...