Ajax-DWR架構簡單一實例

來源:互聯網
上載者:User

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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.