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
分享到:
相关推荐
3. **服务端入口点**:在`gwt-servlet-2.3.0.jar`中,`com.google.gwt.user.server.rpc.RemoteServiceServlet`是主要的入口点,它继承自`javax.servlet.http.HttpServlet`,实现了对GWT RPC请求的处理。 4. **安全...
gwt-benchmark-viewer.jar
Google Web Toolkit(GWT)是Google推出的一款强大的开源框架,专为开发富互联网应用程序(Rich Internet Applications,RIA)而设计。GWT通过让开发者使用Java语言编写前端代码,然后自动编译成高效的JavaScript,...
5. **异步通信**:GWT支持AJAX技术,使得Web应用能够实现页面无刷新的交互体验,通过`com.google.gwt.user.client.rpc.RPC`服务进行服务器端调用。 6. **开发工具**:GWT提供了一个强大的集成开发环境(IDE)插件,...
gwt-servlet-1.4.61.jar
the Gwt Developer Plugin For Firefox
Manning.GWT.in.Practice.Apr.2008
《Accelerated GWT: Building Enterprise Google Web Toolkit Applications》是一本专注于使用Google Web Toolkit(GWT)开发企业级Web应用程序的专业指南。这本书详细介绍了如何利用GWT的强大功能来构建高效、可...
标题"GXT2.0 EXT=GWT !!!!"揭示了一个关键信息,即GXT(Ext GWT)的版本2.0。这是一个基于Google Web Toolkit(GWT)的UI组件库,它允许开发者使用Java来构建富互联网应用程序(Rich Internet Applications,...
gwt-dev-windows.jar 大小:9.60 MB
gwt-windows-1.7.1.zip samplesgwt-windows-1.7.1.zip samplesgwt-windows-1.7.1.zip samplesgwt-windows-1.7.1.zip samples
in.cypal.studio.gwt.samples_1.0.0.200808282244.jar
in.cypal.studio.gwt.core_1.0.0.200808282244.jar
标题 "gwt developer plugin.rar" 暗示我们关注的是Google Web Toolkit (GWT) 的开发者插件。GWT 是一个开源的Java框架,用于构建和部署富互联网应用程序(RIA)。开发者插件则是用于支持GWT开发环境的重要工具,它...
gwt-servlet.jar 大小:701 KB The GWT Servlet Library supports the ...
gwt-2.7.0.part2.rar 官网下载最新版,提供给大家使用
标题 "Packt.Google.App.Engine.Java.and.GWT.Application.Development.Source.Code" 暗示了这是一个关于使用Java和GWT在Google App Engine上开发应用程序的源代码包。这为我们提供了几个关键知识点: 1. **Google ...
gwt-windows-1.7.1.zipgwt-windows-1.7.1.zipgwt-windows-1.7.1.zipgwt-windows-1.7.1.zipgwt-windows-1.7.1.zipgwt-windows-1.7.1.zip
atmosphere-gwt-client-1.1.0.rc2.jar