閑來無事,感覺好久沒用DWR了,很多配置都忘記了,是以特地做了一個執行個體程式,溫習一下。下面介紹一些具體的做法。
首先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>
< url-pattern>/dwr/*</url-pattern>
< /servlet-mapping>
</web-app>
dwr.xml配置如下:
<?xml version="1.0" encoding="UTF-8"?>
< 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;
}
接下來就是如何使用釋出的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>
<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>
點選頁面上的按鈕,就可以調用在不重新整理頁面的前提下調用伺服器定義的方法了。 大家可以自己試一下,看看效果,這這是一個小例子,相信聰明的同行肯定能舉一反三的。