如果你是从事Java软件和Ajax开发的程序员,那么你应该已经注意到了Google Web Toolkit(GWT)所带来的机遇。Google于2006年5月按照Apache规范许可证发布这套免费的开发包。GWT 支持开发者使用Java 语言开发 Ajax 应用程序。Google已经推出了在Windows和Linux平台上的GWT beta版本,并且承诺不久将增加在Mac OS X平台上的版本。
本文将介绍使用GWT和常用的Java工具——如Tomcat 5.0 servlet的容器Apache Ant,还有IntelliJIDEA集成开发环境(后者是商业化的IDE)—— 在Mac OS X平台上开发一个简单的Ajax应用的步骤。本文是建立在读者对Java和Ant有所了解的基础上。
GWT配合使用Ant
我下载了GWT Linux Beta版本,并使用Java编写一个小应用程序,然后通过调用一个Ant构建文件在Tomcat 5.0的实例上编译和部署该应用程序。这个Ant文件调用GWT的Java-to-JavaScript编译器。该“编译器”是命令行脚本,它执行一个GWT java类把应用程序的Java代码转为JavaScript。
我们可以通过两种开发模式来使用GWT beta版:宿主模式和web模式。
宿主模式是指使用GWT内置的浏览器的中间开发步骤(在这种情况下,Java虚拟机使用GWT内置的浏览器运行GWT应用编译后的class内容);使用这个模式,编译后的代码仍然运行在Java虚拟机上(JVM)上。但是,我们这些Mac OS X操作系统的用户无法顺便使用Linux GWT的宿主模式。只要GWT的Mac OS X发布,宿主模式就可以使用了。
不同风格的Web开发
本文深入研究了GWT开发人员在为远程过程调用(PRCs)创建服务时可能会遇到的一些典型的web开发相关工作。PRCs是使用面向服务架构的应用程序的软件模型的一部分。这些开发工作包括:
• 使用一个构建文件使开发和配置的步骤自动化,(这个构建文件调用GWT编译器,然后把编译器的输出以及服务器端的Java类文件配置到servlet容器中,比如Tomcat, Jetty或者 Resin)
• 使用Firefox的DOM Inspector监测由GWT应用程序生成的HTML。
• 在不访问底层HTML的情况下重新设计页面中的窗口部件(因为你正在使用GWT的Java API)。
• 确保HTML在合理范围内扩展,比如,基于一个你的组织所需要的特殊XHTML文档类型。
在你的服务中
首先,我将简要描述一下这个应用程序所创建的服务。这样结合图示能够更加清晰地讲解GWT所使用的模型。
这个应用程序在浏览器中显示为一个表单,要求用户输入姓名、年龄和国籍。当用户点击按钮提交表单时,应用程序在文本框里直接显示服务器的响应结果,而不需要刷新页面。图1显示了在Safari浏览器中应用程序的运行结果。

图1 :GWT生成的简单视图