GWT 开发者手册v2

王丰wf

贡献于2013-12-11

字数:40417 关键词: GWT JavaScript框架

 GWT开发者手册 格式规范:这种字体表示代码或术语 文档目的:对新进员工进行GWT技术培训,使他们可以在以前没有接触过GWT的基础上,通过本文档,经过短期学习,即可使用GWT进行日常开发工作。 GWT版本:gwt-windows-1.3.3 面向读者:熟悉JAVA语言,有用J2EE开发三层架构软件系统的经验WEB应用程序开发者。 一、基本概念 核心GWT概念,诸如:把JAVA原码编译为JAVASCRIPT原码,调试,跨浏览器支持,和定义模块(module)等。 GWT编译器 主要用于把JAVA应用程序转换成对应的JAVASCRIPT应用程序 GWT的核心是一个编译器,它可以把JAVA代码转换成JAVASCRIPT代码,把用于实际开发工作的JAVA应用程序转变成等价的JAVASCRIPT应用程序,一般来说: 1. 如果你的GWT应用在主机模式中编译运行, 2. 并且GWT把你的应用程序编译成JAVASCRIPT应用程序,而没有报错, 3. 那么的你的应用程序将会以同样的方式在WEB浏览器中工作,就像在主机模式中一样。 GWT编译器支持大多数JAVA语言特性。GWT运行时库仿真了JAVA运行时库的一个子集。 注意: 1. 语言支持: GWT可以编译J2SE 1.4.2或更早版本。但有一些不一致需要注意。 l 固有类型 byte, char, short, int, long, float, double, Object, String,和数组都是支持的。毕竟,在JAVASCRIPT语言中没有64位整型,所以long类型变量被映射到JAVASCRIPT的双精度浮点类型值。为了保证主机模式和WEB模式中最大的一致性,我们推荐使用int类型变量 l 异常 try, catch, finally和用户自定义的异常都可以正常支持,但是注意,在WEB模式中Throwable.getStackTrace()方法不被支持。 l 断言 GWT编译器解析JAVA assert声明,但是它们不会被生成对应的JAVASCRIPT代码。 l 多线程和同步 JAVASCRIPT解析器是单线程的,所以GWT自然接受synchronized关键字,但是没有实际作用。同步相关的类库方法也不可用,包括Object.wait(), Object.notify(), 和 Object.notifyAll() l 反射 为了效率最大化,GWT把你的JAVA原代码编译成单块集成脚本,并且不支持类的并发动态装载(我也不大懂是怎么回事,总之不要在GWT中使用JAVA的反射机制),另外,其他最佳化选项也不包括对反射的一般支持。但是可以使用GWT.getTypeName(Object)来查询一个对象的类名。 l 无用对象清理 JAVASCRIPT不支持垃圾回收阶段的对象清理,所以GWT不能支持WEB模式下的JAVA对象清理。 l 严格浮点 JAVA语言规范精确地定义了浮点支持,包括单精度和双精度,还有strictfp关键字。GWT不支持strictfp关键字,并且不能保证在转换后的代码中的浮点的详细精度,所以如果你需要保证精度的计算,则要避免在客户端代码中进行。 2. 运行时库支持 GWT只支持JAVA2标准版和企业版类库的一个小的子集,由于这些库非常大,并且有很多在WEB浏览器中不可用的功能。详细请参考:java.lang and java.util的API,那里列出了被支持的类和两个类库(GWT和标准JAVA类库)行为上的不同。 一些特定领域GWT与JAVA标准运行时不同。 l 正则表达式 JAVA正则表达式的语法类似但也不同于JAVASCRIPT的正则表达式语法。例如,replaceAll 和 split方法。你可能只想使用和JAVASCRIPT同效的JAVA正则表达式。 l 序列化 JAVA的序列化依赖于很少的机制,但这些机制在编译后的JAVASCRIPT中不可用,例如动态类装载和反射。所以GWT不支持标准JAVA序列化,但是GWT有一个RPC机制,它提供了调用远程方法时与服务器交互的自动对象序列化。 注意:如果你确保在一开始你的客户端代码中只使用了可以转换的类,你将会避免很多麻烦。为了能够尽早确定问题所在,你的代码将会在主机模式中运行时被检查是否符合JRE仿真库。所以,不支持的类库将会在第一次运行应用程序时被检测到。应该尽早运行并经常运行你的程序。 跨浏览器支持 GWT架构可以在单一代码的基础上支持多浏览器。 GWT使你不用过于担心跨浏览器的不相容性。如果你关注嵌入式的界面元素和组件,你的应用程序在最近版本的Internet Explorer, Firefox, 和Safari浏览器中的表现是一致的(大多数情况下,Opera浏览器也是这样)。DHTML用户界面是非常复杂的,虽然这样,也要确定在每个浏览器中彻底测试你的应用程序。 只要可能,GWT符合浏览器的本地用户界面元素。例如:GWT的Button元素是一个真正的HTML

下载文档,方便阅读与编辑

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 8 金币 [ 分享文档获得金币 ]
1 人已下载

下载文档

相关文档