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