GWT(Google Web Toolkit)是Google推出的一个开发Ajax应用的框架,它使程序员用Java同时开发客户端和服务器端的代码。GWT的编译器会把用于开发客户端的Java代码转化成Javascript和Html,而程序员不用关心这一转换过程。这样程序员就可以在自己喜欢的Java IDE里面开发自己的Ajax应用程序。
GWT应用程序需要提供一个“入口点”类以及独立的配置数据单元,它们捆绑起来即可形成一个应用“模块”。每个模块包括:根据模式 module-name.gwt.xml命名的一个配置文件以及实现com.google.gwt.core.client.EntryPoint接口的一个类 —— 该接口充当了应用程序的主入口点。GWT的JavaScript运行库依赖这种基于模块的结构。
1、GWT体系结构
1)GWT Java-to-JavaScript Compiler
将Java程序翻译为JavaScript,通过GWT Compiler可以让GWT程序在Web模式下运行。
2)GWT Hosted Web Browser
GWT Hosted Web Brower让你的程序可以在Hosted模式下运行,在Hosted模式下运行的是Java代码而不是编译出来的JavaScript代码,在Hosted模式下可以轻松的做Debug。
3)JRE emulation library
可以称为JRE简化的类库。在客户端(用来编译成JavaScript代码的客户端Java代码)不是所有的java类库都被gwt支持,只有部分被支持,这些类库是几乎所有的java.lang包,java.util包的一部分。
4)GWT Web UI class library
使用GWT Web UI类库可以创建web浏览器的组件,例如按钮,文本框,图片等。这是GWT的核心UI类库。
2、GWT应用程序的运行方式有两种:
1)宿主模式(Hosted Mode)
宿主模式是指我们和没有转换为Ajax应用的GWT应用交互的状态。当我们开发和调试时,我们就一直处在宿主模式下。在这种情况下,Java虚拟机使用GWT内置的浏览器运行GWT应用编译后的class内容,因此能够提供"编码、测试、调试"过程的最佳速度。
我们可以运行com.google.gwt.dev.GWTShell启动宿主模式。
2)Web模式(Web Mode)
Web模式是指已经成功转化为Ajax应用的状态,这种状态下,我们已经开始通过Web方式来访问Ajax应用了。
在Web模式下运行时,不再需要GWT工具包或者JVM的支持。
3、GWT常用命令行工具
1)projectCreator
创建在Eclipse中开发GWT应用所需要的项目基本文件和可选的Ant buildfile文件。
projectCreator命令的语法如下:
projectCreator [-ant projectName] [-eclipse projectName] [-out dir] [-overwrite] [-ignore]
-ant 创建一个 Ant 文件来编译源程序
-eclipse 创建一个 eclipse 项目
-out 文件输出目录
-overwrite 覆盖以前的项目
-ignore 忽略已存在的文件,不覆盖原有文件
2)applicationCreator
applicationCreator命令用于创建基本的HelloWorld!应用和GWT应用开发环境。
applicationCreator.cmd 命令的语法如下:
ApplicationCreator [-eclipse projectName] [-out dir] [-overwrite] [-ignore] className
-eclipse 为 projectName 项目创建一个调试过程的运行配置文件
-out 文件输出目录(默认当前目录)
-overwrite -ignore 和 createProject 命令相同
className 是你所要用的类名(注:格式必须为:***.client.****)
3)junitCreator
生成junti测试代码。
4)i18nCreator
生成一个i18n属性文件和对应的Javascript脚本。
5)benchmarkViewer
显示benchmark结果