web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
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">
<listener>
<listener-class>org.directwebremoting.servlet.DwrListener</listener-class>
</listener>
<servlet>
<servlet-name>dwr-invoker</servlet-name>
<servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
<!-- This should NEVER be present in live -->
<init-param>
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>
<!--
For more information on these parameters, see:
- http://getahead.org/dwr/server/servlet
- http://getahead.org/dwr/reverse-ajax/configuration
-->
<load-on-startup>0</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.jsp</welcome-file>
</welcome-file-list>
</web-app>
配置文件价格Convert
<?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>
<!-- intro - for the test on index.html -->
<create creator="new" javascript="service" scope="application">
<param name="class" value="com.Test"/>
</create>
<convert match="com.DwrObj" converter="bean" javascript="DwrObj"></convert>
</allow>
</dwr>
远程代码
package com;
public class Test {
private String message;
/**
* @param args
*/
public String helloWorld(String hello){
System.out.println("调用了"+hello);
return "hello world"+hello;
}
public DwrObj testObj(DwrObj java){
System.out.println("调用了");
return java;
}
public static void main(String[] args) {
}
}
html测试
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<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/service.js'> </script>
<script type='text/javascript' src='../dwr/interface/DwrObj.js'> </script>
<script type="text/javascript">
function hello(){
var ds=new DwrObj();
ds.message="hahaha";
//var ds={
// "message":"dajiahao";这样写也行
//};
service.testObj(ds,resultHandle);
//service.helloWorld("helloWOrld",resultHandle);
}
function resultHandle(data){
alert(data.message);
}
</script>
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<button onclick="hello()"> </button>
This is my JSP page. <br>
</body>
</html>
分享到:
相关推荐
2. **返回对象**: DWR支持将Java对象转换为JSON格式,然后在JavaScript中解析。假设你有一个Java类`Person`,包含姓名和年龄属性,你可以创建一个`Person`对象并返回。DWR会将其转换为JSON字符串,JavaScript端...
下面将详细解释DWR返回对象的处理,包括如何获取和处理不同类型的数据,如list、Map、Set以及JavaBean。 1. **无返回值和参数的Java方法** 在`dwr.xml`配置文件中,我们定义一个名为`testClass`的JavaScript接口,...
对于返回JavaBean的方法,DWR会自动将JavaBean转换为JavaScript对象。配置如下: ```xml <param name="class" value="/com/dwr/TestClass"/> ``` 在JavaScript中,你将得到一个JavaScript对象,可以...
- `dwr.xml` 文件是DWR的核心配置文件,用于定义哪些Java对象和方法可以被JavaScript访问。 - `<allow>` 标签定义了可以暴露给JavaScript的权限范围。 - `<create>` 标签创建一个JavaScript对象,该对象可以调用...
在处理JSON数据时,DWR提供了自动序列化和反序列化机制,将Java对象转换为JSON字符串,然后传递给客户端,客户端再将这些字符串解析成JavaScript对象。 要使用DWR返回JSON数据,首先需要在服务器端设置DWR配置。...
3. **错误处理**:DWR调用的服务器端方法如果抛出异常,可以捕获并将异常信息返回给客户端,此时可以利用DWR的错误处理机制,而不是依赖JSP的`exception`内置对象。 4. **页面更新**:DWR可以更新客户端的HTML元素...
总之,DWR框架提供了一种高效、灵活的方式,使得Web应用可以像操作本地对象一样调用服务器端的Java方法,从而提升Web应用的交互性和实时性。通过合理配置和使用,开发者可以构建出强大的富客户端应用。
4. **返回对象为字符串**: 服务器端的方法返回一个字符串时,DWR会将其原封不动地传递回JavaScript。这常用于返回简单的提示信息或者JSON格式的数据。 5. **返回自定义对象**: 同样,服务器端可以返回自定义的...
若Java方法返回一个JavaBean对象,如`callTestMethod4`,可以使用回调函数`callBackFortestMethod4`接收返回的对象,并通过遍历其属性来访问和展示数据。 5. **有JavaBean参数的Java方法调用**: 调用带有...
在实际开发中,我们经常需要传递和处理复杂的对象,比如自定义的实体类。DWR可以映射这些对象到JavaScript对象,使得前端可以直接操作。你需要确保实体类有对应的getter和setter方法,DWR会自动处理这些对象的序列...
**8.3 传递额外的数据到回调函数**:除了基本的返回结果外,还可以传递其他数据到回调函数,增强应用程序的功能性和灵活性。 **8.4 从其他URL读取数据**:DWR不仅支持从本地服务器获取数据,还可以跨域调用其他...
在"文件上传"和"返回对象"这两个核心知识点中,我们可以深入探讨DWR如何处理这些任务。 **文件上传** 在Web应用中,用户经常需要上传文件,如图片、文档等。DWR 3.0 提供了一种方便的方法来处理文件上传。首先,你...
})`这段代码调用了`MyTest`对象的`getMyName`方法,当方法执行完毕,服务器返回的数据会被传递给回调函数,并设置到页面元素`demo1`的值中。如果遇到问题,检查拼写错误、库文件是否正确引入,以及JavaScript和DWR...
在这个“dwr返回JavaBean的例子”中,我们将探讨如何利用DWR将JavaBean对象从服务器端传递到客户端,以便在用户界面中直接使用。JavaBean是一种符合特定规范的Java类,通常用于封装数据和提供业务逻辑。 首先,我们...
2. **列表(List)**操作:DWR支持传递和返回Java集合,包括List。在JavaScript端,可以接收一个由Java List转换来的数组,然后对其进行遍历、添加、删除等操作。这极大地扩展了前端的处理能力,使得动态更新列表数据...
4. **配置DWR**:创建一个名为`dwr.xml`的文件,放置在`WEB-INF`目录下,用于告诉DWR哪些Java对象和方法可以被客户端访问。在这个文件中,我们需要配置`Citys`类的创建规则。 ```xml <dwr> <!-- 城市列表分类 --...
- 在`dwr.xml`配置文件中,`<allow>`标签定义了哪些对象和方法可以被JavaScript访问。 - `<create>`标签用于创建一个JavaScript对象,`creator="new"`表示使用默认构造函数实例化Java类。`javascript="testClass"`...
当Java方法返回一个JavaBean对象时,DWR会自动将其转换为JavaScript对象。配置与上述类似,但Java方法`testMethod4`应返回一个JavaBean,例如`TestBean`。在JavaScript端,接收到的返回值可以直接用于操作,因为DWR...
- **Java和JavaScript之间的映射**:DWR自动处理Java对象与JavaScript对象之间的类型转换,使得数据交换更加方便。 - **安全性和隔离**:DWR有内置的安全机制,防止恶意的跨站脚本攻击(XSS)和其他安全风险。 2....
Direct Web Remoting (DWR) 是一种在Java服务器和JavaScript之间进行实时通信的技术,它允许在客户端的JavaScript中调用服务器端的Java方法,并将结果返回到JavaScript中。在这个场景中,我们关注的是如何在DWR回调...