1)什么是GWT?
Google Web Toolkit(GWT)是用于使用Java构建Ajax应用程序的开发工具包。 GWT坚持使用可重用的方法来处理常见的Web应用程序任务, 例如书签, UI抽象, 跨浏览器可移植性等。
GWT提供两种模式:
- 开发模式:它允许直接通过标准Java调试器调试应用程序的Java代码。
- Web模式:在这种模式下, 应用程序被转换为HTML和JavaScript代码。可以将其部署到Web服务器。
- GWT Java到JavaScript编译器:它将所有Java编写的代码转换为JavaScript。
- GWT开发模式:开发人员可以在开发模式下运行应用程序, 即以Java运行的应用程序无需编译JavaScript。开发模式允许称为Google Web Toolkit开发人员插件的纯模式插件。
- JRE仿真库:GWT包含一个遵循Java运行时库的库, 即java.lang, java.lang.annotation, java.math, java.io, java.sql, java.util等。
- GWT Web UI类库:用于创建窗口小部件的GWT由一组接口和类组成。
模块描述符是用于设置GWT应用程序的配置文件。它的文件扩展名是* .gwt.xml, 其中*是应用程序的名称, 此文件应位于项目的根目录中。
4)什么是GWT模块?
GWT模块只是功能的封装。它与Java包有一些相似之处, 但不相似。
5)如何启用断言?
GWT编译器识别-ea标志以生成用于已编译JavaScript中的声明的代码。仅将断言用于调试目的, 而不能将生产逻辑用于断言, 因为断言仅在GWT的开发模式下有效。
6)任何GWT小部件的默认样式名称是什么?
默认情况下, 每个组件的类名称是gwt-。例如, Button小部件的默认样式为gwt-Button, 而TextBox小部件的相似方式为默认样式为gwt-TextBox。
7)什么是国际化?
国际化正在根据语言环境更改文本的语言。例如, 对于坐在印度的用户, 浏览器应以印地语显示网站内容, 对于从法国访问该网站的用户, 浏览器应以法语显示。
8)主机页的目的是什么?
最重要的公共资源是宿主页, 用于调用实际的GWT应用程序。典型的应用程序HTML宿主页面可能根本不包含任何可见的HTML正文内容, 但始终希望通过< script … /> 标记包含GWT应用程序。
9)什么是RPC?
RPC(远程过程调用)有助于客户端与服务器进行通信。 RPC是从类调用方法的过程。但是, 在此过程中, 唯一的区别是该类位于服务器上, 而不是客户端程序的一部分。
10)什么是GWT ClientBundle?
ClientBundle接口将条目从” 其他所有” 类别移动到” 永久缓存” 类别。
11)GWT中的面板类型是什么?
- 根面板:这是最上面的面板, 所有其他小部件均已附加到该面板。
- 流面板:这是最简单的面板, 提供基本的HTML布局。
- HTML面板:随附有指定的HTML内容。
- 表单面板:它指定将在其中声明的任何小部件都包装在HTML表单元素中。
- 滚动面板:它将所有内容放在可滚动区域中。
- 网格:它有助于创建HTML表。
- Flex Table:它像GRID一样扩展了HTML表, 但是在这里我们可以按需创建表。
布局面板可以包含其他小部件。这些面板控制窗口小部件在用户界面上的显示方式。每个Panel小部件都从Panel类继承属性, 而Panel类又从Widget类继承属性, 而后者又从UIObject类继承属性。
13)定义GWT JSON?
JSON(JavaScript对象表示法)是一种与语言无关的数据格式。它与XML类似, 因为XML使用标签JSON使用JavaScript的对象-语言表示法。
14)在GWT XML中定义解析?
要解析XML, 我们必须首先将原始XML文本解析为XML DOM结构。 DOM结构有助于数据导航。 XML解析器位于XMLParser类下。 XMLParser类由parse(String)静态方法组成, 该方法被调用以解析XML并返回Document对象。
15)给出通过XML解析创建的节点。
- 元素-表示DOM元素, 这些元素由XML < someElement> < / someElement> 中的标签指定。
- 文本-??表示元素的开始标记和结束标记之间的文本:< someElement> 此处是一些文本。< / someElement> 。
- 注释-表示XML注释:< !-有关此数据的注释-> 。
- Attr-表示元素的属性:< someElement myAttribute =” 123″ /> 。
通用:hsqldb, Common-lang和log4j。
JDO:datanucleus, showfiles, jdo。
冬眠:冬眠。
MyBatis:mybatis。
17)定义GWT历史记录机制。
历史记录机制类似于Ajax历史记录实现, 例如RSH(真正简单的历史记录)。基本思想是在URL片段标识符中跟踪内部应用程序状态。这种机制的主要优点是:
- 它提供可靠的浏览器历史记录。
- 它向用户提供有用的反馈。
- 它是可添加书签的, 即用户可以创建当前状态的书签并保存或通过电子邮件发送等。
令牌只是应用程序可以解析以返回特定状态的字符串。该令牌将作为URL片段(在位置栏中的” #” 之后)保存在浏览器历史记录中, 并且当用户在历史记录中前进或后退或跟随链接时, 该片段将传递回应用程序。
19)如何创建自定义窗口小部件?
Google Web Toolkit提供了多种创建自定义窗口小部件的方法。最简单的方法是通过组合现有的基本小部件并向其中添加一些交互逻辑来开发复合小部件。
【Java面试(GWT面试题和答案合集)】要创建一个自定义窗口小部件, 它具有三个基本概念, 如下所示:
- 构建复合小部件。
- 为新的小部件创建Java代码。
- 使用JSNI方法包装JavaScript。
JSNI(JavaScript本机接口)用于解决问题, 例如当我们需要将GWT与现有的手写JavaScript或第三方JavaScript库集成时。有时, 我们需要访问GWT类API未公开的低级浏览器功能。
21)JSNI有什么不同用途?
JSNI是等效于Web的内联汇编代码, 可以以多种方式使用, 例如:
- 直接在JavaScript中实现Java方法。
- 将类型安全的Java方法签名包装在现有JavaScript周围。
- 从JavaScript代码调用到Java代码, 反之亦然。
- 跨Java / JavaScript边界引发异常。
- 从JavaScript读取和写入Java字段。
- 使用开发模式来调试Java源代码(使用Java调试器)和JavaScript(使用脚本调试器)。
推荐阅读
- 数据库面试(DBMS面试题和答案合集)
- uniapp开发指南
- Electron中常用api事件-app常用事件和webContents常用事件
- Android报错Multiple dex files define Lcom/ta/utdid2/c/a/c
- appium自动化中元素定位碰到的问题一
- dapper sqlserver 分页
- Android 子 module 里使用 flavor 导致编译失败的问题
- 外出时手机APP应用
- 快速搞定APP移动端自动化测试