首先DWR的jar包 dwr.jar文件放到你的工程中。DWR的使用非常简单,只要加入jar包,简单配置就可以使用了。
然后在web.xml中添加如下一段
<!-- DWRServlet -->
<servlet>
< servlet-name>dwrService</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>dwrService</servlet-name>
< url-pattern>/dwr/*</url-pattern>
< /servlet-mapping>
</web-app>
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="service">
<param name="class" value="dwr.DWRService" />
<!-- <include method="sayHello"/>
<include method="compare"/>--> <!--注:include用来注明该类中要发布的方法-->
</create>
</allow>
</dwr>
DwrServlet类的定义代码如下:
package dwr;
public class DWRService {
public String sayHello(String name){
return "Hello World,"+name;
}
public int compare(int a , int b){
if(a>b) return a;
else return b;
}
}
这些配置完成后,就可以发布了。 访问 http://localhost:8080/dwr1/dwr就可以看到发布为DWR的类,点点就去后就可以看到该类中发布的方法了,还可以测试。
接下来就是如何使用发布的DWR方法了。
我们在测试页面, index.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">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
<!--这个js文件是DWR自带的,使用DWR框架必须引入这个js文件-->
<script type='text/javascript' src='/dwr1/dwr/interface/service.js'></script>
< !--注:这里引入的js文件时发布DWR类时生成的js文件,可以通过访问http://localhost:8080/dwr1/dwr 在页面上看到-->
<script type='text/javascript' src='/dwr1/dwr/engine.js'></script>
<script type="text/javascript">
function checkInvoke(){
service.sayHello("jony",callback);
}
function callback(data){
alert(data);
}
< /script>
</head>
<body>
This is my JSP page. < br>
<input type="button" value="调用服务器方法打招呼" onclick="checkInvoke()"/>
</body>
</html>
点击页面上的按钮,就可以调用在不刷新页面的前提下调用服务器定义的方法了。 大家可以自己试一下,看看效果,这这是一个小例子,相信聪明的同行肯定能举一反三的。