GWT技术文档第1页GWT技术文档GWT的API网址:完成人:刘立时间:2009-3-11GWT技术文档第2页目录GWT技术文档.........................................................................................................................1第一章GWT简介....................................................................................................................31.1GWT的定义....................................................................................................................31.2GWT的特性介绍............................................................................................................31.3GWT的运行环境...............................................................................................................3第二章GWT的安装..............................................................................................................5第三章GWT的工程创建...................................................................................................63.1在命令行创建GWT工程...............................................................................................63.2用eclipse创建GWT工程................................................................................................6第四章GWT功能介绍及注意事项.....................................................................................74.1体系结构............................................................................................................................74.2参数和返回值系列化类型................................................................................................94.3异常................................................................................................................................114.4国际化..............................................................................................................................134.5功能介绍(JavaScriptNativeInterface)......................................................................184.6从HostModel到WebModel.........................................................................................214.7使用数据源......................................................................................................................224.8日志处理(Log4J).............................................................................................................224.9一个简单的Login示例.................................................................................................22GWT技术文档第3页第一章GWT简介1.1GWT的定义GWT是开源的,GWT是GoogleWebToolkit的简称。GWT是一个以Java语言为工具,以类似Swing的方式编写UI组件,之后通过GWTCompiler编译他是一个开发Ajax应用的框架,它使程序员用Java同时开发客户端和服务器端的代码。GWT的编译器会把用于开发客户端的Java代码转化成Javascript和html,而程序员不用关心这一转换过程.1.2GWT的特性介绍1.动态,可重用的UI组件GWT提供的组件库使用户可以很容易的开发出漂亮的UI,每个组件对应于GWT的一个类。2.简单的RPC调用使用GWT,可以方便的实现客户端和服务器端的通信,特别是使得异步通信变的非常简单。3.更加方便的调试由于在开发阶段不需要生成HTML截面,用户开发的代码实际上是在JVM上运行的,这样用户就可以用传统的调试Java代码的方法对程序进行调试,从而加快了调试的速度,减少了软件开发的时间。4.浏览器兼容性在大多数情况下,用GWT开发出来的程序会支持IE、Firefox、Mozilla、Safari和Opera,用户在开发的时候不必担心浏览器的兼容性问题。而浏览器的兼容性问题也是用直接用Javascript进行Ajax应用开发所面临的一个另程序员棘手问题。5.可扩展性如果你觉得GWT提供的API不能满足需求,你可以利用JSNI将Javascript语句直接嵌入至Java代码中。1.3GWT的运行环境GWT应用程序有两种方式运行:HostedModelGWT技术文档第4页在HostedModel方式下,Java程序并不会被编译成JavaScript,GWT只是创造了一个类似浏览器的环境,直接运行使用GWT开发的程序。这种模式最具生产力(这种模式下可以Debug所有的Java代码),所以开发环境通常使用HostedModel,但是真正的程序执行不使用这种模式。WebModel就是将使用GWT编写的Java程序整整编译成JavaScript,在Web容器上运行,使用浏览器访问的模式,这种方式只有在测试或者运行的时候才使用,每次对Java类的修改必须重新编译这些Java类,之后重新部署应用。所以生产力比较低。GWT技术文档第5页第二章GWT的安装第一步,安装JDK,1.4以上的版本都可以。第二步,安装eclipse,3.2以上版本。第三步,下载WTP1.5.5,并安装。(wtp:webtoolsplatform-----web开发平台)第四步,下载GWT压缩文件并安装-----gwt--cypal[1][1].studio.for.gwt-1.0.zip。第五步,将GWT压缩文件解压缩到制定的目录-----eclipse下的plugins文件夹下。第六步,启动eclipse,打开:windows---preferences---cypalstudio----选择路径:gwt-windows-1.5.2所在目录-----点击完成。第七步,安装成功。GWT技术文档第6页第三章GWT的工程创建3.1在命令行创建GWT工程1在硬盘上新建一个文件夹(项目存放的文件夹)2启动命令行3进入新建的文件夹所在的目录,在命令行输入命令:projectCreator.Cmd-eclipse项目名。如(projectCreator.Cmd–eclipseGWTLogon)4输入命令:applicationCreator.cmd-eclipse项目名包名(包名必须以Client结尾)+类名。如(applicationCreator.cmd-eclipseGWTLogoncom.jpleausre.gwt.logon.client.GWTLogon)5enter键入,开始创建6检查是否创建成功:运行GWTLogon-shell.cmd可以看到GWT启动的服务端的GoogleWebToolkitDevelopmentShell和HostMode的浏览器:7如果创建成功,用eclipse导入项目:打开eclipse----file---import----existingprojectsintoworkspace----next---选择项目所在目录----finish3.2用eclipse创建GWT工程File---newproject---other---web—Dynamicwebproject-----打开对话框,选择版本---选择Configuration的CypalStudioforGWT------填写项目名---finish完成新建一个module,右击项目名---new---other---CypalStudio—GWTModule—next—对话框中填写项目的包结构和类名--next—完成新建一个RemoteModule,右击项目名—new—other—CypalStudio---GWTRemoteService—next—选择包结构—填写类名—next—完成GWT技术文档第7页第四章GWT功能介绍及注意事项4.1体系结构GWT应用中页面一旦加载,就再也不会向服务器请求HTML内容,所有的画面迁移,转换都在客户端进行,但是数据还是会向服务器提交,或者从服务器获取。服务器上负责处理数据的对象在GWT中叫做Service,每个Service有三个类组成:服务方法定义接口(Service),异步调用接口(ServiceAsync)和服务器方法实现类ServiceImpl。以Login为例子说明://服务方法定义接口publicinterfaceLoginServiceextendsRemoteService{publicbooleanlogin(LoginSOlogin)throwsApplicationException;}//异步调用接口publicinterfaceLoginServiceAsync{voidlogin(LoginSOlogin,AsyncCallbackasync);}//服务器方法实现类publicclassLoginServiceImplextendsRemoteServiceServletimplementsLoginService{publi