使用GWT开发AJAX应用程序

2016-01-29 11:22 23 1 收藏

使用GWT开发AJAX应用程序,使用GWT开发AJAX应用程序

【 tulaoshi.com - Javascript 】

  一、 引言

  如果你是一个Java软件和Ajax开发者,那么,Google Web Toolkit(GWT)应该已经引起你的关注。

  Google公司已经于2006年5月在Apache许可协议下发布了这种免费的开发工具包。GWT的设计目的是为了简化用Java语言开发Ajax应用程序。Google初始发行的beta版本可以适用于Windows和Linux平台,并许诺稍后要发行一个Mac OS X版本。

  本文将探讨在Mac OS X上使用GWT和熟悉的Java工具,例如Apache Ant,Tomcat 5.0 servlet容器和IntelliJ IDEA集成开发环境开发一个简单的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虚拟机(JVM)中。然而,主机方式无法应用于我们这些使用Linux版本操作系统的Mac OS X用户。只有Google发行了一个Mac OS X版本,我们才可以使用主机方式。

  三、 不同风格的Web开发

  在创建远程过程调用(RPC)服务的同时,本文将详细讨论一些典型的GWT开发者可能面对的web开发有关的任务。RPC是一个软件模型的一部分,主要为使用面向服务的架构(SOA)的应用程序而设计。这些开发任务包括:

  · 使用一个构建文件(构建运行GWT编译器,然后发布编译器的输出,并且把你的服务器端的Java类文件发布到一个servlet容器,例如Tomcat,Jetty或Resin)来自动化开发和发布步骤。

  · 使用Firefox的DOM Inspector来观察由该GWT应用程序生成的HTML。

  · 重新设置页面中的各部件而不必存取内在的HTML(既然你在使用GWT的Java API)。

  · 确保HTML是有效的标记,例如,你的组织可能需要基于一个特别的XHTML文档类型。

  四、 服务功能

  首先,我将简短描述本文示例应用程序要创建的服务,设计这个示例是为了展示GWT使用的模型。

  该应用程序在浏览器中显示一个表单,要求用户输入他们的姓名、年龄和原籍国家。当用户通过点按按钮提交表单时,该应用程序在一个文本域中显示一个服务器响应,而不必初始化一个页面刷新。图1显示了在Safari浏览器中该应用程序看上去的样子。


图1.一个由GWT生成的简单视图
  例如,当用户保留一个文本框为空而点击OK,Submit按钮时将显示出图2所示结果。


图2:该应用程序用红色显示一条错误消息[next]  五、 巧妙的服务机制

  在Ajax应用程序中使用RPC可以消除显式地处理XMLHttpRequest和相关的服务器返回值的必要性,因为GWT对象能够为你处理复杂任务。

  你的应用程序定义的每个服务都要求实现两个Java接口和一个Java类。为了编译这些类,你必须确保gwt-user.jar库位于你的classpath(由一个Ant文件入口负责实现这项任务)中。下列代码示例展示了定义我们的服务的Java接口。

package com.parkerriver.gwt.testapp.client;
import com.google.gwt.user.client.rpc.RemoteService;
public interface ShowRespService extends RemoteService{
String displayResponse(String req);
}
  这个服务接口要求扩展GWT接口RemoteService。它定义了单个方法displayResponse()。

  另外,你还必须定义一个客户端(或使用最终下载的JavaScript代码)用于调用这个服务方法的接口。当我显示客户端代码时(请参考MyForm.java),该GWT使用一个我描述的回调设计模式。

来源:http://www.tulaoshi.com/n/20160129/1482223.html

延伸阅读
标签: Web开发
在过去,由于为了获得新数据而不得不重新加载web页面(或者加载其他页面)导致web应用程序发展被限制。虽然有其他方法可用(不加载其他页面),但是这些技术都没有被很好地支持而且有bug成灾的趋向。在过去的几个月里,一个过去并不被广泛支持的技术已经被越来越多的web冲浪者(web surfers??是指浏览器还是浏览者?)所接受,它给了开发者更...
标签: Web开发
在这个关于AJAX系列的第三部分中(相关文章:第一部分、第二部分),我们将学习如何使用AJAX与服务端进行写作以及这些技术如何产生强大的web应用程序。如果你对学习如何构建类似GMail或者Google Maps的web程序感兴趣的话,这是一篇基础的入门(虽然那两个东东会比我们在这篇文章中提及的内容复杂的多)。在这篇文章中,我使用PHP作为服务端...
标签: Web开发
AJAX,一个异步JavaScript和XML的缩略词,是当今快速发展的Web开发界十分热门的技术。在这项新技术提供巨大能力的同时,它也燃发了在"Back"按钮问题上的不容置疑的争论。本文作者将向你解释怎样在真实世界中使用AJAX以及怎样在一个工程中评估它的价值。 在你读完本文后,你就会明白什么是AJAX,在什么情况下,为什么以及怎样使用这项技术...
标签: Web开发
在过去,由于为了获得新数据而不得不重新加载web页面(或者加载其他页面)导致web应用程序发展被限制。虽然有其他方法可用(不加载其他页面),但是这些技术都没有被很好地支持而且有bug成灾的趋向。在过去的几个月里,一个过去并不被广泛支持的技术已经被越来越多的web冲浪者(web surfers??是指浏览器还是浏览者?)所接受,它给了开发者更...
作为Web应用程序模型的AJAX的出现使服务器端的面貌发生了巨大的变化。用户对着Web页面填写表单并单击提交按钮转到下一个链接的典型Web使用模式现在正在转变为更先进的客户端JavaScript以及功能更丰富的用户界面,只要对表单进行操作,比如单击一个复选框、按下一个键或将鼠标移到一个选项卡上,该用户界面就会不断地与服务器交互。 考...

经验教程

938

收藏

88
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部