Java Applet给ActiveX跪下了

 耸人听闻!Java
Applet又不是人,怎么能跪下呢?就是跪下,又怎么能给ActiveX这个手下败将跪下呢?

  曾几何时,Java
Applet把ActiveX踩在了脚底下。ActiveX不安全,而Java Applet因为虚拟机的技术,能够构造Sandbox,Java Applet可以在SandBox里面运行,而Sandbox可以排除Java Applet的任何危险动作,诸如针对本地文件的IO等等。正因如此,当然也因为Java阵营的添油加醋的造势和炒作,弄得大多数的公司把自己的防火墙配置成禁止任何ActiveX通过。网页上的ActiveX成为安全漏洞的代名词。

  Java
Applet真正把ActiveX踩在了脚底下。同时,正是因为Applet上的成功,使得Java成为网络时代的代名词,星星之火,燎原于世。一个为小设备和网上小程序准备的语言,终于成为全功能语言,进入企业级,形成自己的开发平台,把Microsoft打的还不了手。Microsoft不得不全方位改造自己的开发语言,或多或少向Java看齐。大家都知道,这就是.NET开发语言的来历。没有Java,VB不可能这么快就变成VB.NET,也不会有C#,更不会有.NET Common Runtime等等,恐怕没有人不同意吧。

  Java的成功始自Java
Applet,而对Java Applet的支持始自Netscape。后来Internet Explorer跟进,随后所有的浏览器都必须支持Java Applet。在Netscape如日中天的时候,Microsoft不敢多想,所以Internet Explorer一直老老实实地支持Java Applet。但是Netscape并不领情,所以Netscape对ActiveX的支持一直局限在选择安装的Plug-in的水平上,也就是说,除非用户安装一个Plug-in,不然不能在Netscape浏览器里面运行ActiveX。而一般用户根本就不知道还需要安装另一个软件;或者知道需要安装,但是不知道怎么安装;或者知道需要安装,也知道怎么安装,但是因为怕麻烦等原因没有安装。那么对不起,用户没法浏览带有ActiveX的网页。

  任何网站开发人员也非常清楚这一点。他们如果在网页上面使用ActiveX而不是Java
Applet的话,那么估计有一半的互联网用户因为使用Netscape浏览器,将无法使用他们的网站。在顾客至上的考虑下,唯有选择Java Applet,放弃ActiveX。

  这简直就是一种不平等条约,但是那个时候Microsoft没办法反击。

  现在不同了,一方面Netscape已经从一只老虎变成了一只猫,另一方面Microsoft赢了官司,不必要在操作系统中加载JVM。Microsoft反击了。现在的IE6.0已经把对Java的支持降到了选择安装的Plug-in的级别,也就是说,除非用户在安装完IE之后,再自行安装一个JVM才能运行Java
Applet。对于普通用户来说,这只能带来不便,是一种倒退。

  但是对Microsoft来说,不平等条约又变成了平等的,只是代价…。

  我们不妨考察一下现在的IE6如何支持Java
Applet吧。要想在IE上面运行Java Applet,网页开发人员可以指定某一个版本的,Sun JVM Plug-in(专为IE开发的那种),就可以触发IE自动下载这个Plug-in。比如下面的标签声明了一个Java Applet,类名为com.cmpc.CMPCApplet3,它需要1.4.1或更新的SUN JVM(为IE开发的Plug-in):

<object
classid = "clsid:CAFEEFAC-0014-0001-0003-ABCDEFFEDCBA"
width="320"
height="240" name="CMPC"
codebase="http://java.sun.com/products/plugin/autodl/jinstall-1_4-windows-i586.cab#Version=1,4,1,mn">
<param
name="code" value="com.cmpc.CMPCApplet3">
<param
name="cache_archive_ex" value="preload;1.0.0.4">
</object>

  在JVM下载、安装完毕之后,IE会自动运行这个Applet。当然,每一个版本的JVM下载和安装只发生一次,除非另外一个Applet需要另一个版本的JVM,不然就不需再次下载和安装了。这倒也不是特别大的不便,特别是对于有高速上网条件的用户来说。可要是您用的是56K
Modem的话,这就是个问题,您可能就需要另外找到这个版本的JVM的CD,自己在机器上安装,然后再浏览需要这个JVM的网页。

  读者可能还看不出:Java跪在哪了?我跑题跑得太厉害了吧?

  慢着,您仔细看看上面的标签。那里说明了这个JVM是一个ActiveX。

  奇怪吗,想想也不奇怪。IE的Plug-in必须是ActiveX。JVM降到了Plug-in级别之后,也就降到了一个普通的ActiveX的级别。所有的Java
Applet都是在这个ActiveX里面运行的小程序。

  更为安全和强大的Java
Applet必须依赖于ActiveX才能运行。严格地讲,还是在一个ActiveX内部运行。

  再想一想就更有趣了,如果用户继续坚信Java阵营当初的宣传的话,用户的防火墙根本就不会让身为ActiveX的SUN
JVM穿过去,用户也无法让IE自动安装JVM。那样的话,用户的出路也只有一个:就是找张CD,然后在各台机器上手动安装。不过根据Netscape用户的经验,没有人耐烦这样做。

  您告诉我,Java
Applet是不是跪着呢?

时间: 2024-09-28 05:47:29

Java Applet给ActiveX跪下了的相关文章

一个经典的JAVA APPLET时钟程序(一)

程序   转眼间一年又要过了,自己又老了一岁,郁闷啊.趁着还有几分钟才新年,赶快再发几篇文章,给过去的一年添点东西. 该程序是从网上发现的,是一个简单的时钟显示程序. 代码特色:时钟代码提供了各种接口,可以在HTML文件中设置,变化出多姿多彩的时钟模型,参数说明见代码内info数组 时钟的绘制采用双缓冲图形处理机制,即先在缓冲区内绘制图形,再把图形显示到网页上可以有效的防止闪烁. 另外时钟的不断绘制是通过一个线程不断读取系统时间,如果时间有变化即绘制.采用一个线程绘制,一个线程处理网页比较符合A

求出e=1+1/1!+1/2!+1/3!+……+1/n!+……的近似值的java applet程序

程序 //求出e=1+1/1!+1/2!+1/3!+--+1/n!+--的近似值,要求误差小于0.0001import java.applet.*;import java.awt.*;import java.awt.event.*;public class AT1_1 extends Applet implements ActionListener{  TextField text1; Button Button1;  public void init() {  text1 = new Text

Java、Java Applet与 &#106avascript间的通信

摘 要:本文着重阐述了网页开发中,通过灵活使用从JavaScript语言中访问Java的方法.从JavaScript中访问JavaScript小程序的方法与变量,以及在Java Applet小程序中使用JavaScript等技术,实现这几种网页开发语言的互相补充,以开发更完美的Web应用程序. JavaScript是用于HTML环境的开发语言,提供了能够响应Web页面事件的脚本,可以完全访问浏览器窗口的各个方面,善于合并HTML.Java Applet小程序.插入件.服务器方程序和其他Web组件

利用Java Applet编程实现动画特技

编程 绘 制 动 画 十 分 简 单, 只 需 遵 照 以 下 三 步 即 可:(1) 擦 去 整 个 小 程 序 绘 图 区:(2) 重 画 动 画 背 景:(3) 在 新 的 位 置 绘 制 图 形. 但 是, 当 动 画 连 续 帧 之 间 运 动 和 颜 色 不 连 续 时 就 会 发 生 闪 烁 现 象( 例 子 略). 问 题 出 在 小 程 序 区 的 屏 幕 刷 新 上, 有 两 种 方 法 可 以 防 止 动 画 闪 烁. 第 一 种 方 法 是 只 做 局 部 刷 新, 即

下一代Java Applet插件技术

Applet回来了! 为了在网络中传递你的程序,是时候再次考虑Java Applet技术了.下一代Java插件技术以一种不同的 ,比过去更高效.更可靠的途径来运行Applet.现在你可以获得如下好处: 增强的可靠性 改进的用户体验 在后台启动Applet 内建的JNLP支持 针对每个Applet的命令行参数 堆内存大小,Java 2D API加速选项 改进的Java/JavaScript程序设计语言集成 改进的Windows Vista支持 签名的Applet现在可以在Internet Expl

使用Java Applet访问数据库

学习任何的程序语言,当然都得与数据库,Java刚刚诞生的时候,对数据库的支持并不是很好,经过这几年的发展,它对数据库的支持也已经完全达到了成熟的境地.由于这里主要是介绍Java Applet小程序, 因此,不可能用大的篇幅去给大家介绍数据库的知识了,怎么样去建立与设计数据库,还是请大家自己找点书看看吧!这儿,对不住了. 我们这儿以Microsoft Access数据库为例子来说明怎么实现一个数据库的打开与读取的知识. 第一步: 使用Microsoft Access创建一个数据库,也就是我的这个例

Java Applet入门之数据类型

Java语言有着与C语言类似的教强的数据处理能力,即它的数据类型和不同类型上的运算定义得较为齐全,Java内部的数据类型可以分为四大类:整数.浮点数.字符.布尔型.其中整数和浮点数两大类根据长度和精度的不同,还可以进一步划分为byte.int.short.long.float.和double几个具体的类型.具体可参看下表: Java的基本数据类型 数据类型 关键字 占用比特数 取值范围 缺省数值 布尔型 boolean 8 true,false false 字符型 byte 8 -128--12

Java Applet显示存储在GIF文件中的图像

Java Applet常用来显示存储在GIF文件中的图像.Java Applet装载GIF图像非常简单,在Applet内使用图像文件时需定义Image对象.多数Java Applet使用的是GIF或JPEG格式的图像文件.Applet使用getImage方法把图像文件和Image对象联系起来. Graphics类的drawImage方法用来显示Image对象.为了提高图像的显示效果,许多Applet都采用双缓冲技术:首先把图像装入内存,然后再显示在屏幕上. Applet可通过imageUpdat

Java Applet编程学习总结

一.Java Applet的运行原理和生命周期 1.Applet被嵌入到HTML页面中,并由applet的容器(appletviewer或者Web浏览器)执行. 2.Applet的运行由浏览器控制,不由Applet中的代码控制.当浏览器载入包含由Applet的Web页面时,它将生成一个Applet类的对象,然后利用 Applet类对象的五个public的void方法控制Applet的执行,这五个方法如下:init,start,paint,stop,destory; 3.Applet有5个publ