积木首页 | 500多种网页特效 | 函数手册 | 广播电台 | 高清晰图片素材 | 服务器合租 | 万年历 | 网友最新浏览记录
程序开发 网页设计 搜索引擎 特效代码 操作系统 防范病毒 黑客技术 图形图象 电脑硬件 网络技术 服 务 器 数 据 库 网文精粹
您的位置:积木首页 >> 程序开发频道 >> JAVA >> 正文:
标题:Java Web Start 开发指南(三)
时间:2004-3-9 来源:不详 浏览数:
五、使用自动下载特性
Java Web Start 1.2 提供的“一次点击”自动下载安装的功能使得需要Java Web Start的终端用户更易使用。
说明:此特性只在Microsoft Windows平台支持。

为了使用这个功能,开发者必须在其应用所驻留的web页面中提供一些脚本。这些脚本将用于判断终端用户的浏览器是Netscape Navigator 还是 Internet Explorer ,并且检测客户机系统中是否安装有Java Web Start。根据这些检测结果,应用所在web页面的其他脚本将开始自动下载和安装Java Web Start,随后将下载和安装应用程序。

NetScape Navigator中使用的JavaScript


以上脚本检测客户浏览器是否是IE,如果是的话,变量isIE被设置为"true",否则的话,如果为Netscape Navigator 浏览器,此变量设为"false"。如果浏览器为Netscape Navigator 的话,脚本将检测MIME类型来判断是否安装有任何版本的Java Web Start。如果是的话,将设置javawsInstalled 和 javaws12Installed 两个变量为1。这段脚本不能确定具体何种版本的Java Web Start已经安装。

Internet Explorer 中使用的VBScript
设置IE浏览器中变量的VBScript脚本将紧随前面的JavaScript脚本。


如果前面的JavaScript脚本中设置了isIE=true,也就是说终端用户的浏览器是IE的话,以上VBScript将会执行,以上VBScript将会试图创建JavaWebStart.dll中的"isInstalled" COM 对象,这个对象能说明两件事:
1、客户机是否安装有最新的1.2版本Java Web Start.
2、客户机是否安装有任意版本的Java Web Start,而不关心版本数。

如果安装有1.2版,javawsInstalled 和 javaws12Installed 全部为1,如果安装有1.2以前版本,javawsInstalled为1、javaws12Installed为0;如果没有安装任何版本的Java Web Start的话则全为0。

初始化自动下载
以上两段脚本执行后,javawsInstalled 和 javaws12Installed应该已经设置为1或0了。
余下的JavaScript根据这些信息将决定是否初始化java web start的自动下载或者提供一个指向Java Web Start应用的jnlp文件的超级链接。(以下示例假定开发者的应用部署在www.yyy.zzzweb服务器上):





(以上代码中的"?"和"&"行结束符是为了代码的可读性是用的,实际应用中在超级连接中不应有断点)

上述示例脚本调用了浏览器检测脚本xbDetectBrowser.js。xbDetectBrowser.js此脚本在本文(二)中可以找到。

如果javawsInstall 是1,说明客户机已有Java Web Start可用,脚本将生成一个指向jnlp文件的连接。如果客户机没有安装Java Web Start,脚本将提供一个指向位于java.sun.com web站点上的PluginBrowserCheck 程序。PluginBrowserCheck 核对客户是否使用windows平台的IE。如果是的话,PluginBrowserCheck 将客户浏览器导向http://www.yyy.zzz/download.html.
download.html文件是开发者放置在web服务器上的文件。它包含有特殊的OBJECT和PARAM标记,这些标记用来下载一个Java Web Start的自动安装程序到客户机上。与Java Web Start一起还有一个ActiveX控件会下载导客户机上。这个ActiveX将使用新安装的Java Web Start来启动应用。
以下是示例download.html文件:






这里的OBJECT标记将获取一个包含Java Web Start1.2自动安装程序的cab文件。此cab文件不包含Java Runtime Environment(Java运行时环境),所以在你是用自动下载特性之前需要安装有Java Runtime Environment。PARAM标记指定你的java web start应用程序的jnlp文件,这样的话,在Java Web Start在客户机上安装后能够启动你的Java Web Start应用程序。

备注:要设置这个文件使之下载全部的jre,而不只是Java Web Start 1.2的话,用以下的示例HTML代码替换前面的OBJECT 标记:
CLASSID="clsid:5852F5ED-8BF4-11D4-A245-0080C6F74284" HEIGHT=0 WIDTH=0>

这样将会初始化自动下载任务,如果客户机还没有安装Java Web Start 1.0.1x的话。如果已经安装有Java Web Start 1.0.1x,要强制执行自动下载的话,在CODEBASE中使用以下URL:
http://java.sun.com/products/plugin/autodl/jinstall-1_4_1-windows-i586.cab#Version=1,0,0,2

参考前面的JavaScript脚本示例:
如果PluginBrowserCheck检测到客户机不是使用MS平台的IE的话,客户机将被重定向到java.sun.com上面的shell脚本,此shell脚本将为Java Web Start提供一个相应的手工下载页面。

PS:希望有共同爱好的朋友到www.redsec.org安定论坛与我交流


(责任编辑:笑虎)
关于本站 | 广告服务 | 联系我们 | 版权申明 | 强强联盟 | 投稿热线 | 网站地图 | 申请链接
Copyright ©2005-2006 Gimoo.net All rights reserved. 积木网 版权所有
E-mail:gimoohr@gmail.com 京ICP备05050695号