第一个GWT应用程序

本文概述

  • 创建申请
  • 入口点类
  • 入口点类代码
  • 部署描述符
  • 部署描述符代码
  • 模块描述符
  • 模块描述符代码
  • 欢迎文件
  • 运行GWT Web应用程序
要构建GWT应用程序, 我们有四个部分, 在最后这一部分是可选的。
1)模块描述符:此部分有助于配置GWT应用程序。要配置, 我们将配置文件写入XML
语法:name.gwt.xml
在此, “名称”是应用程序的名称。所有配置文件都位于项目根目录中。
2)UI设计:它由用于设计GWT应用程序的HTML, CSS或图像组成。我们可以使用< public path =“ location address” /> 标记来配置其位置。我们可以在模块配置中找到配置文件。
3)客户端代码:在本节中, 将使用GWT编译器将应用程序的所有代码和业务逻辑转换为JavaScript。我们可以使用< source path =“ path” /> 标记找到资源的位置。该代码由入口点代码组成, 无需参数即可编写。加载GWT应用程序模块后, 每次都会调用EntryPoint.onModuleLoad()方法。
4)服务器端代码:在本节中, 我们可以执行服务器端代码。如果我们的应用程序没有任何后端(服务器端脚本或数据库), 则此部分为可选。
创建申请 使用GWT Web开发工具包创建简单的Web开发项目。要创建应用程序, 请执行以下步骤:
File→New→Other
第一个GWT应用程序

文章图片
现在, 将打开一个弹出窗口, 从中选择一个向导选项。
选择Google Web应用程序向导, 然后单击“下一步”按钮。
第一个GWT应用程序

文章图片
单击下一步按钮后, 将打开一个新向导。
现在, 提供项目名称和程序包名称。在我们仅构建基本应用程序的同时, 选择Google SDK选项下的Use GWT并取消选中Use Google App Engine。
单击完成按钮。
第一个GWT应用程序

文章图片
单击完成按钮后, 将生成以下目录
第一个GWT应用程序

文章图片
入口点类 在此示例中, 类SampleWebApplication被称为GWT应用程序的入口点。该文件包含对服务器端代码的许多引用。该文件必须干净, 因为它具有许多参考。
存在一个预定义方法onModuleLoad(), 它是在运行GWT Web应用程序时执行的程序的入口点。
这与常见的Java程序中的public static void main(String args [])方法非常相似。
入口点类代码 SampleWebApplication.java
package com.srcmini.helloworld.client; import com.google.gwt.core.client.EntryPoint; /** * Entry point classes define onModuleLoad() */ public class SampleWebApplication implements EntryPoint {/ * This is the entry point method. */ public void onModuleLoad() { // TODO } }

部署描述符 它类似于J2EE编程中的web.xml, 后者是基于Servlet的Java Web应用程序的部署描述符。
现在, 在web.xml中, GWT创建了在“部署描述符”下定义的servlet。由于我们正在创建一个基本的Web应用程序, 因此请删除所有服务器端代码和web.xml中的条目(也称为规范标记)。
我们创建一个欢迎文件SampleWebApplication.html, 并将其包含在web.xml中。该文件是我们的GWT Web应用程序的第一页。
部署描述符代码 web.xml
< ?xml version="1.0" encoding="UTF-8"?> < web-app xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="https://java.sun.com/xml/ns/javaeehttps://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"version="2.5"xmlns="https://java.sun.com/xml/ns/javaee"> < !-- Servlets --> < !-- Default page to serve --> < welcome-file-list> < welcome-file> SampleWebApplication.html< /welcome-file> < /welcome-file-list> < /web-app>

模块描述符 在本节中, 我们将打开一个文件SampleWebApplication.gwt.xml, 该文件可在com.srcmini.helloworld包下找到, 这是一个特定的配置文件。
它包含来自核心GWT的库, 该库包含在继承标记中。我们还可以使用继承标记添加第三方库。继承标记是指GWT控件的默认样式。
模块描述符代码 SampleWebApplication.gwt.xml
< ?xml version="1.0" encoding="UTF-8"?> < !--When updating your version of GWT, you should also update this DTD reference, so that your app can take advantage of the latest GWT module capabilities.--> < !DOCTYPE module PUBLIC "-//Google Inc.//DTD Google Web Toolkit 2.7.0//EN""http://gwtproject.org/doctype/2.7.0/gwt-module.dtd"> < module rename-to='samplewebapplication'> < !-- Inherit the core Web Toolkit stuff.--> < inherits name='com.google.gwt.user.User'/> < !-- Inherit the default GWT style sheet.You can change--> < !-- the theme of your GWT application by uncommenting--> < !-- any one of the following lines.--> < inherits name='com.google.gwt.user.theme.clean.Clean'/> < !-- < inherits name='com.google.gwt.user.theme.standard.Standard'/> --> < !-- < inherits name='com.google.gwt.user.theme.chrome.Chrome'/> --> < !-- < inherits name='com.google.gwt.user.theme.dark.Dark'/> --> < !-- Other module inherits--> < !-- Specify the app entry point class.--> < entry-point class='com.srcmini.helloworld.client.SampleWebApplication'/> < !-- Specify the paths for translatable code--> < source path='client'/> < source path='shared'/> < !-- allow Super Dev Mode --> < add-linker name="xsiframe"/> < /module>

欢迎文件 欢迎文件描述了项目的外观。它是根据我们的HTML和CSS需求设计的。
< !doctype html> < !-- The DOCTYPE declaration above will set the--> < !-- browser's rendering engine into--> < !-- "Standards Mode". Replacing this declaration --> < !-- with a "Quirks Mode" doctype is not supported.--> < html> < head> < meta http-equiv="content-type" content="text/html; charset=UTF-8"> < !----> < !-- Consider inlining CSS to reduce the number of requested files --> < !----> < link type="text/css" rel="stylesheet" href="http://www.srcmini.com/SampleWebApplication.css"> < !-- --> < !-- Any title is fine--> < !----> < title> Web Application Starter Project< /title> < !----> < !-- This script loads your compiled module. --> < !-- If you add any GWT meta tags, they must --> < !-- be added before this line. --> < !----> < script type="text/javascript" language="javascript"src="http://www.srcmini.com/samplewebapplication/samplewebapplication.nocache.js"> < /script> < /head> < !-- The body can have arbitrary html, or--> < !-- you can leave the body empty if you want--> < !-- to create a completely dynamic UI.--> < !-- --> < body> < !-- RECOMMENDED if your web app will not function without JavaScript enabled --> < noscript> < div style="width: 22em; position: absolute; left: 50%; margin-left: -11em; color: red; background-color: white; border: 1px solid red; padding: 4px; font-family: sans-serif"> Your web browser must have JavaScript enabledin order for this application to display correctly.< /div> < /noscript> < /body> < /html>

UI组件在入口点类下更改。我们编写了几行代码来添加UI组件。在此示例中, 我们将添加Button, Vertical Panel, 事件处理。
package com.srcmini.helloworld.client; import com.google.gwt.core.client.EntryPoint; import com.google.gwt.event.dom.client.ClickEvent; import com.google.gwt.event.dom.client.ClickHandler; import com.google.gwt.user.client.ui.Button; import com.google.gwt.user.client.ui.Label; import com.google.gwt.user.client.ui.RootPanel; import com.google.gwt.user.client.ui.VerticalPanel; /** * Entry point classes define < code> onModuleLoad()< /code> . */public class SampleWebApplication implements EntryPoint { /** A vertical panel that hold other components over UI.*/ VerticalPanel vPanel; /* * A label that gets updated on click of button. */ Label lbl; /*** This is the entry point method.*/ public void onModuleLoad() {vPanel= new VerticalPanel (); lbl= new Label (); /** Button and its click handlar.*/Button btn = new Button("GWT Button"); btn.addClickHandler(new ClickHandler() {@Overridepublic void onClick(ClickEvent event) {lbl.setText("You clicked GWT Button!"); }}); /** adding label and button into Vertical Panel.*/vPanel.add(lbl); vPanel.add(btn); /** Adding vertical panel into HTML page.*/RootPanel.get().add(vPanel); } }

运行GWT Web应用程序 GWT Web应用程序以两种模式运行:
  • 开发模式:在这种模式下, Java代码可以运行到JVM中
  • 生产模式:在这种模式下, GWT编译器将编译Java代码并创建在浏览器上运行的JavaScript。
在本教程中, 我们将GWT Web应用程序运行到“ GWT Super Dev Mode”中, 该模式在运行时编译Java代码并在浏览器上运行JavaScript。
第一个GWT应用程序

文章图片
现在复制URL:
第一个GWT应用程序

文章图片
【第一个GWT应用程序】输出:
第一个GWT应用程序

文章图片

    推荐阅读