(1)dwr與ssh框架整合教程dwr框架介紹。

DWR(Direct Web Remoting)是一個用於改善web頁面與Java類互動的遠端伺服器端Ajax開源框架,可以幫助開
發人員開發包含AJAX技術的網站.它可以允許 在瀏覽器裡的程式碼使用執行在WEB伺服器上的JAVA函式,就像它就在瀏覽器裡一樣。它包含兩個主要的部
分:允許JavaScript從WEB伺服器上一 個遵循了AJAX原則的Servlet中獲取資料.另外一方面一個JavaScript庫可以幫助網站
開發人員輕鬆地利用獲取的資料來動態改變網頁的內 容.DWR採取了一個類似AJAX的新方法來動態生成基於JAVA類的JavaScript程式碼.這樣
WEB開發人員就可以在JavaScript裡使 用Java程式碼就像它們是瀏覽器的原生代碼(客戶端程式碼)一樣;但是Java程式碼執行在WEB伺服器端
而且可以自由訪問WEB 伺服器的資源.出於安全的理由,WEB開發者必須適當地配置哪些Java類可以安全的被外部使用.  
這個從JAVA到JavaScript的遠端功能方法給DWR的使用者帶來非常像傳統的RPC機制,就像RMI或者SOAP一樣,而且擁有執行在WEB上但
是不需要瀏覽器外掛的好處.DWR不認為瀏覽器/WEB伺服器協議是重要的,而更樂於保證程式設計介面的簡單自然.對此最大的挑戰就是把AJAX的非同步特性和
正常JAVA方法呼叫 的同步特性相結合.在非同步模式下,結果資料在開始呼叫之後的一段時間之後才可以被非同步訪問獲取到.DWR允許WEB開發人員傳遞一
個回撥函式,來非同步處理 Java函式呼叫過程.

(2)引入dwr包,本例採用的版本是dwr2.0.5。將dwr.jar包引入到專案的WEB-INF/lib目錄下。
如圖,引入成功後,檢視可以瞭解相關資訊。

(3)在web.xml中配置dwr的相關資訊。如下所示 

注:相關的引數說明在圖中已經給出解釋。

(4)在web.xml同目錄下新建dwr.xml檔案。
其初始配置如下

配置部分已經完成,下面使用一個例子說明dwr的具體配置,例子採用的是ssh的程式,並將使用者登陸部分改成以dwr技術實現。

(5)後臺業務邏輯。首先編寫業務處理的action方法

方法名為showHello(String name,String passpword),通過傳入的name和password來新增新使用者,如果成功返回success否則返回fail.具體實現 
如下:

方法名為showAdd(User u),通過傳入的User物件新增新使用者,如果成功返回success否則返回fail.具體實現 如下:

方法名為showList(),通過呼叫Service層的getUsers方法返回使用者List<User>集合.具體實現 如下:

具體方法實現如下:

(6)配置dwr.xml檔案。將showHello、showAdd、showList方法配置到dwr.xml中,使其可以訪問。 具體的配置以及解釋如下:

(7)配置dwr框架的除錯功能,使其可以進行視覺化除錯。具體方法是設定web.xml中dwr配置下的debug為true.

設定成功後重新部署專案,啟動伺服器。在瀏覽器中輸入localhost:埠名稱/專案名稱/dwr即可開啟dwr的除錯頁面,比如我的專案名稱是
ssh,埠號是80,則網址為:http://127.0.0.1:8080/combine/dwr/index.html,開啟後出現如下頁面:

如果看到如上頁面,說明你的dwr已經配置成功,下面就是測試方法是否能正常執行。點選Hello方法將開啟如下頁面(部分截圖):

上圖包含三部分,第一部分是:

它指明瞭後臺方法的js實現的js檔案位置和dwr引擎的位置,這兩個js檔案為必須按專案,必須包含在頁面檔案上才能正常呼叫dwr框架。第二部分為可選內容,建議也包含在頁面檔案上。

第三部分為宣告的方法,下面列出了全部的方法,但是有紅色警告的不能使用,因為返回值不是基本的資料型別,而且在配置dwr資訊時沒有宣告其訪問許可權。只有

沒有任何警告資訊表明其可以正常訪問。

(8)除錯頁面測試方法能否正常執行。找到showHello方法

,在兩個引數中輸入我們的使用者名稱和密碼(rush 123456),如下所示:

,點選Execute執行該方法,如出現如下結果,則表明執行成功:

。說明:除錯頁面是為了方便除錯用的,在實際釋出後請關閉其除錯功能。

(9)編寫前臺實現程式碼。
test_hello.html用來測試showHello方法test_add.html用來測試showAdd方法test_list.html用來測試showList方法下面先講test_hello.html建立test_hello.html

在 頁面中引入剛剛提到的三個js提交按鈕新增onclick效果,執行的方法為OnSave()下面引入js

說明:username 和password分別獲取網頁上控制元件的使用者名稱和密碼值,兩個if判斷其值是否為空,如果為空,提示使用者並且終止提交,從而實現
登陸驗證。User.showHello:Hello是後臺dwr配置中的js名稱,showHello是後臺業務邏輯實現函式,此函式有三個
參 數,username和password是入參,CallBackMsg是一個回撥函式,系統將返回值放在回撥函式裡面顯示。

(10)程式碼工作完成,現在進行實際測試。重新部署專案,啟動伺服器。在瀏覽器中開啟網頁:

首先填寫口令及姓名都為222,提交資料後顯示:

下面檢視一下資料庫是否存在該資料:

資料顯示正常。下 面我們再回到頁面,重複提交一遍資料。

提示fail。說明使用者禁止重複提交資料,showHello()功能完成。(11)如test_hello.html的操作方法,我們建立
test_add.html及test_list.html首先是test_add.html因為它與test_Hello.html功能相似都是提交數
據功能。而唯一與test_hello.html不同的是接受的資料不同。Test_add對應函式是

它需要接收一個User物件,所以這時一定要設定dwr.xml中的convert物件

該程式會自動將資料轉換成User物件。該頁的html程式碼與test_Hello.html相同,只是js不同,js如下:

下面趕緊測試一下:http://127.0.0.1:8080/combine/test_add.html如果效果相同,則證明功能完成。

(11)test_list.html測試showList()方法兩點需要注意:第一showList()為無參方法,所以只需要傳入回撥函式即可。第二返回的資料為物件陣列,使用for語句進行資料讀取。Html程式碼如下:

下面測試功能:http://127.0.0.1:8080/combine/test_list.html

沒錯就是一個按鈕:點選按鈕後頁面顯示如下:

Ok,全部完成。

參考文件:http://www.cnblogs.com/a7345678/archive/2008/10/23/1317982.html
http://www.cnblogs.com/rushoooooo/archive/2011/04/28/2032325.html

轉:http://blog.csdn.net/e421083458/article/details/8806252