锁定老帖子 主题:GWT网站上线!hotye.com!
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-03-31
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 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
浏览 3239 次