天天看點

ajax/dwr/struts執行個體開發(轉)

2005是Ajax最火爆的年份,以gmail為先驅的Ajax應用已經逐漸深入人心了。也許這就是所謂的輪回吧,計算機界面的設計從最初瘦到胖再到瘦,如今又要開始胖了。不過,在web界面的胖與之前的胖還是有很多差別的,web界面的胖主要依賴于DHML和Javascript來實作。這也是本文的來由了,相信很多OO的開發人員都不願與頁面層的效果打交道,尤其是Javascript的這樣的開發語言,我也是其中之一了,非常不喜歡 Javascript,文法松散,結構複雜。反正是不喜歡了,但是在web時代,既然流行胖子,想不用Javascript是不可能的了,那麼怎麼樣來簡化Ajax的開發呢?DWR由此延生了,他封裝了XMLHttpRequest,直接調用服務端的方法,省了好多Javascript啊^_^

Struts雖然已經開始開下陡路,但底子厚,将DWR與Struts結合依然會是大多數開發者的選擇。

本文分兩部分:架構介紹和執行個體開發。先來:

第一部分 架構介紹

一、Ajax介紹

Ajax--Asynchronous JavaScript and XML,異步JavaScript和XML。

名字中已經包含Ajax的組成部分:異步處理XMLHttpRequest,JavaScript,XML。

其中:

1、XMLHttpRequest是Ajax的關鍵部分,正是由于他的存在,才使得胖子越來越吃香了。

2、JavaScript是Ajax的必備部分,沒有他還玩個屁

3、XML是Ajax資料格式的推薦方式,但也可以不用

當然還少不了CSS,有了CSS使得在Ajax中更容易修改使用者的界面

Ajax的細節和樣例使用就不多說了,N多的資源,自己找吧。

二、DWR介紹

DWR-Direct Web Remote,翻譯過來應該是直接遠端網頁通路。(這個Web一直找不到好的詞語來表達,這裡就用網頁吧)

如名字所述,DWR的主要特點就是可以在Ajax中直接調用伺服器上的方法,很奇妙吧。就是說,不需要通過URL來告訴服務來處理,而是直接在Javascript中調用類的方法,并傳回資料。

DWR簡化了Ajax的開發:

1、封裝了Ajax中的使用,不再需要直接使用XMLHttpRequest了,這可是非常重要的,減少了好多Javascript呀

2、通過回調函數的方式,簡化了錯誤處理及傳回資料的處理。

3、直接調用伺服器類的方法,不再需要通過URL方式,也省了不少的事。

DWR的主要部件有:dwr.xml/engine.js/util.js,前者是DWR的Servlet使用的配置檔案,後兩者DWR替我們封裝的Ajax的代碼,當然也提供了其他有用的功能。

三、Struts介紹

Struts還用介紹嗎?沒聽說過?那就不用往下看,休息休息吧^_^

這裡就說一下在DWR如何調用Struts中Action的方法吧,說白了,是不可能的。這不是白說嗎#[email protected][email protected]%@#

實際上是這樣的,雖然DWR支援方法的調用,但ActionForward/ActionForm/ActionMap這些東西如何在DWR調用方法前生成呢?我也不知道,是以DWR對Struts的支援實際上就是要重構Action中的方法,去掉上面的東西,然後就可以了(這是DWR說的,可不是我說的 ^_^)。

看了上面的一小通介紹,不知道大家有沒有什麼感覺,我也覺得寫得太少了,可能看了跟沒看差不多。不過這裡主要是想大家對這些概念有個了解。接下來的第二部分,将會以執行個體開發的方式來寫,這樣就更容易依樣畫葫蘆了(我也比較喜歡這樣的方式)。

繼續閱讀