看看如何在Struts應用中施展AJAX魔法(1)

來源:互聯網
上載者:User

AJAX是最近在web開發流程中一次革命,它允許在一個普通的web瀏覽器中配置大量的動態效果。多年前Struts 都已經是Java-Web開發中的一個事實上的標準,在大量的應用中都已經使用了它。本文將告訴你,如何在你已經存在Struts應用中結合豐富的AJAX使用者介面?

什麼是AJAX?

AJAX是“非同步JavaScript和XML”的縮寫。這是一項技術,而不是一個如Struts一樣的架構。為什麼在AJAX周圍會有這麼多的關注呢?這是因為AJAX使web頁面看起來並不像一個平面的文檔,而更像使用者所期望的如案頭應用的動態GUI應用程式。AJAX技術能在很多的瀏覽器上使用包括IE和Netscape/Mozilla)。它已經為Microsoft用於Outlook的web用戶端)和Google使用者Google Maps和Gmail)所使用。

未使用AJAX之前

目前大多數的Struts應用都是標準的“如同一個平面文檔的web頁面”的結構。如果你想模仿一些傳統型應用程式比如那些使用Java Swing,Visual Basic,或者Delphi建立的應用程式),那麼你有兩個選擇:你可以發送所有的可能作為頁面的一部分被請求的資訊,使用大量的JavaScript來操作其動態顯示一個很慢並且非企業級Java的方法);或者你可以不改變形式地提交到後台伺服器一種有效方法)。AJAX提高給你了融合前面的最佳解決方案:動態頁面,但是大多數的應用是在你的web伺服器的Java程式來處理的。

AJAX 101

AJAX和現有的動態HTML技術非常相似,並在其上增加了一個發送到“後台”伺服器的請求來擷取需要的新的或者更新的資訊。AJAX的機制在其他地方已經有詳細的說明――請查看本文後的Resources來擷取更多。但是你至少需要知道:

1.XMLHttpRequest如果你使用的是IE瀏覽器的話,則是Microsoft.XMLHTTP的ActiveX的對象)。這些對象,你可以在web頁面中使用JavaScript調用。他們允許你作為背景調用方式來請求web伺服器的內容例如,在表單提交後,螢幕並不像平時一樣顯示“空白”)。

2.XMLHttpRequest 和Microsoft.XMLHTTP 返回的內容可以作為XML或者文本來處理。JavaScript在你頁面上的)可以使用請求的新內容來更新頁面。

3.整個處理過程可以由普通的JavaScript事件來觸發:onclick,onchange,onblur等。

在你的Struts應用中使用AJAX

你閱讀了本文,然後你會對使用AJAX來建立動態web頁面感興趣,並且想知道如何將它加入到你的Struts應用中。這隻是選擇之一。那麼你會如何選擇呢?

◆等待,知道Struts的下一個版本融合了AJAX技術。如果Struts開發人員準備開發一個新的應用,這或許會是一個好的選擇。再後面,可能會是要求JSF也這樣做――對其本身並不一件壞事,但是對於已經存在的系統這將會帶來最根本的改變。
◆你也可以直接採用新的方法,比如Direct Web Remoting (DWR) 和Ruby on Rails,這些都是專為建立AJAX應用的。如果你考慮不使用Struts來開發web的話,那麼這些都是很又用的架構,並且值得一試。但是,這也同時意味著你必須要重寫你的應用。
◆在你已經存在的Struts應用中增加AJAX。既然AJAX只是一項技術而並非架構,那麼它就很容易融入到Struts中。作為現有的系統,其穩定性如,保持現有的庫檔案)是相當重要的。所以這個方法被推薦,並且我們將在後面詳細介紹。

我們選擇在Struts應用中增加AJAX的優勢是:

1.它並不需要任何新的庫檔案或者伺服器代碼;只需要使用現有的Struts庫檔案和action。
2.解決方案中所有部分――JavaScript,XML,Java和Struts――早已為廣泛所知。
3.此應用可以一塊一塊地移植到AJAX;我們可以確定哪些部分對使用者有益,並首先將它們更新到動態AJAX顯示。

實現方案

我們如何真正的貫徹我們的選擇呢?我們首先應該注意一個“標準的”沒有AJAX)Struts應用是如何工作的。在此應用中,一個一般的事件流程如下:

1.使用點擊超連結或者表單的提交按鈕,使用者發送請求。
2.web伺服器運行處理請求的Struts Action來產生一個web頁面。
3.瀏覽器顯示web頁面。
4.當使用者點擊儲存的時候,資訊由Struts架構中一個ActionForm類來轉換並發送到伺服器。
5.然後,Struts架構調用Struts Action來出來請求如,儲存資料到資料庫中)。
6.頁面再一次回傳,處理流程繼續。

現有的Struts應用

一個示範事件流程的簡單Struts應用可以在以下地址下載: struts-non-ajax.zip。此基於Struts的應用,是基於使用者的輸入顯示或者隱藏藍色和綠色的表格。圖1顯示了載入初始頁面的畫面。圖2顯示了使用者輸入值並點擊了提交後的畫面。雖然簡單,但它已經足以表示一個Struts的工作流程。

圖1:沒有AJAX的例子:啟動顯示畫面

圖2:沒有AJAX的例子:輸入值並點擊了提交


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.