概要
本文基于客户端检测工具的现实需求,提出了两个利用java/web开发人员普遍熟悉的js、html、java技术,进行客户端工具开发的可行性方案,比较了优缺点。
方法一
实现要点
-
SWT封装浏览器形成客户端
-
工具作为web应用形式开发,可以嵌入到tomcat内嵌服务器运行,也可部署到其他web应用。
-
客户端检测工具启动时,启动tomcat内嵌服务器,通过内嵌浏览器访问应用。
-
客户端与服务器通过请求\响应模式(b\s)交互。
实现方法与演示
-
客户端采用html、js、css技术开发。
-
通过org.eclipse.swt.browser.Browser控件展示html页面
-
采用servlet实现服务器端业务逻辑
-
Html页面通过ajax技术与服务器端交互,通过js、css、html技术呈现页面动态效果
-
客户端启动时,先展示启动界面,同时开启新线程启动内嵌tomcat,监听到tomcat启动完成后,访问webapp,打开主界面
-
客户端退出时,关闭tomcat
优点
开发技术熟悉(web开发技术,js、html、css、javaEE),可以充分利用公司的现有技术资源(组件库)
部署方便,检测和配置工具可以通过嵌入服务器独立运行,也可集成到到其他web应用。
缺点
B\S模式实现前后台交互,可能有迟钝,不能反映实时检测进度,执行效率不高。
方法二
实现要点
-
SWT封装浏览器形成客户端
-
文件检测工具作为html应用形式开发。
-
客户端检测工具启动时,打开html页面。
-
Html页面通过js方法调用java API,javaAPI也可执行浏览器js代码。
实现方法与演示
-
客户端只要采用html、js、css技术开发。
-
通过org.eclipse.swt.browser.Browser控件展示html页面
-
Java端实现org.eclipse.swt.browser.BrowserFunction,提供js调用java的接口。
-
Java端通过org.eclipse.swt.browser.Browser的evaluate的方法访问js、dom
-
Html页面通过java端提供的js调用接口调用java逻辑,通过js、css、html技术呈现页面动态效果
优点
开发技术熟悉(web开发技术,js、html、css、java),可以充分利用公司的现有技术资源(组件库)
去掉了web服务器,采用本地js和java交互,可以实时显示检测进度,执行效率相对提高。
缺点
-
检测和配置工具UI界面只能作为工具独立运行,不能集成到其他web应用。
-
开始时js代码无法调试
总结
优先采用方法一。
如果要强调客户端的实时性,可考虑方法二。