標籤:ajax dwr js
DWR是一種Ajax實現,他就是封裝了Ajax基礎代碼的一個架構。
下面首先看一個DWR的小樣本,看一下DWR的具體功能。
使用DWR架構第一步也是先匯入相應的jar包。首先匯入dwr.jar。然後匯入他依賴的jar包,包括log4j.jar、common-logging.jar等
然後再web.xml中進行配置。
<servlet> <servlet-name>dwr_servlet</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>dwr_servlet</servlet-name> <url-pattern>/dwr/*</url-pattern> </servlet-mapping>
然後再與web.xml的同級目錄下建立dwr.xml並且添加以下內容
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 3.0//EN" "http://getahead.org/dwr/dwr30.dtd"><dwr><allow><create javascript="service" creator="new"><param name="class" value="dwr.Service"/></create></allow></dwr>
關於該XML中的內容以及寫法不進行詳細解釋,這裡只是一個示範執行個體,進行一個簡單的解釋。
dwr標籤是這個xml檔案的頂級標籤,相關的屬性標籤全都是這個標籤的子標籤。allow標籤使DWR能夠找到相應的java類。
在allow類中首先建立一個新的javascript,這個javascript的名字叫做service,create=“new”表示建立方式是new方式初始化,通過new初始化的類在param標籤指定產生的類。然後在看相應的類,這個類在包dwr下,類名叫做Service。
package dwr;public class Service {public String sayHello(String name){return "Hello "+name;}}在這個類中有個sayHello方法,這個方法返回一個字串類型結果。
然後再看在JSP頁面中如何調用,首先在JSP中有個按鈕,當點擊按鈕後觸發相應的javascript函數。
<body> <input type="button" value="DWR測試" onclick="firstDwr()"/> </body>
然後再看javascript代碼:
<script type="text/javascript" src="dwr/util.js"></script><script type="text/javascript" src="dwr/engine.js"></script><script type="text/javascript" src="dwr/interface/service.js"></script><script type="text/javascript">function firstDwr(){service.sayHello("admin",callBackHello);}function callBackHello(data){alert(data);}</script>
注意在使用前必須匯入util.js和engine.js,關於這兩個js檔案這裡不做詳細介紹。
然後將自己寫的類映射成的javascript引入。這裡的src的地址中"dwr/interface"是固定的,後面的service.js是你產生的javascript的名稱,也就是在dwr.xml檔案中使用create標籤產生的名稱。
這樣一個簡單的DWR應用程式搭建完成了。當點擊JSP頁面中的按鈕時,會彈出一個對話方塊,對話方塊的內容是“Hello admin";
DWR第一個樣本