GWT快速入門
1 基本資訊
摘要:
本文介紹了GWT簡介、安裝、基于Eclipse開發GWT等内容,幫助GWT入門學習。
分類:開發技術->開源技術
标簽:GWT Eclipse
作者:曹宗偉 建立于 2007-7-12
2 GWT快速入門
2.1 GWT簡介
GWT是一個Java軟體開發架構,對那些不把浏覽器語言作為第二語言的Java程式員來說,使用它可以很容易地開發出類似Gmail和Google Maps那樣的應用。開發一個動态Web應用是一個乏味和容易出錯的過程,你大概要花90%的時間來面對不同浏覽器之間的微妙的不相容性。并且 Javascript語言的缺乏子產品化的特性,讓共享、測試、重用Ajax元件非常困難和脆弱。
GWT讓你避免這些頭痛的問題,提供給你的使用者同樣的、符合标準的使用者界面體驗。你可以用Java語言來編寫你的使用者界面,GWT編譯器會把你的Java類轉換為浏覽器相容的Javascript和HTML。
2.2 安裝GWT
關于GWT的介紹已經很多了,這裡不再哆嗦,開始GWT之旅吧!
l 安裝Java SDK:GWT文檔提示的是JDK 1.4.2+,最好是SUN的JDK5.0或6.0。
l 安裝eclipse,需要版本3.2以上,安裝wtp1.50插件下載下傳: wtp1.50
http://download.eclipse.org/webtools/downloads/drops/R1.5/R-1.5.0-200606281455/
l 下載下傳GWT SDK;根據作業系統選擇(目前支援Windows和Linux)
l 解壓 GWT SDK:GWT不包括安裝程式。展開GWT SDK壓縮包後,所有你需要的都在裡面了。
l 安裝googlipse插件http://sourceforge.net/projects/googlipse
2.3 使用eclipse開發GWT
1.設定classpath GWT_HOME,請按下圖設定。
2.建立一個Dynamic WebProject
3.在建立Dynamic WebProject的下一步勾上Googlipse
3.建立一個module
(構客網原創)
4.輸入module名字HelloGwt
向導會幫你自動生成類HelloGwt,打開後編輯onModuleLoad方法,這裡在頁面上添加了兩個控件button和label
為button添加一個clickListener,設定label的值為Hello ,GWT!
public void onModuleLoad() { // TODO Auto-generated method stub final Button button = new Button("click me"); final Label label = new Label("result"); button.addClickListener(new ClickListener(){ public void onClick(Widget arg0) { // TODO Auto-generated method stub label.setText("Hello ,GWT!"); } }); RootPanel.get().add(button); RootPanel.get().add(label); } |
5.右鍵點選com.gwt.hello下的public目錄下HelloGwt.gwt.xml檔案,選擇run as ->Gwt Hosted mode Application即可運作該程式
6.如果你想調試則選擇debug as ->GwtHosted mode Application,在類中設定斷點,即可跟進。
2.4 個人的看法
1. GWT可以讓JAVA程式員開發ajax變得非常容易,并提供了豐富的可複用的控件。
2. 在eclipse上的開發和調試使得ajax開發變得相當容易。
3. GWT把java代碼編譯成js代碼的做法頗有争議:有些 GWT 的擁護者認為用 Java 語言編寫用戶端代碼實際上要比編寫 JavaScript 好,并不是所有人都贊成這個觀點。許多 JavaScript 程式員極不情願犧牲他們語言的靈活性和表現力,來獲得有時非常繁重的 Java 開發工作。由于 GWT 擴充到 JavaScript、HTTP 和 HTML 的漏洞所導緻的 bug 是不可避免的,是以缺乏經驗的 Web 程式員要花很長時間跟蹤它們。
4. GWT的rpc是通過servlet走的,是以很容易和其他架構結合在一起,但是它不是開放的。必須和gwt綁定。
5. GWT編寫的java代碼被生成js後,并不是運作在伺服器端,而是運作在用戶端。在程式的安全性方面需要特别注意一下。
6. GWT雖然提供了一個很好的開發架構,但是也不利于java開發人員和美工的分工。