论坛首页 Web前端技术论坛

Web 2.0 之 GWT 体验

浏览 7221 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-05-19   最后修改:2009-05-19
GWT

   作为一种使基于 Web 的应用程序更加生动的方法,Asynchronous JavaScript + XML (Ajax) 和 Web 2.0 的概念已经在开发社区中广泛应用,而且相对Web 1.0Web 2.0 在用户体验方面带来了巨大提升,我们已经很难接受浏览器从服务器上接受消息显示的时候将整个页面重新加载一遍,即使是只需要更新小小的一块区域也要重新加载,在网速慢时,中间会出现白屏,这简直会让人抓狂。随着AJAX的出生和应用,提交信息到服务器并显示反馈的信息是,只需要上面的小圈转几圈,不需要刷新整个页面,就能立刻看到结果了。

  在AJAX应用方面,Google应该算是先行者了,Google的大多数服务都基于AJAX应用的,比如GMailGDoc,还有搜索框的动态提示等。Google也推出了自己的AJAX框架,那就是GWT了,全名是Google Web Toolkit,采用了一种不寻常的方式进行 Web 应用程序开发,它没有采用客户端和服务器端代码库的普通隔离,而是提供了一个 Java API,这样的话可以让GWT支持用 Java 开发和调试 Ajax 应用,该 API 允许创建基于组件的 GUIGWT 支持 java.lang 和 java.util 包的子集,还支持 GWT 自身提供的 API。编译后的 GWT 应用程序由 HTMLXML 和 JavaScript 片段组成,从而在用户的 Web 浏览器上显示它们,与一般的 Web 应用程序开发体验相比,使用 GWT 更接近于使用 Swing 或 SWT 进行开发(其实风格更偏向与Swing),它还试图将 HTTP 协议和 HTML DOM 模型抽象出去。实际上,应用程序最终几乎总是会呈现在 Web 浏览器中。

  GWT能如此引起大家的注意,我认为由以下几大方面的特性:GWT提供的组件库使用户可以很容易的开发出漂亮的UI;使用GWT,可以方便的实现客户端和服务器端的通信,特别是使得异步通信变的非常简单;提供更方便的调试功能,可以使用EclipseDebug功能调试代码;最吸引人的莫过于用户在开发的时候不必担心浏览器的兼容性问题,因为使用GWT开发出来的程序会支持IEFirefoxMozillaSafariOpera

   我们可以在Google Code网站上下载最新的GWT开发工具包,截止目前为止,最新的GWT工具包为:gwt-windows-1.6.4,现在有一个Cypal Studio for GWT的插件,可以简化GWT开发,而且值得一提的是Instantiations公司也就是开发SWT-Designer的那家公司提供了GWT-Designer开发工具,支持可视化开发,非常的方便,又兴趣开发GWT应用的朋友可以尝试一个GWT-Designer看看,个人觉得非常的棒。不过目前GWT Desinger不支持最新的1.6.*版本

  Gwt-windows工具包附带了几个GWTDemo,在解压目录下的index.html文件中。打开index.html文件的最下面可以看到一下几个Demo的链接



 

 

 例子有入门级的Hello World,也有复杂的控件展示例子,我们来看一下用GWT开发的Mail例子:



 

  我们来研究一个GWT的配置文件,比如这里的com.google.gwt.sample.mail包下面的Mail.gwt.xml文件,内容很简单,只是配置了模块的启动类:

<module rename-to="mail">
	<inherits name='com.google.gwt.user.User'/>
	<entry-point class='com.google.gwt.sample.mail.client.Mail'/>
</module>

 

 

  inherits name指定启动模式,这里是客户端模式,entry-point就是这个模块的启动类,这个指定的启动类必须实现EntryPoint接口,并实现onModuleLoad方法,这个方法在模块启动时调用,我们可以在这个方法编写创建界面的代码。

  在Mail.gwt.xml文件上右键弹出菜单选择Run As -> GWT Hosted Mode Application,启动GWT应用:

 

 

 

  例子都提供了源代码,我们可以将他们放入到Eclipse的工作区来研究,如果我们按照了GWT-Desinger插件的话,可以新建一个GWT 工程,系统会自动创建一个.gwt.xml文件,里面可以配置负责模块启动的启动类,如果未按照GWT开发插件,也可以新建一个Java工程,然后将源代码按照路径复制到工程中,手工添加一个.gwt.xml文件,再添加那些GWTjar包到工程的构建路径上。



 

  之后就能看到运行结果了。

  用了GWT后发现,单纯用GWT来开发系统的话比较的麻烦,毕竟正如它的名字一样,这只是一个工具,还缺少一个框架的设计经验,如果能够结合Struct或者JSF的话,估计发展潜力应该不错,毕竟GWT的背后是财大气粗的Google和一伙天才。

 

 

  • 大小: 30.7 KB
  • 大小: 123.5 KB
  • 大小: 17.6 KB
  • 大小: 84.4 KB
   发表时间:2009-05-19  
挺讨厌这种 java 生成 javascript+xhtml+css 的 ,脚本多灵活,java多死板。。。。
0 请登录后投票
   发表时间:2009-05-20  
yiminghe 写道
挺讨厌这种 java 生成 javascript+xhtml+css 的 ,脚本多灵活,java多死板。。。。

不过java应该容易维护
0 请登录后投票
   发表时间:2009-06-08  
  GWT华丽的外表下,N多的限制,如此多的Java限制,仅仅模拟了那么小范围的Java语言,扼杀了Java诸多精彩的应用,GWT想说爱你不容易,看着isuue列表里的记录,一个2006年提出的改进意见,居然到了2009睬都不睬,好的你google不踩,我自己来拓展!!
0 请登录后投票
   发表时间:2009-06-08  
x98zero 写道

&nbsp; GWT华丽的外表下,N多的限制,如此多的Java限制,仅仅模拟了那么小范围的Java语言,扼杀了Java诸多精彩的应用,GWT想说爱你不容易,看着isuue列表里的记录,一个2006年提出的改进意见,居然到了2009睬都不睬,好的你google不踩,我自己来拓展!!

呵呵,很欣赏老兄你的豪气
0 请登录后投票
   发表时间:2009-12-13  
能灵活的支持java的反射机制就好了。
网上的gwt的支持反射的那个项目好烂,麻烦的要死。说白了就是搞个映射关系而已。
0 请登录后投票
   发表时间:2009-12-14  
atomom 写道
能灵活的支持java的反射机制就好了。
网上的gwt的支持反射的那个项目好烂,麻烦的要死。说白了就是搞个映射关系而已。

为什么非要用反射机制... Gwt中的 延迟绑定可以用来解决这个问题:

http://code.google.com/docreader/#p=google-documentation-reader,google-web-toolkit-doc-1-6,google-web-toolkit-doc-1-5&s=google-web-toolkit-doc-1-5&t=DevGuideDeferredBindingConcepts
0 请登录后投票
   发表时间:2009-12-14  
yiminghe 写道
挺讨厌这种 java 生成 javascript+xhtml+css 的 ,脚本多灵活,java多死板。。。。

在java中可以灵活的使用设计模式...  RPC调用很直观....
GWT 只是个工具箱而已。  用的熟练都灵活,用的不熟练都死板...
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics