当前位置: 代码迷 >> Web前端 >> GWT网站下线!hotye.com
  详细解决方案

GWT网站下线!hotye.com

热度:197   发布时间:2012-11-23 00:03:43.0
GWT网站上线!hotye.com!

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 开发工具(Eclipse、IntelliJ、JProfiler、JUnit)来进行 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

  相关解决方案