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以及运行应用程序 生产模式。


目录
相关文章
|
20天前
|
前端开发 JavaScript API
【独家揭秘】Bottle框架为何能俘获开发者的心?三大实战案例带你领略Web开发新境界!
【8月更文挑战第31天】Bottle是一款轻量级Python Web框架,以简单高效著称,秉持极简设计,适合快速开发小型项目或构建API服务。本文通过具体代码示例展示Bottle框架的独特魅力,从安装到创建应用、路由设置、模板渲染及表单处理等方面进行详细介绍,帮助读者轻松上手并掌握Bottle的应用技巧。
32 1
|
23天前
|
前端开发 JavaScript C#
C#开发者的新天地:Blazor如何颠覆传统Web开发,打造下一代交互式UI?
【8月更文挑战第28天】Blazor 是 .NET 生态中的革命性框架,允许使用 C# 和 .NET 构建交互式 Web UI,替代传统 JavaScript。本文通过问答形式深入探讨 Blazor 的基本概念、优势及应用场景,并指导如何开始使用 Blazor。Blazor 支持代码共享、强类型检查和丰富的生态系统,简化 Web 开发流程。通过简单的命令即可创建 Blazor 应用,并利用其组件化和数据绑定特性快速搭建界面。无论对于 .NET 还是 Web 开发者,Blazor 都是一个值得尝试的新选择。
40 1
|
19天前
|
iOS开发 Android开发 MacOS
从零到全能开发者:解锁Uno Platform,一键跨越多平台应用开发的神奇之旅,让你的代码飞遍Windows、iOS、Android、macOS及Web,技术小白也能秒变跨平台大神!
【8月更文挑战第31天】从零开始,踏上使用Uno Platform开发跨平台应用的旅程。只需编写一次代码,即可轻松部署到Windows、iOS、macOS、Android及Web(通过WASM)等多个平台。Uno Platform为.NET生态带来前所未有的灵活性和效率,简化跨平台开发。首先确保安装了Visual Studio或VS Code及.NET SDK,然后选择合适的项目模板创建新项目。项目结构类似传统.NET MAUI或WPF项目,包含核心NuGet包。通过简单的按钮示例,你可以快速上手并构建应用。Uno Platform让你的技术探索之旅充满无限可能。
23 0
|
20天前
|
JSON 数据库 开发者
FastAPI入门指南:Python开发者必看——从零基础到精通,掌握FastAPI的全栈式Web开发流程,解锁高效编码的秘密!
【8月更文挑战第31天】在当今的Web开发领域,FastAPI迅速成为开发者的热门选择。本指南带领Python开发者快速入门FastAPI,涵盖环境搭建、基础代码、路径参数、请求体处理、数据库操作及异常处理等内容,帮助你轻松掌握这一高效Web框架。通过实践操作,你将学会构建高性能的Web应用,并为后续复杂项目打下坚实基础。
39 0
|
1月前
|
前端开发 开发者 UED
翻天覆地的选择!单页与多页,开发者如何抉择才能引领Web应用的未来?
【8月更文挑战第6天】在软件开发中,单页应用(SPA)与多页应用(MPA)是两种主流架构。SPA通过动态加载实现平滑过渡,提供出色的交互体验,适用于复杂Web应用;而MPA采用传统页面加载方式,结构清晰,适合简单网站。选择SPA还是MPA取决于项目特性、用户体验和技术背景。开发者需综合考量各项因素,以做出最佳决策,同时随着技术进步,未来或将涌现更多创新模式。
33 4
|
23天前
|
开发框架 监控 .NET
开发者的革新利器:ASP.NET Core实战指南,构建未来Web应用的高效之道
【8月更文挑战第28天】本文探讨了如何利用ASP.NET Core构建高效、可扩展的Web应用。ASP.NET Core是一个开源、跨平台的框架,具有依赖注入、配置管理等特性。文章详细介绍了项目结构规划、依赖注入配置、中间件使用及性能优化方法,并讨论了安全性、可扩展性以及容器化的重要性。通过这些技术要点,开发者能够快速构建出符合现代Web应用需求的应用程序。
31 0
|
28天前
|
前端开发 数据安全/隐私保护 开发者
热门聚焦!Web 前端 CSS 选择器 —— 解锁精美网页的密码,触动开发者心灵深处!
【8月更文挑战第23天】CSS 选择器是 Web 前端设计中的关键工具,用于精准定位和美化页面元素。主要包括:直观的元素选择器(如 `p`),灵活的类选择器(如 `.my-class`),唯一的 ID 选择器(如 `#unique-div`),以及可根据属性选择的属性选择器(如 `a[title]`)。此外,后代选择器(如 `div p`)、子选择器(如 `ul > li`)和相邻兄弟选择器(如 `h1 + p`)可用于更复杂的选择。通用选择器(如 `*`)则适用于所有元素。通过组合这些选择器,开发者能够创建出既复杂又美观的网页样式,提升用户体验。
27 0
|
28天前
|
存储 前端开发 开发者
Web 前端热点来袭!数组去重难题何解?快来探索这些超实用方法,引发开发者共鸣!
【8月更文挑战第23天】在Web前端开发中,去除数组中的重复项是提升数据准确性和效率的关键步骤。本文介绍了四种常用的数组去重方法:一是运用ES6的Set数据结构,通过构造Set对象并转换回数组,快速剔除重复值;二是结合for循环与`indexOf`方法,逐个检查元素是否已存在于新数组中;三是采用`forEach`循环与`includes`方法实现类似功能;四是利用`reduce`方法,以函数式编程方式完成累积检查和去重。这四种方法各有优势,可根据项目需求和环境选择使用。
44 0
|
1月前
|
安全 编译器 API
【颠覆想象!】PHP 8横空出世:全新特性重塑Web开发格局,开发者必看的革命性变革之旅!
【8月更文挑战第7天】PHP 8通过引入一系列创新特性和改进,不仅提升了开发者的生产力,还加强了PHP作为现代Web开发语言的地位。随着PHP社区继续推动语言的发展,我们可以期待更多令人兴奋的变化。
46 0
|
2月前
|
SQL 安全 数据库
Python Web开发者必看!SQL注入、XSS、CSRF全面解析,守护你的网站安全!
【7月更文挑战第27天】在 Python Web 开发中, 安全至关重要。
46 0