web.xml文件配置
<?xml version="1.0" encoding="GBK"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
<!-- 配置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-pattern>/dwr/*</url-pattern>
</servlet-mapping>
</web-app>
Java处理类
package com.lbx.dwr.json.test;
public class Test1 {
public String sss(String name){
System.out.println("Test1.test()");
return name + ",你好!";
}
}
dwr.xml文件的配置
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 3.0//EN" "http://getahead.org/dwr/dwr30.dtd">
<dwr>
<allow>
<create creator="new" javascript="Demo">
<param name="class" value="com.lbx.dwr.json.test.Test1"/>
</create>
</allow>
</dwr>
客户端jsp的代码
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
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>
<base href="<%=basePath%>">
<title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!-- 导入DWR为Demo对象动态生成的JavaScript代码库 -->
<script type='text/javascript' src='dwr/interface/Demo.js'></script>
<!-- 导入DWR引擎的核心JavaScript代码库 -->
<script type='text/javascript' src='dwr/engine.js'></script>
<!-- DWR的工具JavaScript文件,通过这工具的工具方法可以简化DOM操作 -->
<script type='text/javascript' src='dwr/util.js'></script>
<script type="text/javascript">
function sendMessage(){
var username = $("name").value;
Demo.sss(username,callbackAdapter);
}
var fromBrowser = "客户端";
//回调函数
function callbackAdapter(fromServer)
{
msg(fromServer,fromBrowser);
}
//真正回调的函数
function msg(fromServer,fromBrowser){
var show = $("show");
show.innerHTML += "服务器端数据:" + fromServer + "<br>";
show.innerHTML += "浏览器端数据:" + fromBrowser;
}
</script>
</head>
<body>
<h3>
回调函数访问客户端参数
</h3>
请输入您的名字
<input id="name" name="name" type="text" />
<br />
<input type="button" value="发送请求" onclick="sendMessage();" />
<hr />
下面是服务器的回应:
<br />
<div id="show"></div>
</body>
</html>
注意:上面DWR中将客户端参数传递到回调函数的时候,利用了适配器模式。。。。。。
相关推荐
接下来,在JavaScript中,我们可以调用这个服务器端的方法,传递参数并提供一个回调函数来处理返回的结果: ```javascript var huMain = DWRUtil.createProxy('MyAction'); // huMain 是 DWR 创建的代理对象 ...
若Java方法返回一个JavaBean对象,如`callTestMethod4`,可以使用回调函数`callBackFortestMethod4`接收返回的对象,并通过遍历其属性来访问和展示数据。 5. **有JavaBean参数的Java方法调用**: 调用带有...
5. **处理响应**:DWR会自动处理服务器的响应,将其传递给相应的回调函数。开发者可以在回调函数中处理这些数据,更新页面的相应部分。 DWR还提供了其他功能,如批量调用、缓存控制、错误处理等,以提高性能和用户...
DWR提供了回调函数机制,当服务器响应时,会调用预先定义的JavaScript函数,将结果传递给该函数处理。 3. **JavaBean操作**: DWR可以轻松地与JavaBean进行交互。在服务器端,你可以创建一个JavaBean,包含你需要...
例如,`callTestMethod2`调用`testMethod2`并传递`callBackFortestMethod2`作为回调函数,此函数将接收到`testMethod2`的返回值。 3. **有简单参数的JAVA方法调用** 在配置文件中包含调用的方法后,在JavaScript中...
在客户端,你可以使用DWR的API注册一个回调函数,当服务器调用`pushNewMessage`时,这个函数会被执行,显示接收到的消息: ```javascript var ServerPushService = DWRUtil.createProxy('ServerPushService'); ...
5. **通信机制**:当用户点击按钮触发`update()`函数时,`sayHello`方法被调用,传递参数并附带一个回调函数。DWR引擎使用JSON或其他序列化格式将调用封装成HTTP请求发送到服务器。 6. **服务器处理**:服务器端的...
5. **处理回调**: 服务器响应后,DWR会调用预先定义的回调函数,将结果传递给前端进行处理。 在提供的文件中,`DWR 中文帮助.pdf`可能包含了DWR的详细文档和使用指南,帮助开发者更好地理解DWR的配置和API。`总结...
})`这段代码调用了`MyTest`对象的`getMyName`方法,当方法执行完毕,服务器返回的数据会被传递给回调函数,并设置到页面元素`demo1`的值中。如果遇到问题,检查拼写错误、库文件是否正确引入,以及JavaScript和DWR...
`firstDwr()`函数调用了`ajaxjs.sayHello()`,传递了一个参数"Jorwen",并定义了一个回调函数`callBackHello`来处理返回的数据。`hello()`函数则获取用户输入的值,并通过`sayHello()`方法传递给服务器,同样有一个...
**8.3 传递额外的数据到回调函数**:除了基本的返回结果外,还可以传递其他数据到回调函数,增强应用程序的功能性和灵活性。 **8.4 从其他URL读取数据**:DWR不仅支持从本地服务器获取数据,还可以跨域调用其他...
如`callTestMethod2`函数中,调用`testMethod2`并传递`callBackFortestMethod2`作为回调函数,当Java方法执行完毕后,`callBackFortestMethod2`会接收到返回的数据。 3. **有简单参数的Java方法调用** 参数的传递...
5. **服务器推送数据**:当服务器端有新的数据可用时,它会通过持久连接找到对应的客户端,调用预先注册的回调函数,将数据传递给客户端。 **三、DWR反推的优势** 1. **实时性**:DWR反推技术提高了Web应用的实时...
调用`testClass.testMethod2()`时,传递一个函数作为参数,如`callBackFortestMethod2`,DWR会自动调用这个回调函数并将返回值传入。 3. **调用有简单参数的JAVA方法** 调用Java方法时可以传递参数。在JavaScript...
例如,服务器端有一个方法`getString()`返回一个字符串,DWR会自动将这个字符串传递给JavaScript回调函数。这在显示消息、错误信息或者简单的数据交换中非常有用。 2. **返回对象**: DWR支持将Java对象转换为JSON...
- `subscribeMessage`方法允许客户端注册一个回调函数,当有新消息时,服务器会调用这个函数,将消息推送给订阅者。 3. **JavaScript前端**: - 使用DWR的API创建一个DWR引擎实例,连接到服务器上的`Message...
在DWR中,当远程方法执行完毕,DWR会自动调用预定义的回调函数,将结果传递给前端。这使得开发者可以方便地处理异步调用的结果,如更新UI或处理错误。回调函数通常包含两个参数:`data`(返回的数据)和`error`...
回调函数`callback`接收返回的数据,并根据需要处理这些数据,例如动态渲染表格。 6. **数据处理和显示**: 回调函数`callback`中,数据`data`是服务器端方法`getDwr`返回的对象。如果数据为空,清空表格数据;...
有时候,我们需要在服务器端方法执行完毕后执行某些操作,这时就需要使用回调函数。 1. **配置dwr.xml** 配置与上文基本相同,只是在调用方法时传入一个回调函数: ```xml <dwr> ...