概要



本文基于客户端检测工具的现实需求,提出了两个利用java/web开发人员普遍熟悉的js、html、java技术,进行客户端工具开发的可行性方案,比较了优缺点。



方法一



实现要点



  1. SWT封装浏览器形成客户端
  2. 工具作为web应用形式开发,可以嵌入到tomcat内嵌服务器运行,也可部署到其他web应用。
  3. 客户端检测工具启动时,启动tomcat内嵌服务器,通过内嵌浏览器访问应用。
  4. 客户端与服务器通过请求\响应模式(b\s)交互。


实现方法与演示



  1. 客户端采用html、js、css技术开发。
  2. 通过org.eclipse.swt.browser.Browser控件展示html页面
  3. 采用servlet实现服务器端业务逻辑
  4. Html页面通过ajax技术与服务器端交互,通过js、css、html技术呈现页面动态效果
  5. 客户端启动时,先展示启动界面,同时开启新线程启动内嵌tomcat,监听到tomcat启动完成后,访问webapp,打开主界面
  6. 客户端退出时,关闭tomcat


优点



开发技术熟悉(web开发技术,js、html、css、javaEE),可以充分利用公司的现有技术资源(组件库)



部署方便,检测和配置工具可以通过嵌入服务器独立运行,也可集成到到其他web应用。



缺点



B\S模式实现前后台交互,可能有迟钝,不能反映实时检测进度,执行效率不高。



方法二



实现要点



  1. SWT封装浏览器形成客户端
  2. 文件检测工具作为html应用形式开发。
  3. 客户端检测工具启动时,打开html页面。
  4. Html页面通过js方法调用java API,javaAPI也可执行浏览器js代码。
     


实现方法与演示



  1. 客户端只要采用html、js、css技术开发。
  2. 通过org.eclipse.swt.browser.Browser控件展示html页面
  3. Java端实现org.eclipse.swt.browser.BrowserFunction,提供js调用java的接口。
  4. Java端通过org.eclipse.swt.browser.Browser的evaluate的方法访问js、dom
  5. Html页面通过java端提供的js调用接口调用java逻辑,通过js、css、html技术呈现页面动态效果


优点



开发技术熟悉(web开发技术,js、html、css、java),可以充分利用公司的现有技术资源(组件库)



去掉了web服务器,采用本地js和java交互,可以实时显示检测进度,执行效率相对提高。



缺点



  1. 检测和配置工具UI界面只能作为工具独立运行,不能集成到其他web应用。
  2. 开始时js代码无法调试
     


总结



优先采用方法一。



如果要强调客户端的实时性,可考虑方法二。