1. 首先需要的jar,如果是maven可以添加如下依赖
<dependency>
<groupId>org.directwebremoting</groupId>
<artifactId>dwr</artifactId>
<version>2.0.1</version>
</dependency>
2.
web.xml中添加如下配置项
<servlet>
<servlet-name>dwr-invoker</servlet-name>
<servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class>
<init-param>
<param-name>classes</param-name>
<param-value>java.lang.Object</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>dwr-invoker</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>
3. 在
与web.xml平级加入dwr.xml文件,文件内容如下
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN"
"http://www.getahead.ltd.uk/dwr//dwr20.dtd">
<dwr>
<allow>
<create creator="new" javascript="testDwr"><!--创建前端所需的js实体-->
<param name="class" value="com.dwr.test.TestDwr" />
<include method="method1" /><!--该实体可以访问的方法,多个就写多个include-->
<include method="method2" />
</create>
<convert converter="bean" match="com.dwr.test.Student">
</convert> <!--javaBean对象传输配置转换器-->
</allow>
</dwr>
public class TestDwr {
public String method1(String name){
return "your name is "+name;
}
public Map<String,String> method2(String name){
Map<String,String> tmp = new HashMap<String,String>();
tmp.put("name", name);
return tmp;
}
public Student method3(String name,int age){
return new Student(name,age);
}
}
package com.dwr.test;
public class Student {
/**
*
*/
private String name;
private int age;
public Student(){
}
public Student(String name,int age){
this.name=name;
this.age=age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
5. 前端页面代码
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Expires" CONTENT="0">
<meta http-equiv="Cache-Control" CONTENT="no-cache">
<meta http-equiv="Pragma" CONTENT="no-cache">
<META HTTP-RQUIV="Refresh" CONTENT="2">
<title>test</title>
<script type="text/javascript" src="/testMaven/dwr/engine.js"></script><!--必须添加引用的-->
<script type="text/javascript" src="/testMaven/dwr/util.js"></script><span style="font-family: 微软雅黑;"><!--可选添加引用的--></span>
<script type="text/javascript" src="/testMaven/dwr/interface/testDwr.js"></script><span style="font-family: 微软雅黑;"><!--必须添加引用的当前测试js实体--></span>
<script type="text/javascript">
function testDwre1(){
testDwr.method1("jack",function(data){
alert(data);
});
}
function testDwre2(){
testDwr.method2("jack",function(data){
alert(data.name);
});
}
function testDwre3(){
testDwr.method3('jack','18',function(ddd){
alert(ddd.name+"'s age is "+ddd.age);
});
}
</script>
</head>
<body>
<a id="testDwr1" href="" class="btn4" οnclick="testDwre1();">测试DWR1</a>
<a id="testDwr2" href="" class="btn4" οnclick="testDwre2();">测试DWR2</a>
<a id="testDwr3" href="" class="btn4" οnclick="testDwre3();">测试DWR3</a>
</body>
</html>