第一個dwr
第一個DWR
感謝
首先感謝http://blog.csdn.net/caterpillar_here/archive/2006/09/06/1186566.aspx,從這里學的第一個dwr并調試成功了,和網友們共同分享項目簡介和準備
我做的這個dwr的項目目錄目錄如下:1) http://getahead.ltd.uk/dwr/上下載dwr.jar,然后放到WEB-INF/lib下
2) 編寫web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>ajaxDWR</display-name>
<servlet>
<servlet-name>dwr-invoker</servlet-name>
<servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class>
<init-param>
<description></description>
<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>
</web-app>
3) 編寫Hello.java
package onlyfun.caterpillar;
public class Hello {
public String hello(String name) {
return "Hello!" + name + "!您的第一個DWR!";
}
}
4) 編寫dwr.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN"
"http://www.getahead.ltd.uk/dwr/dwr10.dtd">
<dwr>
<allow>
<create creator="new" javascript="Hello">
<param name="class" value="onlyfun.caterpillar.Hello"></param>
</create>
</allow>
</dwr>
5) 編寫index.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>第一個DWR</title>
<script type='text/javascript' src='dwr/interface/Hello.js'></script>
<script type='text/javascript' src='dwr/engine.js'></script>
<script type='text/javascript' src='dwr/util.js'></script>
<script type='text/javascript' src='hello.js'></script>
</head>
<body>
<input id="user" type="text" />
<input type='button' value='hello' onclick='hello();' />
<div id="result"></div>
</body>
</html>
解釋:dwr/interface/Hello.js是由DWRServlet根據dwr.xml中的設定生成的,engine.js負責客戶端伺服端溝通,util.js是一些好用的JavaScript程序,可以讓你少寫很多JavaScript。
6) 編寫hello.js
function hello() {
var user = $('user').value;
Hello.hello(user, callback);
}
function callback(msg) {
DWRUtil.setValue('result', msg);
}
解釋:${'user'}取得輸入欄位的DOM物件,value取得當中的欄位值,而后呼叫Hello.hello(),并將value當作參數傳送,結果是呼叫Server端的Hello Java物件,當結果傳回后,會呼叫JavaScript的callback函數,DWRUtil的setValue()方法會將傳回的msg設定給指定id的DOM。
ok,到此結束。
http://www.aygfsteel.com/Files/kingaragorn/demo.rar