Code For Better 谷歌开发者之声——谷歌Web工具包(GWT)

简介: GWT是一个开源的一套工具,它允许Web开发人员创建和维护复杂的JavaScript 前端应用程序中的Java。除了一些本地库之外,一切都是Java源代码,可以使用包含的GWT Ant构建文件在任何支持的平台上构建。它是根据Apache许可证 2.0版许可的。GWT强调可重用的常见Web开发任务方法,即异步远程过程调用,历史管理,书签,UI抽象,国际化和跨浏览器 可移植性。

一、GWT简介


  • GWT是一个开源的一套工具,它允许Web开发人员创建和维护复杂的JavaScript 前端应用程序中的Java。除了一些本地库之外,一切都是Java源代码,可以使用包含的GWT Ant构建文件在任何支持的平台上构建。它是根据Apache许可证 2.0版许可的。
  • GWT强调可重用的常见Web开发任务方法,即异步远程过程调用,历史管理,书签,UI抽象,国际化和跨浏览器 可移植性。
  • GWT 提供了一组基于Java语言的开发包,这个开发包的设计参考Java AWT包设计,类命名规则、接口设计、事件监听等都和AWT非常类似。熟悉Java AWT的开发者不需要花费多大的力气就能够快速的理解GWT开发工具包,将更多地时间投入到GWT应用的开发过程中。
  • 开发出来的Java应用将由GWT开发包提供的编译工具编译后声生成对应的、应用了Ajax技术的Web应用,Java应用中出现的、和服务器之间的交互动作被自动生成的异步调用代码所代替。

eclipse安装gwt插件

image.png


二、运行模式


GWT应用程序可以以两种模式运行


1、开发模式(以前称为托管模式)

应用程序在Java虚拟机(JVM)中作为Java字节码运行。[11]此模式通常用于开发,支持代码的热交换和调试。在2014年,开发人员模式的经典实现因浏览器更新而无法使用[,直到用更兼容的超级开发模式取代,后者成为GWT 2.7中的默认模式。


2、生产模式(以前称为Web模式)

应用程序作为纯Java和HTML运行,从Java源代码编译。此模式通常用于部署。


三、组件


1、GWT Java-to-JavaScript编译器

将Java编程语言转换为JavaScript编程语言。


2、GWT开发模式

允许开发人员以开发模式运行和执行GWT应用程序(该应用程序在JVM中作为Java运行,无需编译为JavaScript)。在2.0之前,GWT托管模式提供了一个专用的“托管浏览器”来调试您的GWT代码。在2.0中,正在调试的网页在常规浏览器中查看。通过使用称为Google Web Toolkit Developer Plugin的本机代码插件为许多流行的浏览器支持开发模式。


3、JRE仿真库

Java标准类库中常用类的JavaScript实现(例如大多数java.lang包类和java.util包类的子集)。


4、GWT Web UI类库

一组用于创建窗口小部件的自定义接口和类。


四、开发步骤


1、安装java开发环境 Java SDK

如果您没有安装最新版本的Java SDK,请下载并安装Java Standard Edition SDK。


2、安装Eclipse或您喜欢的Java IDE

在这些教程中,我们使用Eclipse,因为它是开源的。 但是,GWT不会将您绑定到Eclipse。 您可以使用IntelliJ,NetBeans或您喜欢的任何Java IDE。 如果您使用Eclipse以外的Java IDE,则教程中的屏幕截图和一些特定说明将有所不同,但基本的GWT概念将是相同的。

如果您的Java IDE不包含Apache Ant支持,您可以下载并解压缩Ant以轻松编译和运行GWT应用程序。


3、安装Eclipse Google Plugin

Google Plugin for Eclipse为Eclipse添加了用于创建和开发GWT应用程序的功能。


4、下载 GWT

可以使用Google Plugin for Eclipse下载GWT。 或者,下载适用于您的操作系统的最新GWT分发版。


5、解压GWT 目录到你的要运行的地方

GWT没有安装程序。 运行和使用GWT所需的所有文件都位于解压缩的目录中。


您也可以选择执行以下操作:


6、安装Google App Engine SDK。

1.Google App Engine允许您在Google的基础架构上运行Java Web应用程序,包括GWT应用程序。 可以使用Google Plugin for Eclipse下载App Engine SDK。 或者,单独下载App Engine SDK for Java。

2.创建并运行您的第一个Web应用程序 - 一些简单的步骤可以帮助您熟悉命令行命令。


五、GWT特性


GWT除了支持将应用Java语言开发的应用转化为Ajax应用,同时提供了更多的高级特性,下面是这些特性的简单描述。


1、GWT编译器

GWT编译器是GWT的核心,负责完成将Java代码翻译很Ajax内容的工作。GWT编译器能够翻译Java语言的大部分特性。包括支持Java 语言中的基本类型、违例处理等,支持java.lang包和java.util包中的绝大部分类和接口,支持正则表达式和序列化。


2、跨平台支持

如果你使用GWT中提供的显示组件(比如Button)和组装组件(比如VerticalPanel),GWT编译生成的Ajax应用能够支持大部 分的浏览器和操作系统,比如Internet Explorer、Firefox等,也能够支持Linux、Windows等不同操作系统。这是因为GWT最大限度的将这些控件翻译成浏览器内置的类 型。比如Button类编译后生成的是标准HTML。


GWT建议使用CSS修饰页面元素的显示效果。GWT的类中很少提供访问页面元素样式属性的方法,我们可以直接在CSS文件中通过对应的样式名称来 设置页面元素的默认显示效果。比如使用 .gwt-Button { font-size: 150%; } 使用Button元素的默认显示效果。


3、宿主模式(Hosted Mode)

宿主模式是指我们和没有转换为Ajax应用的GWT应用交互的状态。当我们开发和调试时,我们就一直处在宿主模式下。在这种情况下,Java虚拟机使用GWT内置的浏览器运行GWT应用编译后的class内容,因此能够提供"编码、测试、调试"过程的最佳速度。


我们可以运行com.google.gwt.dev.GWTShell启动宿主模式。


4、Web模式(Web Mode)

Web模式是指已经成功转化为Ajax应用的状态,这种状态下,我们已经开始通过Web方式来访问Ajax应用了。


在Web模式下运行时,不再需要GWT工具包或者JVM的支持。


5、命令行工具

GWT工具包中提供了几个非常适用的小工具来帮助我们更快的建立GWT应用开发环境:projectCreator、applicationCreator、junitCreator。


projectCreator

创建在Eclipse中开发GWT应用所需要的项目基本文件和可选的Ant buildfile文件。

applicationCreator

applicationCreator命令用于创建基本的HelloWorld!应用和GWT应用开发环境。

junitCreator

生成junti测试代码。


六、构建示例GWT应用程序


通过从头开发StockWatcher应用程序开始使用GWT。 您将学习创建GWT项目,使用GWT wigdets和面板构建UI,使用Java语言编写客户端功能,在开发模式下调试,应用CSS样式,将Java编译为JavaScript以及运行应用程序 生产模式。


目录
相关文章
|
27天前
|
开发者 UED 容器
与传统的块级和行内布局相比,Flexbox为Web开发者提供了更加灵活、高效的布局方式
【6月更文挑战第10天】Flexbox是CSS3的弹性盒子布局,提供灵活、高效的网页布局解决方案。其特点包括灵活性、响应式和易理解,能适应不同屏幕尺寸和设备。核心概念有容器和项目,常用于导航栏、卡片布局、响应式设计、表格和表单布局。关键属性如flex-direction定义主轴方向,justify-content和align-items控制对齐,flex属性处理伸缩,order调整顺序。通过响应式设计和兼容性考虑,Flexbox助力创建优质、适应性强的Web界面。
19 0
|
2月前
|
移动开发 开发者 HTML5
【专栏】介绍Flexbox和Grid两种现代Web布局技术,它们能帮助开发者创建美观、响应式且兼容性好的界面
【4月更文挑战第27天】本文介绍了Flexbox和Grid两种现代Web布局技术,它们能帮助开发者创建美观、响应式且兼容性好的界面。Flexbox通过主轴和交叉轴实现复杂布局,如垂直居中、响应式和多列布局。Grid布局则利用网格线定义容器和网格项,适用于网格系统和响应式设计。文中以构建响应式Web界面为例,展示了如何结合Flexbox和Grid实现头部、内容区域和底部的布局。
|
2月前
|
Java 关系型数据库 应用服务中间件
JAVA Web项目开发eclipse工具包配置(第一天)
JAVA Web项目开发eclipse工具包配置(第一天)
|
12月前
|
开发框架 人工智能 前端开发
Visual Studio Code安装C#开发工具包并编写ASP.NET Core Web应用
Visual Studio Code安装C#开发工具包并编写ASP.NET Core Web应用
205 0
|
12月前
|
开发框架 .NET C#
Visual Studio Code调试和发布ASP.NET Core Web应用
Visual Studio Code调试和发布ASP.NET Core Web应用
130 0
|
存储 前端开发 JavaScript
2023年如何成为Web3开发者?详细聊聊Web3开发者的那些事
2023年如何成为Web3开发者?详细聊聊Web3开发者的那些事
355 0
|
机器学习/深度学习 人工智能 算法
人工智能入门指南:Web 开发者版 (5)深度学习与神经网络
本节将介绍深度学习的基础概念以及在人工智能中的应用。我们将涵盖卷积神经网络(CNN)、循环神经网络(RNN)、生成对抗网络(GAN)以及迁移学习等内容
108 0
|
机器学习/深度学习 人工智能 算法
人工智能入门指南:Web 开发者版 (4)机器学习算法与实践
本节将介绍常用的机器学习算法及其实践应用。我们将涵盖监督学习算法、无监督学习算法以及模型调优与性能优化等内容。
139 0
|
数据采集 机器学习/深度学习 人工智能
人工智能入门指南:Web 开发者版 (3)数据处理与准备
本节将介绍在人工智能项目中进行数据处理和准备的关键步骤。我们将涵盖数据收集与清洗、数据可视化、特征选择与处理以及数据集划分与交叉验证等内容。
145 0
|
机器学习/深度学习 人工智能 自然语言处理
人工智能入门指南:Web 开发者版 (2)基础概念
本节将介绍人工智能中的基础概念,包括机器学习和深度学习的基础知识。我们将探讨监督学习、无监督学习和强化学习等机器学习的基本概念,以及神经网络、前向传播和反向传播等深度学习的基础知识。此外,我们还会介绍一些常用的深度学习框架
83 0