GWT学习(一)-- 入门
寒假的时候玩了一段时间的GWT,主要是为了搞Smart-GWT,以后会有文章来讲解它。
GWT,官方网址:http://code.google.com/intl/zh-CN/webtoolkit/
GWT全称:Google Web Toolkit?
它允许开发人员使用 Java 编程语言快速构建和维护复杂而又高性能的 JavaScript 前端应用程序,从而降低了开发难度,尤其是与Eclipse Google 插件结合使用时,优势更明显。
喜欢用swing写桌面程序的朋友一定会爱上GWT的,因为它使我们可以像写swing那样 ,来写web上的应用程序。
从官方摘了些它的工作原理,帮助大家来理解Gwt
?
Google Web Toolkit 的工作原理
使用 Java 语言编写 AJAX 应用程序,然后编译为优化的 JavaScript有了 Google Web Toolkit (GWT),可以使用 Java 编程语言编写 AJAX 前端,然后 GWT 会交叉编译到优化的 JavaScript 中,而 JavaScript 可以自动在所有主要浏览器上运行。在开发过程中,您可以用 JavaScript 按照您习惯的“编辑 - 刷新 - 查看”这种不变的循环快速反复,这样做还带来一个好处,即能够逐行调试并单步执行您的 Java 代码。准备好进行部署后,GWT 会将 Java 源代码编译到优化且独立的 JavaScript 文件中。使用 Google Web Toolkit 可以轻松地为现有网页或整个应用程序构建一个 Widget。
与仅在文本级别运行的 JavaScript Minifier 不同,GWT 编译器会在整个 GWT 代码库中执行综合性静态分析和优化,通常生成的 JavaScript 加载和执行均比等效手写的 JavaScript 更快。例如,GWT 编译器可以安全地消除无用代码 -- 极大的减少不使用的类、方法、字段甚至方法参数 -- 以确保您编译的脚本尽可能最小。另一个示例:GWT 编译器选择性地内联方法,消除方法调用的性能开销。
交叉编译提供了开发所需的可维护的提取和模块性,而不会导致运行时性能损失。了解详情
?
摘自:http://code.google.com/intl/zh-CN/webtoolkit/overview.html
?
安装与配置:
1、先确定JDK是否安装配置好,处于可用状态。
2、到http://code.google.com/intl/zh-CN/webtoolkit/download.html上去下载最新的GWT SDK?。
把它解压到一个特定的目录中,并设置一下环境变量:GWT_HOME,值 为你解压的目录。
SDK包里面有个samples文件夹,里面有好几个示例程序,要运行它们,得配置安装ANT。其实也很简单,下载Ant包,然后配置一下Ant的环境变量:ANT_HOME,值为Ant解压的目录。
用Ant来编译GWT的示例程序,用命令行进入samples/Mail/?目录,运行 Ant hosted 命令,该命令会执行 ?samples/Mail/build.xml
?中“hosted”Ant 目标,这样会先打开一个Java桌面应用程序:
然后点击Launch Default Browser按钮后,会打开浏览器且在浏览器内部运行 Mail 应用程序,稍等一会儿,会在浏览器中出现下图:
这是用GWT实现的简单的邮件管理示例。
都是用Java代码写出来的,很不错吧。
?
?
下面我们来安装使用GWT eclipse插件,详细说明:
http://code.google.com/intl/zh-CN/appengine/docs/java/tools/eclipse.html
有两种方法,一是先下载插件
Plugin for Eclipse:http://code.google.com/intl/zh-CN/webtoolkit/download.html进行安装
二是,可以利用eclipse的添加插件功能:
help --> Check for update。
然后再填入http://dl.google.com/eclipse/plugin/3.4进行安装就可以了。
具体的详见上面给的网址中的说明
安装完后,eclipse工具栏上会多出如图所示的几个有趣的图标:
第一个用来创建新的GWT的web应用。
第二个用来编译GWT项目,这两个比较常用。
第三个我没用过,用来:Profile Using speed tracker
第四个是“App Engine 部署”按钮,它可将应用程序上传到 App Engine上。
点击第一个按钮来创建一个新的GWT应用,填入工程名和包名(包名最好填上),然后把Use Google App Engine前面的钩去掉,因为不上传到 App Engine时,就没用到GAE,先不管。
创建好之后的包结构如下图:
其中,GwtTest.gwt.xml是GWT工程的配置文件,所有的GWT的配置信息都需要在这先声明。这些配置信息包括 Module 的信息,CSS 样式表的相对路径,我们应用到的 JavaScript 的文件相对路径,和所有异步通信中 Servlet 的映射信息。
?
在 GWT 的应用规范中,显示层的 Java 代码必须放在以包名 client 结尾的目录或者子目录下,并且不能依赖其它非 client 目录下的 Java 代码。
对其它的服务器端的代码,要放到以 server 结尾的包或者子包当中。
?
?
深入了解和学习GWT,可以参考下面几篇好文章:
?
面向 Java 开发人员的 Ajax: 探索 Google Web Toolkit
http://www.ibm.com/developerworks/cn/java/j-ajax4/
GWT 应用,第 1 部分: 使用 Google Web Toolkit 实现 places 应用程序
http://www.ibm.com/developerworks/cn/java/j-gwtfu1/
GWT 应用,第 2 部分: 高级内容
http://www.ibm.com/developerworks/cn/java/j-gwtfu2/