GWT开发的8个忠告.docVIP

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Google Web工具包(GWT)确实是使用Java开发Ajax应用的一种诱人方法。如果你在AWT/Swing/SWT和服务器小程序方面有着扎实背景,实际上很容易学会使用GWT,但如果要做的不仅仅是快速原型设计,那么某些难题仍然存在。 忠告之一: 分而治之 众所周知,GWT应用就是Java应用。不过,问题在于是“哪种Java”,我们需要牢记: GWT编译的是与J2SE 1.4.2或者更早版本兼容的Java源代码。另外,只有J2SE 1.4.2 API的子集得到支持,即java.lang和java.util程序包。即便在使用这些程序包时,也要非常认真地研究Google在运行库支持方面的注释,并且牢记相应的忠告: 如果确保从一开始就只使用客户端代码中的可转换类,那么就可以避免许多问题。为了及早发现问题,只要在宿主模式(hosted mode)下运行,就要对照JRE仿真库检验代码。因而,第一次运行应用时,就会发现大部分不支持的库。所以,要及早并且经常运行。 现在,笔者给出的忠告就是“分而治之”,具体意思就是一开始就把应用代码分成三个不同的部分: 客户端代码、RPC相关代码和服务器端代码,然后构建相应的Eclipse项目,从而完成任务。这样一来,就可以利用不同的Java语言版本,用于客户端和服务器部分。笔者用Java 5构建了应用的服务器部分(服务器小程序代码); 但如果使用Mustang版本,那么在本文的代码片段中(由于篇幅有限,本文所涉及的程序代码可通过以下链接查询: /article-htm-itemid-17924-type-blog.html),可以用Java 6取代Java 5。即便在服务器端仍然使用J2SE 1.4.2,这种分治法也可以在将来提供更大的灵活性,明确分离代码(“分离问题”),而不会在GWT宿主模式下限制调试操作。如果所有部分都在一个 Eclipse项目中,则需要非常严谨,特别是在服务器端上; 不然,就会出现编译或者运行问题。 需要使用特殊的命名约定,这样可以清楚确认不同项目,并且简化部署脚本。可以使用譬如名为GWT- ModuleName的Eclipse工作集来包括所有三个项目。这里,“ModuleName”是识别Web应用的GWT模块的名称。 ● 客户端代码: 包含与用户界面相关的代码,可以转换成JavaScript。因此,局限于J2SE 1.4.2和GWT运行时支持。启用每个项目的Eclipse Java编译器设置和“Java编译器错误/警告”,把Java依从级别调整到1.4、把源代码和类文件兼容性调整到1.4(假设不是使用1.4之前的 JDK版本)。该项目的名称是 ModuleName-client,譬如“JUnit2MR-client”,它依赖于构建路径设置中的 ModuleName-rpc项目。程序包名称类似 ject.gwt. moduleName.client。 ● RPC相关代码: 包含RPC相关的代码,可以转换成JavaScript。该项目遵从与上述客户端代码项目同样的指导准则。项目名是 ModuleName-rpc,譬如“JUnit2MR-rpc”,它并不依赖于其他任何项目。程序包名称与 ModuleName-client项目的程序包名称一样。RPC项目包含客户端上的远程接口、RPC期间由GWT进行序列化的数据传输对象,以及全局常量类。 ● 服务器端代码: 含有服务器小程序代码,如果服务器端由Java服务器小程序组成的话。如果使用Tomcat 5.5或者Tomcat 6,可以充分利用Java 5+的全部功能。启用每个项目的Eclipse编译器设置,然后使用Java 5编译器设置,依从级别设置为5.0。如果使用Eclipse 3.2.2,那么其新的“源代码→清理”特性也值得配置。该项目名称是 ModuleName-server,譬如“JUnit2MR-server”,它依赖于构建路径设置中的 ModuleName-rpc项目。如果按照GWT的默认程序包提案进行编程,程序包名称是 ject.gwt. moduleName.server。 忠告之二: 调试和错误报告不仅仅只有Window.alert () 在创建GWT应用时,其实可以使用IDE的全部调试功能。但在深入分析何处可能出现错误之前,需要代码的客户端和服务器端都有可靠的异常报告机制。使用try/catch代码块通常可以做到这一点。在客户端的catch代码块中,应当注意这一现实: 默认的方法调用e.printStackTrace()并不是在所有情况下都适合的解决办法。它适用于应用运行在GWT宿主模式下,把文本输出到 Eclipse控制台。不过在Web模式下,要问问自己: “我发送到stdout或者stderr的堆栈跟

文档评论(0)

cycpme07 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档