ajax有很多开源的框架,DWR是其中一种,其他的框架还有buffalo等
使用dwr有以下几个步骤:
1.导入dwr.jar包
2.在web.xml上配置dwr
<servlet>
<servlet-name>DwrServlet</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>DwrServlet</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>
3.配置dwr.xml(参照jar包里的配置)
<dwr>
<allow>
<create creator="new" javascript="JHello">
<param name="class" value="com.wepull.dwr.Hello"></param>
</create>
</dwr>
4.自定义类(配置在dwr.xml上,类里面提供具有返回类型的方法)
package com.wepull.dwr;
/** 和DWR关联的类
* 1.一定配置在dwr.xml上
* 2.方法一定要有返回值
* 3.不要写重载的方法
* @author Administrator
*
*/
public class Hello {
public String greet(){
return "你好";
}
public String greet2(String who){
return who+",你好";
}
public String[] getArray(){
return new String[]{"aaa","bbb","ccc"};
}
}
5.写客户端
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>第一个DWR实例</title>
<script type='text/javascript' src='/DWR/dwr/interface/JHello.js'></script>
<script type='text/javascript' src='/DWR/dwr/engine.js'></script>
<script type='text/javascript' src='/DWR/dwr/util.js'></script>
<script type="text/javascript">
function fn(){
//使用远程服务器上的Hello类的不带参的方法
//JHello.greet(callback);
//使用远程服务器上的Hello类的带参的方法
//JHello.greet2("普承",callback2);
//使用远程服务器上的Hello类的返回数组的方法
JHello.getArray(callback3);
}
//回调函数1
function callback(data){
alert(data);
}
//回调函数2
function callback2(result){
alert(result);
}
//回调函数3
function callback3(result){
alert(result.length);
for(var i=0;i<result.length;i++){
alert(result[i]);
}
}
</script>
</head>
<body>
<input type="button" value="DWR测试1" onclick="fn()">
</body>
</html>
6.启动服务器 访问Servlet (http://localhost:8080/DWR/dwr)