注册 | 登录
收藏 | 帮助
热门文章
编辑推荐
相关文章  
网友经验:手工剿灭木马“advapi
为imail和Mdaemon设计Webmail---
Jaz-drive HOWTO -- 1. 导言
Jaz-drive HOWTO -- 2. Jaz 磁碟
Jaz-drive HOWTO -- 3. 电脑确认
Jaz-drive HOWTO -- 4. Jaz 磁片
Jaz-drive HOWTO -- 5. Linux 上
Jaz-drive HOWTO -- 6. 从 Jaz 磁
AVL树的实现(源码)
使用CODECs压缩Wave音频
您现在的位置: 顶尖设计 >> IT学院 >> 编程开发 >> Java >> 文章正文
Java咖啡馆(11):Java插件技术
作者:佚名  来源:不详  点击:  更新:2006-12-19
简介:

1.Java插件技术

   Java插件技术(Java Plug-in technology)是一个神奇的设计,它架起了时下流行的浏览器(包括Internet Explorer,下面简称IE,Netscape Navigator,下面简称NN以及Mozilla)与Java平台之间的桥梁。也就是说,只需要一个浏览器,它不必内置Java虚拟机(比如与Windows XP捆绑销售的IE 6),也不必特意安装Java运行环境,在打开包含Java Applet的网页时,只要按照浏览器提示安装这个Java插件后便能任意运行Applet了,而这个安装过程与安装Macromedia Flash、3721等插件一样简单。

   要知道,Java插件技术与我们上回咖啡馆中介绍的运行Applet的方法有着本质上的区别。

   在上回Java咖啡馆中,我向大家介绍了Applet编写过程,以及在IE中运行Applet的方法。回忆一下,我们是通过在HTML网页中嵌入<applet>标签实现的。实际上,如果你的系统中已经安装Java运行时环境时,当浏览器遇到<applet>标签时,浏览器便会启动Java虚拟机,从网上下载Applet的class文件后执行它。这种方法有两个明显缺点:第一,如果系统中如果没有Java运行时环境,浏览器便会名正言顺地怠工,拒绝执行Applet;第二,如果系统中的Java运行时环境版本过低,而Applet又使用了新版本中的新技术,这也将导致Applet运行不正常。

   而Java插件技术可以很好解决这两个问题。本质上,Java插件技术是借助浏览器的插件机制给客户端安装或更新Java运行时环境的技术。目前流行的浏览器都有插件机制,比如Mozilla、NN的plug-in技术,IE的ActiveX构件技术。当这些浏览器遇到网页中Java插件标签时,会自动连接到Sun公司的服务器下载或者更新Java运行时环境,然后可以运行Applet程序了。省却了用户自行安装Java运行时环境的不便,这真是一个漂亮的实现。

2.通过Java插件技术调用Applet

   Java插件技术不能依靠<applet>标签调用Applet了,你必须像调用其他NN的插件或者IE的ActiveX构件一样调用Java插件。

   还是拿例子来说明一下。我们原先的sample.htm网页是这样调用Applet的:

<applet code="NewsApplet.class" codebase="." width=480 height=384>
<param name="from" value="Prince Charming">
<param name="to" value="Cinderella">
</applet>  对应于NN的Java插件,需要这么写: <embed type="application/x-java-applet;jpi-version=1.5"
code="NewsApplet.class"
width=480
height=384
pluginspage = "http://java.sun.com/products/plugin/index. html#download"
from="Prince Charming"
to="Cinderella">
</embed>

  而对应于IE的ActiveX构件技术的Java插件,需要这么写:

<object classid="clsiD:CAFEEFAC-0015-0000-0000-ABCDEFFEDCBA"
codebase="http://java.sun.com/update/1.5.0/jinstall-1_5_0-Windows-i586.cab#Version=1,5,0,0"
width=480 height=384>
<param name="code" value="NewsApplet.class">
<param name = "type" value = "application/x-java-applet;jpi-version=1.5">
<param name="from" value="Prince Charming">
<param name="to" value="Cinderella">
</object>

  当然,如果想写出可以适应所有浏览器的调用Java插件的代码,可以利用NN忽略<object>与<comment> 标签,以及IE忽略<embed>标签的事实来个嵌套,类似于

<object ...>
<comment>
<embed ...>
</embed>
</comment>
</object>  这样,无论是IE还是NN都会乖乖执行Applet并且让王子对灰姑娘说出那一个字了。

3.升级情人节的Applet

  现在是时候把情人节的Applet程序升级一下了,很简单,惟一要做的就是把原先index.htm代码中的如下部分进行修改:
...

document.write('<applet code="NewsApplet.class" codebase="."width=480 height=384>');
document.write(' <param name="from" value="' + from + '">');
document.write(' <param name="to" value="' + to + '">');
document.write('</applet>');...  修改后的代码为:
... document.write('<object classid="clsiD:CAFEEFAC-0015-0000-0000-ABCDEFFEDCBA" codebase="http://java.sun.com/update/1.5.0/jinstall-1_5_0-Windows-i586.cab#Version=1,5,0,0" width=480 height=384>');
document.write(' <param name="code" value="NewsApplet.class">');
document.write(' <param name = "type" value = "application/x-java-applet;jpi-version=1.5">');
document.write(' <param name="from" value="' + from + '">');
document.write(' <param name="to" value="' + to + '">');
document.write('</object>');...
  注意,为了节约篇幅,这里仅仅给出了对应IE的ActiveX的代码。






  • 上一篇文章:
  • 下一篇文章:
  • 分享此文:该页面添加到 Mister Wong 添加到雅虎Yahoo!收藏 Add to:Del.icio.us Post to Furl Digg this 添加到Google书签 reddit spurl blogmarks 365Key 评论  收藏  分享  打印
     我来说两句
    姓名:       验证码:   
    主页: 
    评分: 1分 2分 3分 4分 5分
    本频道近期热评文章:
      关于我们 | 联系我们 | 站点地图 | 广告投放 | 友情链接 | 在线留言 | 版权申明
    版权所有 © 2004-2007 顶尖设计(bobd.cn)
    未经授权禁止转载,摘编,复制本站内容或建立镜像. 沪ICP备07504942号 
    网络110
    报警服务