论坛首页 入门技术论坛

GWT网站上线!hotye.com!

浏览 3246 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-03-31  
GWT

GWT hotye.com 好易自助终端

 

 

经过1年多来反反复复改版、业务需求逻辑不断变化,广州最大自助终端好易,其网站hotye.com定版3.1,hotye网站由java gwt开发。开发人员3-6名。

 

没有听过gwt? gwt是什么? 以下为你浅析gwt以及hotye.com

 

 

 

gwt 是什么

gwt全称google web toolkit 由google的开源项目,用java开发、调试类似swing代码,最终编译成javascript。

接触过gwt的都感觉gwt是一个十分有趣项目:

 

1 独创host模式,开发、调试ajax代码:

1.1编辑 Java 代码,然后立即查看更改而无需重新编译

1.2使用 Java 调试器单步调试当前 AJAX 代码

1.3编译和部署优化的、跨浏览器的 JavaScript

 

什么是host模式?以下是host模式运行图,host模式即你所编写的java网站代码运行在java虚拟机上,并能调试:

hosted mode, the application is running in the Java Virtual Machine (JVM). This is typically the mode you'll use to debug your applications.

 

 

 

 

2 gwt不是开发javascript的替代品,gwt是一个优秀网络应用程序解决方案:

2.1 RPC 与服务器通信 :支持JSON与XML,并提供google rpc

2.2 跨项目重复使用 UI 组件,使用其他 JavaScript 库和本机 JavaScript 代码

2.3 国际化,跨浏览器,java开发工具提高生产力,java特性,junit单元测试

可以使用所有喜欢的 Java 开发工具(EclipseIntelliJJProfilerJUnit)来进行 AJAX 开发

 

 

 

hotye.com 架构

 

在广州的朋友一定对银行里摆放的好易自助终端不陌生,好易是一家提供自助金融服务的企业,业务覆盖:羊城通、移动联通花费、彩票、一站式车主服务(交罚、车船税、商业险、交强险等)。

 

好易网在整个好易平台中,模拟成一个好易终端机,提供在线业务,将网站请求转发到内部系统,并连接银联与各大机构完成交易。好易网还提供会员积分营销功能。

 

定义一个gwt servlet服务与spring整合,获得前端进行本地处理------->好易综合服务系统------->各大业务方(银联、移动、彩票中心)

 

这不是卖广告么?有空看看这个这个gwt开发的网站,批判批判:www.hotye.com

 

 

 

gwt浅析

 

3.1 结构:gwt把一个组件定义为一个模块

以下是一个gwt模块的代码结构:

 

A.client包:ajax的java代码实现

 

B.定义xml,让gwt引擎编译运行你这个模块

 

C.public文件夹下存放html以及css(当然,可以改写代码,把全部模块资源文件存放到某个文件下,便于生成发布)

 

 

3.2 google web toolkit Serializable gwt序列化:

gwt提供rpc请求与后台交互,支持JSON与XML,默认GWT RPC其序列化后传递数据格式如下:

传输一个book对象:

[4,1237909072078,3,200.0,2,1,["demo.javaclient.MyClient$Book/1105674023","WANGZX","java.util.Date/1659716317","TITLE"]]   

 

 

 

3.3 host模式运行原理

 

host模式下,在java IDE中开发类似swing代码,即可运行具有ajax效果的应用,其原理:

 

A.站长巨人肩膀上,封装ui的js并使用org.eclipse.swt.browser.Browser显示出来。

B.内嵌Tomcat获得html资源

 

以下是host工作流程图:

1.GWT使用了 eclipse swt 来构建HOST模式的用户界面,在其中嵌入了一个浏览器(在我的机器上,是IE浏览器),GWT同时使用了SWT提供的访问os native/COM的相关机制。对于浏览器窗口,GWT在其中设置了一个external 变量,window.external, 现在这个window.external 指向的 IDispatch 对象实际上是一个 Java 对象来的,对其的方法调用将变为对java代码的调用。

 

2.url请求host模式下GWTShellServlet获得图片,css

 

3.html装载完毕后运行,由no-cache.js调用external变量

 

4.external变量的调用其实是java代码的调用,Java对象被包装成为一个 IDispatch 对象,javascript 中 对这些对象的访问都会动态的调用回 java

 

 

 

其他帮助:

1.gwt官网:http://code.google.com/intl/zh-CN/webtoolkit/

2.一个很久没有更新的工具包:http://code.google.com/p/macaufly-gwt-tool/

3.gwt如何动态调用java:http://wangzaixiang.blogspot.com/2006/08/discover-gwts-host-mode.html

论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics