Warning: mkdir(): No space left on device in D:\wwwroot\hackchn.com\auto_cache.php on line 25

Warning: chmod(): No such file or directory in D:\wwwroot\hackchn.com\auto_cache.php on line 26
GWT技术介绍-hackchn文档网

GWT技术介绍

发布时间:2021-12-05 06:12:24

GWT技术介绍
------如何使用Java语言开发Ajax应用

Gift@CJW BUAA-ACT 2007-3-19
1

什么是Ajax
Ajax是 Asynchronous JavaScript and XML(以及 DHTML 等)的缩写,由XHTML、CSS、JavaScript、 XMLHttpRequest、XML等技术组合而成,是当前Web应用 开发领域的热门技术,用于创建更加动态和交互性更好的 Web应用程序,提升用户的浏览体验。 Ajax的核心是JavaScript对象XmlHttpRequest。 XmlHttpRequest处理所有服务器通信的对象,是一种支持异 步请求的技术。 XmlHttpRequest可以使用JavaScript向服务器提出请求并处 理响应,而不阻塞用户。
2

困难在哪,如何解决
因为JavaScript不易调试,所以编写AJAX应用程序往 往让人头痛。 Google Web Toolkit (GWT) 是一个使用Java语言 开发Ajax应用的开发框架。在开发和调试AJAX 应 用程序时,和其它的Java程序没有任何区别,选用 什么样的Java 开发工具完全由自己的喜好所定。 开发完毕以后要部署到应用服务器中,GWT自带的 编译器将Java应用程序编译成与浏览器兼容的 JavaScript和HTML页面。
3

GWT的特点
动态,可重用的UI组件 简单的RPC调用 方便的调试功能 浏览器兼容性(IE,Opera,Firefox…) 可扩展性(JSNI)

4

GWT四大组成
一个 Java-toJavaScript compiler 一个 “hosted” web 浏览器, 两套 Java 类库
5

两种模式
HostMode(宿主模式):未编译前,在 GWT提供的Host Mode的浏览器中查看。可 以用于调试GWT程序,会打出异常位置。 WebMode:编译后,在浏览器中查看。

6

如何开发GWT应用
a.将用到的GWT库添加到IDE里,在IDE中 用Java 语言编写和调试一个应用程序。 b.使用GWT自带的Java2JavaScript编译器将写出来 的代码编译成JavaScript和HTML文件。 c.将编译后的代码发布到Web Server上。 d.检测是否满足主流的浏览器。(一般没有问题)

7

在Eclipse下开发-第一步-创建工程
1. 创建Eclipse工程 第一步使用: projectCreator –eclipse 工程名称 比如: projectCreator -eclipse DemoProject 第二步使用:applicationCreator -eclipse 工程名 称 类包名称.client.类名 比如:applicationCreator -eclipse MyProject org.buaa.client.DemoApplication
8

Eclipse下开发-第二步-导入Eclipse

9

在Eclipse下开发-第二步-修改入口类,添 加相应代码
每一个GWT 程序都有一 个入口点, 必须继承自 EntryPoint 接口,实现 OnModuleL oad方法 其事件触发 模式是类似 于AWT当中 的处理模式。

事件 触发

入口 点

10

在Eclipse下开发-第三步-编译
点击Test-Shell.cmd可以开启Hosted Mode ,并察看运行结果 或者点击Test-Compile.cmd,可以开启Web Mode,将代码解析成为javascript,并可以在 Web浏览器中察看。

11

在Eclipse下开发-第四步-部署和执行
部署到Tomcat等应用服务器当中。

12

GWT类库总览
com.google.gwt.core.client 用于客户端的GWT基本代码 com.google.gwt.core.ext 用于扩展GWT编译器的类. com.google.gwt.core.ext.typeinfo 为支持自动生成功能的类库 com.google.gwt.http.client 提供对HTTP的请求响应处理类 com.google.gwt.i18n.client 国际化 com.google.gwt.json.client 解析和创建Json类型的类库 com.google.gwt.junit.client Junit测试 com.google.gwt.user.client 客户端使用的基本GWT接口. com.google.gwt.user.client.rpc客户端为使用RPC功能的GWT接口. com.google.gwt.user.client.ui Widgets, Panels, 以及其他的UI接口 com.google.gwt.user.server.rpc 服务端为了实现RPC调用实现的接口. com.google.gwt.xml.client XML的解析和使用
13

GWT类库-UI
在UI类库中,GWT提供了若干种widgets 和panels。 所有的类都继承自widget,并被加入到panel中被显 示。 Panels 包括DockPanel, HorizontalPanel, 和RootPanel等 Widgets 包括Composite, FileUpload, FocusWidget, Frame, Hidden, Hyperlink, Image, Label, MenuBar, Panel 和 Tree等等
14

GWT类库-UI组件

15

GWT类库-RPC

16

GWT类库-RPC
客户端和服务端进行交互。 在服务端加入对RPC服务的处理。 在客户端的AsyncCallback接口实现中对结果 进行处理。(异步处理) GWT自动的对各种数据类型进行序列化和反 序列化处理。
17

GWT类库-HTTP
支持POST和GET两种HTTP方法。 例子:GET的使用 HTTPRequest.asyncGet("customerRecord.xml", new ResponseTextHandler() { public void onCompletion(String responseText) { // In the real world, this text would come as a RPC response. This // technique is great for testing and samples though! renderXML(responseText); }
18

GWT类库-DOM的处理
Package com.google.gwt.xml.client 包括对XML类型的解析处理类 Document doc = XMLParser.parse(string); XMLParser.removeWhitespace(doc); 对XML的使用 Node,Element…..etc.
19

GWT类库-JSON的支持
JSON(JavaScript Object Notation) 是一种轻量级的数据交 换格式。易于人阅读和编写。同时也易于机器解析和生成。 它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似 于C语言家族的*惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语 言。 GWT对JSON进行了支持。 JSON的功能可以用XMLDOM代替。
20

JSON格式的例子
使用JSON: {comments:[ { id:1, author:"someone1", url:"http://someone1.x2design.net", content:"hello" }, { id:2, author:"someone2", url:"http://someone2.x2design.net", content:"hello" }, { id:3, author:"someone3", url:"http://someone3.x2design.net", content:"hello" } ]}; 使用XML表示 <comments> <comment> <id>1</id> <author>someone1</author> <url>http://someone1.x2design.net</url> <content>hello</content> </comment> <comment> <id>2</id> <author>someone2</author> <url>http://someone2.x2design.net</url> <content>someone1</content> </comment> <comment> <id>3</id> <author>someone3</author> <url>http://someone3.x2design.net</url> <content>hello</content> </comment> </comments> 21

GWT类库- JSNI native接口
JavaScript Native Interface (JSNI) JSNI方法被声明为native方法,并在如下的 格式中包含了JavaScript代码。他可以支持在 Java代码中嵌入JavaScript. public static native void alert(String msg) /*{ $wnd.alert(msg); }-*/;
22

GWT类库-Junit-对GWT进行测试
继承GWTTestCase抽象类 实现getModuleName方法 public class FooTest extends GWTTestCase { public String getModuleName() { return "com.example.foo.Foo"; } public void testStuff() { assertTrue(2 + 2 == 4); } }

23

GWT-Designer像VB那么拖拽开发

演示
1)如何建立GWT工程 2)如何在Eclipse里进行开发 3)开发GUI以及进行相应的事件处理 4)RPC调用以及同GUI的结合 5)HTTP异步调用以及DOM-XML格式的处 理
24

GWT小结
使用一、二种技术(gwt、css)取代web应用中 的各种技术(html,javascript,jsp,以及java 的各种框架),使开发者不再需要在各种技术 之间debug; 为webapp开发的vb化提供了API,可以使用 拖拽的形式开发。

25

26

参考资料
官方网站:http://code.google.com/webtoolkit/ 国内的介绍: http://www.javaeye.com/subject/GWT IBM的相关文章: http://www.ibm.com/developerworks/cn/java/j-logwt-intro/index.html http://www.ibm.com/developerworks/cn/java/j-logwt-dev/ http://www.ibm.com/developerworks/cn/opensourc e/os-ad-gwt1/
27

参考资料
开发工具: http://www.instantiations.com/gwtdesigner/in dex.html JSON: http://hi.baidu.com/childman/blog/item/d916 4bed3e678dd4b31cb1d2.html
http://home.fego.cn/members/sys/m_Blog/Detail.a spx?id=6179
28


相关文档

  • GWT技术分享
  • GWT介绍
  • Ajax技术简介及GWT技术介绍
  • GWT技术文档
  • 入门GWT
  • GWT开发教程
  • gwt-dispatch介绍
  • EXT-GWT介绍
  • 猜你喜欢

  • 文明礼仪在我心中演讲稿范文
  • 六一国际儿童节祝福语
  • 应收会计年终总结
  • 【语文专题推荐】考点综合复*小学语文小升初模拟试卷III卷
  • words and phrases in unit1 book 8
  • 丽江佳惠工贸有限责任公司(企业信用报告)- 天眼查
  • 关于Mat的拷贝
  • 自制祛痘面膜 最全面方法都在这里
  • windows server 2008网络操作系统期末复*题一
  • 化工企业冬季安全生产[优质ppt]
  • 浦口区顶山街道临泉社区居家养老服务中心企业信用报告-天眼查
  • 国旗下的讲话--做一个文明之人
  • 天使助学图书募捐活动策划书
  • 江苏省泰州中学2015-2016学年高二历史下学期期中试题(扫描版)
  • 2017-2018学年度第二学期八年级语文第5课《大自然的语言》导学案(无答案)
  • 祁县红海玻璃有限公司(企业信用报告)- 天眼查
  • 【精品文档】食品的售后服务承诺书-推荐word版 (2页)
  • 2013届全优设计高三生物一轮复习精品课件5.1生态系统的结构和能量流动(人教必修3)
  • 河津市玉米机械化生产实践与探究
  • WAYOUT-QP-15策划方案文档控制程序
  • 2019届高考政治一轮复*第四单元发展社会主义市抄济第9课走进社会主义市抄济课件新人教版必修1201804202151
  • 新版报关单修改内容解读
  • vue---点击切换不同的图片
  • 基于EM算法的MIMO-OFDM系统半盲信道估计研究
  • 各种节日作文 关于六一儿童节的英语作文-精品
  • 2018届一轮复* 人教版必修4 Unit5 theme parks 课件
  • “走帮服”心得体会【DOC可编辑范文】
  • 2020年河北邢台市襄都区招聘编外幼儿园教师公告200人
  • 马鞍山立飞蔬菜销售有限公司企业信用报告-天眼查
  • 固定工资操作手册
  • 监开鳌⒐??咳占觳榧锹急
  • 现代汉语的方位短语及其相关结构
  • 2019-2020学年高三英语下册教学计划
  • 纸杯子创意手工制作图解
  • 关于悲伤的散文
  • 新编日语第三册第2讲
  • 凤仙花种植日记
  • 媒介传播中的主持人职业角色特殊性探析
  • 《中文版Illustrator CC 2015*面设计实用教程》课件07 图层和蒙版的使用
  • 苏教版2015-2016学年度五年级上数学期末试卷及答案
  • 鞍山市慧升炉料有限公司企业信用报告-天眼查
  • 小学美术欣赏课有效教学策略研究
  • 电脑版