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开发人员和美工的分工。