GWT简介

原创 2013年12月04日 09:17:18

1.1  GWT的定义

GWT是GoogleWeb Toolkit的简称。GWT是一个开源的以Java语言为工具,以类似Swing的方式编写UI组件,之后通过GWTCompiler进行编译,它是一个开发 Ajax应用的框架,它使程序员用Java同时开发客户端和服务器端的代码。GWT的编译器会把用于开发客户端的Java代码转化成Javascript 和html,而程序员不用关心这一转换过程.


1.2  GWT的特性介绍

  1.动态,可重用的UI组件

  GWT提供的组件库使用户可以很容易的开发出漂亮的UI, 每个组件对应于GWT的一个类。

  2.简单的RPC调用

使用GWT,可以方便的实现客户端和服务器端的通信,特别是使得异步通信变的非常简单。

  3.更加方便的调试

  由于在开发阶段不需要生成HTML页面,用户开发的代码实际上是在JVM上运行的,这样用户就可以用传统的调试Java代码的方法对程序进行调试,从而加快了调试的速度,减少了软件开发的时间。

  4.浏览器兼容性

  在大多数情况下,用GWT开发出来的程序会支持IE、Firefox、Mozilla、Safari和Opera,用户在开发的时候不必担心浏 览器的兼容性问题。而浏览器的兼容性问题也是用直接用Javascript进行Ajax应用开发所面临的一个另程序员棘手问题。

  5.可扩展性

如果你觉得GWT提供的API不能满足需求,你可以利用JSNI将Javascript语句直接嵌入至Java代码中。

 

1.3  GWT的运行环境

   GWT应用程序有两种方式运行:

HostedModel

  在Hosted Model方 式下,Java程序并不会被编译成JavaScript,GWT只是创造了一个类似浏览器的环境,直接运行使用GWT开发的程序。这种模式最具生产力(这种模式下可以Debug所有的Java代码), 所以开发环境通常使用Hosted Model,但是真正的程序执行不使用这种模式。

WebModel 

  就是将使用GWT编写的Java程序编译成JavaScript,在Web容器上运行,使用浏览器访问的模式,这种方式只有在测试或者运行的时候才使用,每次对Java类的修改必须重新编译这些Java类,之后重新部署应用。所以生产力比较低。



附:GWT说明

       GWT是Google Web Toolkit的缩写,有了 GWT可以使用 Java 编程语言编写 AJAX 前端,然后 GWT 会交叉编译到优化的JavaScript 中,而 JavaScript 可以自动在所有主要浏览器上运行。GWT允许开发人员使用 Java 编程语言快速构建和维护复杂但性能高的 JavaScript 前端应用程序,从而降低了开发难度,尤其是与Eclipse Google 插件结合使用时,优势更明显。

如 今,编写网络应用程序是一个单调乏味且易于出错的过程。开发人员可能要花费 90% 的时间来处理浏览器行话。此外,构建、重复使用以及维护大量JavaScript 代码库和 AJAX 组件可能困难且不可靠。GoogleWeb 工具包 (GWT) 通过允许开发人员用Java编程语言快速构建和维护复杂但高性能的JavaScript前端应用程序来减轻该负担。

有了 Google Web 工具包 (GWT),可以使用 Java 编程语言编写 AJAX 前端,然后 GWT 会交叉编译到优化的JavaScript 中,而 JavaScript 可以自动在所有主要浏览器上运行。在开发过程中,您可以用JavaScript按习惯的相同“编辑 - 刷新 - 查看”循环快速反复,还有另一个好处就是能够调试和逐行单步调试Java 代码。准备好进行部署后,GWT 会将Java源代码编译到优化且独立的 JavaScript 文件中。使用 Google Web 工具包可以轻松地为现有网页或整个应用程序构建一个Widget。


1原理

使用 Java 语言编写 AJAX应用程序,然后编译为优化的 JavaScript与仅在文本级别运行的JavaScriptMinifier 不同,GWT编译器会在整个 GWT 数据库中执行综合性静态分析和优化,通常生成的JavaScript 加载和执行均比等效手写的 JavaScript 更快。例如,GWT编译器可以安全地消除无用代码---极大的减少不使用的类别、方法、字段甚至方法参数 -- 以确保您编译的脚本尽可能最小。另一个示例:GWT编译器选择性地内联方法,消除方法调用的性能开销。交叉编译提供了开发所需的可维护的提取和模块性,而不会导致运行时性能损失。


2开发流程

编辑 Java 代码,然后立即查看更改而无需重新编译

在开发过程中,使用 GWT 的托管模式浏览器可以立即查看代码更改。无需汇编译为 JavaScript或部署到服务器。只需进行更改,然后在托管模式浏览器中单击“刷新”。

使用 Java 调试器单步调试当前 AJAX 代码

在生产过程中,可以将代码编译为纯 JavaScript,但是在开发阶段,代码将在 Java虚拟机作为字节码运行。这意味着,当代码执行处理鼠标事件等操作时,将获得功能完整的 Java 调试。Java调试器可以执行的任何操作也应用于GWT 代码,所以也可以执行断点和单步调试等自然操作。

编译和部署优化的、跨浏览器的JavaScript

准备好进行部署后,GWT 会将 Java 代码编译成独立的纯 JavaScript 文件,任何网络服务器都支持该文件。此外,GWT应用程序可自动支持IE、Firefox、Mozilla、Safari 和 Opera,而无需在代码中进行浏览器检测或特殊封装。编写相同的代码后,GWT会根据每个用户的特殊浏览器将其转换为最有效的 JavaScript。


3功能

通过非常简单的 RPC 与服务器通信

GWT支持一组开放的传输协议,例如 JSON 和 XML,但 GWT RPC 使所有Java 通信都特别轻松且有效。类似于传统JavaRMI,只需创建一个用于指定您要调用的远程方法的接口。从浏览器调用远程方法时,GWT RPC将自动串行化参数,并调用服务器上的适当方法,然后反串行化客户端代码的返回值。GWT RPC也将非常成熟,其可以处理多态类层次结构、对象图循环,甚至可以跨网抛出异常

GWT-根据用户个人资料优化 JavaScript脚本下载

延时绑定是 GWT的一种功能,可以生成许多版本的编译代码,而在运行时自引导期间仅其中一个版本需要由特殊客户端载入。每个版本均以浏览器为基础生成,并带有应用程序定义或使用的任何其他轴。例如,如果要使用GWT 的国际化模块来国际化应用程序,GWT编译器可 能会根据每个浏览器环境生成各个版本的应用程序,例如“英文版 Firefox”、“法文版 Firefox”、“英文版InternetExplorer”等,因此,部署的JavaScript 代码非常紧凑并且下载比在JavaScript 中编码然后声明更快。

跨项目重复使用 UI 组件

通过合成其他 Widget 来创建可重复使用的 Widget,然后轻松地在面板中自动对他们进行布局。GWT 展示应用程序可以提供 GWT 中各种 UI 功能的概述。要在其他项目中重复使用 Widget 吗?只需将其打包以便他人在 JAR 文件中使用。

GWT-使用其他 JavaScript 库和本机 JavaScript 代码

如果 GWT 的类库不能满足您的需要,则可以使用 JavaScript本地接口 (JSNI) 在 Java源代码中加入手写的JavaScript。使用 GWT 1.5,现在就可以为 GWT JavaScriptObject (JSO)类创建子类以将Java“类覆盖”创建到任意JavaScript 对象上。因此,可以获得将 JS 对象比拟为适当的Java类型(例如代码完成、重构、内联)而无需另外占用内存或速度的好处。此功能可以优化使用 JSON 结构。

轻松支持浏览器的后退按钮和历史记录

不,AJAX应用程序无需破坏浏览器的后退按钮。使用 GWT,您可以通过轻松地为浏览器的后退按钮历史记录添加状态,来使您的站点更加有用。

有效的本地化应用程序

使用 GWT 功能强大的延时绑定技术来轻松创建有效的国际化应用程序和库。此外,从1.5 版起,标准 GWTWidget 开始支持双向性。

使用选择的开发工具提高生产力

由于 GWT 使用 Java,您可以使用所有喜欢的 Java 开发工具(Eclipse、IntelliJ、JProfiler、JUnit)来进行AJAX开发。这使网络开发人员可以控制自动化 Java 重构和代码提示/完成的生产效率。此外,Java语言的静态类型检查使开发人员可以在编写代码时而非运行时找出一类JavaScript错误(输入错误、类型不匹配),在减少错误的同时提高生产率。没有临时变量发现的更多用户。最后,则可以利用基于 Java 的 OO设计模式和提取,由于编译器优化,模式和提取易于理解和维护而无需用户承担任何运行时性能损失。

使用 JUnit 测试代码

GWT 与 JUnit 直接集成,使您可以在调试器和浏览器中进行单元测试,并且您甚至可以对异步 RPC 进行单元测试。扩展或投稿 - GoogleWeb 工具包是一种开源软件使用 Apache 2.0 许可,可获取所有 GWT 代码。如果您对投稿感兴趣,请访问使 GWT 变得更好。


版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

Gwt Designer以及Gxt在eclipse中安装与学习入口简介

1. 使用Gwt,所有的界面都是用Java语言来完成,使用Gwt编译引擎编译后,生成优化后的JavaScript以及样式。这个想法太有创意了,不得不说。因为Java Web开发就是个漩涡,光是界面呈现...

GWT实现文件上传下载

主要采用的两个包gwtextux.jar(0.4版本)和commons-fileupload-1.2.1.jar来完成。 在gwt.xml里添加此内容 如你所见,相关JS(在gwtextux.ja...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

SmartGWT vs. Ext GWT

When you choose the framework you plan to work with, you try to select the best framework. It means ...

Eclipse上配置GWT插件googlipse

1.去官网下载GWT,http://www.gwtproject.org/download.html 2.下载好后,直接解压到英文目录下,无需安装,修改path路径,在命令行输入命令: C:\>s...

GWT RPC 原理浅析一

GWT中前后台交互有多种方式,包括JSON,XML,RPC 其中RPC是GWT提供给我们的功能,他能够让我们直接在前后台传递对象,而无效考虑中间的传递过程。这样的好处是大大提高了我们的开发效率。 ...

怎样创建GWT+OSGi项目

在Java世界, OSGi作为一个模块化系统和服务平台一直深受大家的喜爱, 而且随着Eclipse的成功和广受好评, OSGi应用越来越广泛, 小到一个Eclipse插件开发, 大到庞大的J2EE系统...

GWT的默认窗体控件,在右上角增加关闭按钮

笔者使用的GWT2.3,它的弹窗控件(DiagBox)默认是不提供关闭按钮的,因此对其进行改造。 要进行改造,首先应认识到,GWT的每一个控件,对应的其实都是HTML的实现,GWT也支持我们拿到htm...

揭开GWT的JavaScriptObject对象的神秘面纱

GWT的JSNI提供了java代码和javascript代码之间的交互功能,其中最重要的一个类就是 JavaScriptObject 。这是一个非常特殊的类: 1.不可以直接new创建,必须通过...

GWT开发 - Eclipse, Google Plugin and Google Web Toolkit SDK

Google Web Toolkit 官方地址 1 在eclipse上安装Google plugin 针对不同版本eclipse的插件下载地...

构建富客户端程序 GWT2.3 + Guice3.0 + hibernateJPA 程序代码。

构建富客户端程序 GWT2.3 + Guice3.0 + hibernateJPA 程序代码。 Created Thursday 05 May 2011 gwt2.3 是开发 web2.0 的最理...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)