1,擷取dwr.jar
http://www.getahead.ltd.uk/dwr/download.html
獲得的dwr.jar放到WEB-INF/lib目錄下
2,配置web工程的web.xml檔案
<servlet>
<servlet-name>dwr-invoker</servlet-name>
<display-name>DWRServlet</display-name>
<servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class>
<init-param>
<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>
3,建立一個dwr.xml檔案,放在WEB-INF目錄下和web.xml做伴
<dwr>
<allow>
<createcreator="new"javascript="JDate">
<paramname="class"value="java.util.Date"/>
</create>
<createcreator="new"javascript="Demo">
<paramname="class"value="your.java.Bean"/>
</create>
</allow>
</dwr>
4,按照指示,此時運行http://localhost:8080/YOUR_APP/dwr應該出現一個頁面,但是我啟動並執行時候出錯了,原因是dwr.xml檔案缺點東西。
改為:
<?xmlversion="1.0"encoding="UTF-8"?>
<!DOCTYPEdwrPUBLIC
"-//GetAheadLimited//DTDDirectWebRemoting1.0//EN"
"http://www.getahead.ltd.uk/dwr/dwr10.dtd">
<dwr>
<allow>
<createcreator="new"javascript="JDate">
<paramname="class"value="java.util.Date"/>
</create>
<createcreator="new"javascript="JString">
<paramname="class"value="java.lang.String"/>
</create>
</allow>
</dwr>
看到這個介面,我忽然有一個偉大的想法了!如果把jdk常用的類配置到這裡,那麼我們就可以很very方便的查看jdkAPI各個方法的運行結果了哈。
關於dwr.dtd的說明,請參考
http://www.getahead.ltd.uk/dwr/server/dwrxml.html
【注意】如果你使用的是dwr0.8.x版本,這樣寫可能不對。我現在用的是0.9.2b版本。
5,點擊頁面列出的Jdate,可以查看java.util.Date()各個方法的輸出,這是怎麼實現的呢?查看一下源碼,有幾個很重要的地方。
<SCRIPTsrc="/ept/dwr/interface/JDate.js"type=text/javascript></SCRIPT>
<SCRIPTsrc="/ept/dwr/engine.js"type=text/javascript></SCRIPT>
<SCRIPTsrc="/ept/dwr/util.js"type=text/javascript></SCRIPT>
6,自己完整編寫一個例子:
6.1編寫dwr.xml
<?xmlversion="1.0"encoding="UTF-8"?>
<!DOCTYPEdwrPUBLIC
"-//GetAheadLimited//DTDDirectWebRemoting1.0//EN"
"http://www.getahead.ltd.uk/dwr/dwr10.dtd">
<dwr>
<allow>
<createcreator="new"javascript="JDate">
<paramname="class"value="java.util.Date"/>
</create>
<createcreator="new"javascript="DateUtil">
<paramname="class"value="com.neusoft.ept.common.DateUtil"/>
</create>
</allow>
</dwr>
6.2編寫DateUtil類,我用的是我們的一個靜態類。
/**
*<p>Title:</p>
*<p>Description:</p>
*<p>Copyright:Copyright(c)2002</p>
*<p>Company:</p>
*@authornotattributable
*@version1.0
*/
packagecom.neusoft.ept.common;
importjava.sql.Date;
importjava.sql.Timestamp;
importjava.sql.Types;
importjava.text.SimpleDateFormat;
importjava.util.Calendar;
importjava.util.GregorianCalendar;
importjava.util.StringTokenizer;
importep.op.db.DBPersistence;
importep.rowset.TypeConvert;
publicclassDateUtil
{
publicDateUtil()
{
}
/**擷取當前資料庫的系統時間
*
*
*@parampersistence資料庫持久化對象
*@returnjava.sql.Timestamp*/
publicstaticTimestampgetSystemDatetime(DBPersistencepersistence)
{
Timestampsysdate=persistence.getSystemDate();
returnsysdate;
}
/**
*取應用伺服器的系統時間
*@returnjava.sql.Timestamp
*/
publicstaticTimestampgetSystemDatatime(){
longmillis=System.currentTimeMillis();
Timestampsysdate=newTimestamp(millis);
returnsysdate;
}
/** 功能:判斷是否是閏年.
* 輸入:year=給出的1582年以後的年份.
* 輸出:TRUE是閏年,FALSE不是.
*
*
*
*@parami_year*/
publicstaticbooleanIsLeapYear(inti_year)
{
/*能被100整除,不能被400整除的年份,不是閏年.
*能被100整除,也能被400整除的年份,是閏年.*/
if((i_year%100)==0)
return((i_year%400)==0);
/*不能被100整除,能被4整除的年份是閏年.*/
return((i_year%4)==0);
}
}
6.3編寫自己的dwr1.jsp
<%@pagelanguage="java"%>
<%@pagecontentType="text/html;charset=GBK"%>
<html>
<head>
<SCRIPTsrc="/ept/dwr/interface/DateUtil.js"type=text/javascript>
</SCRIPT><SCRIPTsrc="/ept/dwr/engine.js"type=text/javascript>
</SCRIPT><SCRIPTsrc="/ept/dwr/util.js"type=text/javascript></SCRIPT>
</head>
<bodyonunload="_sysunload.unload();">
inputtheyear<inputtype="text"value="1999"id="isleapyear">
<inputtype="button"value="execute"onclick="isleapyear()"/>
</body>
</html>
<scriptlanguage="javascript">
functionisleapyear(){
varyear=document.getElementById("isleapyear").value;
DateUtil.IsLeapYear(reply,parseInt(year,10));
}
reply=function(data){
alert(data);
}
</script>
6.4運行
http://localhost:8080/ept/dwr1.jsp