top
Loading...
構建適用不同客戶端的J2EE網絡應用程序

引言:學習如何使用構造不僅支持瀏覽器而且還支持WAP、IMODE及其他客戶端設備的國際化網絡應用程序。

在今天競爭日趨激烈的世界上,許多商業行為變得越來越全球化,以便達到最大的收益。 這就成了一個問題,因為由那些商業機構開發的應用程序必須適用于許多國家里使用不同語言的消費者。 使事情變得越來越復雜的是,以前功能有限的應用程序客戶端—臺式電腦和瀏覽器—也在快速的發展。新的客戶端類型包括便攜計算機、手提電話和其它小型設備。所以,國際經營機構有必要增加開發和設計成本合算、可升級并可維護的具有把內容是用多種語言發送到多種設備上的解決方案--換句話說,就是在全球經濟圈中把應用程序發送到不同的客戶端上。

本文是一個個案研究,設計并且開發一個基于J2EE的可擴充的、可升級的并且經濟合算的應用程序以滿足不同客戶端的需要。樣品應用程序的目標不僅是個人計算機用戶而且可以是WAP移動式電話和iMode電話,而且它使用可針對各個地區需要定制和可本地化的國際化技術來迎合國際社會。


圖1:一個典型的應用程序方案,使用不同的運行于一個公共服務器的基于國際互聯網絡的應用程序的用戶設備。

使用根據客戶端語言與設備的多種格式和語言應答的需要意味著必須執行兩個主要任務的服務器應用程序:

1. 為提出請求的設備確定適當的輸出格式,舉例來說:

· 如果請求是從Web上發出的,那么輸出HTML格式。

· 如果請求是從一個iMode設備上發出的,那么輸出CHTML格式。

· 如果請求是從一個WAP設備上發出的,那么輸出WML格式。

2. 支持I18N(國際化)。 那意味著輸出將使用適當的語言,而且日期和數字格式也應該與客戶端所在的地區匹配。

名為“網關(gateway)”的專用服務器軟件模塊把客戶端的請求翻譯成為HTTP請求。 舉例來說,一個WAP網關負責把WSP請求轉換成為HTTP請求(反之亦然)以及分析和解釋應答。 同樣地,使用一個VoiceXML請求,由一個Voice瀏覽器組成的網關負責識別語言和DTMF輸入,把它轉換成為一種標準請求格式,并且把VoiceXML應答轉換成為語音。

一些可能存在的問題

表格1給了一些不同的客戶應用程序的上會出現的問題以及可能的解決方案。

需要考慮的問題參考答案
怎樣為多用戶客戶端提供支持?為所有的用戶客戶端使用公共的服務器端代碼。
使用XML和Xslt。 XML文件包含為所有的客戶端所共用的數據。XSLT執行把XML改變成為適合于各個用戶端的格式的轉化請求。

設置的生成的應答依靠適用于請求的設備的MIME類型。舉例來說,為了響應一個WML請求,MIME類型必須被設置為text/vnd.wap.wml。
在服務器還是在客戶端執行XSLT轉化?總是使用服務器端轉化。并不是所有的客戶端都支持客戶端轉換。
怎樣為I18N客戶端提供支持? 必須使用UTF-8編碼格式。
使用ResourceBundle和Message Bundle類以及java.text程序包。
應用程序可以使用cookies作為狀態管理嗎? 不可以。
不使用cookies,怎樣管理session數據?使用URL重寫不支持cookies的客戶端。
使用絕對URL還是相對URL來引用服務器資源? 使用絕對的URL,以避免不支持相對URL的客戶端潛在的問題。

作者:http://www.zhujiangroad.com
來源:http://www.zhujiangroad.com
北斗有巢氏 有巢氏北斗