在网页中使用Applet的标签

时间:2021-09-27 13:00:26

虽然w3c不推荐使用applet,但用applet在企业内部网(Intranet)中进行applet的部署是一个推荐的常用做法,那么就先来讨论一下<applet>标签的使用。

<applet>的使用

再早期进行applet的部署,用<applet>标签是一种很常见的做法,applet标签所有的属性列表,你可以在这里找到,http://www.w3schools.com/tags/tag_applet.asp,里面进行了详细的说明。

1.下面给一个使用applet的例子:

<applet code=Applet1.class width="200" height="200">

Your browser does not support the <code>applet</code> tag.

</applet>

一般我们主要使用的就是这几个属性:

code属性指的是applet类,也就是继承与java.applet.Applet或java.swing.JApplet类的子类,此属性值一定要为你存放applet类的路径;

width属性指的是你的applet在浏览器中所要占用的宽度

height属性指的是你的applet在浏览器中所要占用的高度

2.一般我们使用的就这几个属性,但有时我们将applet打包到了jar文件中,这时我们就要使用archive属性了,比如:

<applet code=package.Applet1.class archive="app.jar" width="200" height="200">

Your browser does not support the <code>applet</code> tag.

</applet>

这个实例的意思,就为在你存放html文件的文件中的app.jar文件中查找package.Applet1.class这个applet类,如果你想要使用多个jar文件,在archive的属性值中以英文编码逗号分隔jar文件,即可。

3.有时我们可能我们想加载的文件不再当前目录,而在其子目录,或者上级目录,这是我们就可以使用codebase属性,例如:

<applet code=Applet1.class codebase="app" width="200" height="200">

Your browser does not support the <code>applet</code> tag.

</applet>

这样Java plug-in就会在当前目录下的app子目录中查找,加载Applet1.class类。

4.我们也可以通过其向applet类中传递参数,比如:

<applet code=Applet1.class codebase="app" width="200" height="200">

<param name="param1" value="1"/>

<param name="param2" value="2"/>

Your browser does not support the <code>applet</code> tag.

</applet>

这样,我们就可以在我们写的applet通过getParameter(String param)方法得到这些参数,使得我们可以在applet标签中就可以配置程序的目的,而传入的参数名,就是我们在param标签的name属性值。

 

<object>使用

使用object标签,通常只在Internet explorer中使用,例如:

<object 
  classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93"
  width="200" height="200"
  codebase="http://java.sun.com/products/plugin/autodl/
jinstall-1_5_0-windows-i586.cab#Version=1,5,0,0">
  <param name="code" value="Applet1.class">
</object>

属性介绍:

1.classid属性表示要使用的最小Java plug-in版本号,这就表示当前安装的Java plug-in的版本必须大于classid,否则此applet运行不了。通常在Internet Explorer中使用的classid属性值是固定的,即:

classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93"

此种格式表示使用IE中最新的jre版本。

classid也有另外的一种格式,如下:

classid="clsid:CAFEEFAC-xxxx-yyyy-zzzz-ABCDEFFEDCBA"

xxxx-yyyy-zzzz为Java plug-in的版本号,如1.6.0版本,就可以表示为:

classid="clsid:CAFEEFAC-0016-0000-0000-ABCDEFFEDCBA"

2.width,height属性与applet一样,这里就不介绍了

3.codebase为可选属性,它有以下作用:

在本机安装的JRE(Java Runtime Environment)的版本小于classid属性指定的版本,浏览器则到此url中下载安装jre。

codebase的有如下格式:

codebase=<URL>

此种格式,表是如果本地安装的jre版本不为classid指定的版本,则转到指定的url,进行下载,安装

codebase=<URL>#Version=major,minor,micro,undate

此种格式,如果本机安装的jre版本比classid中指定的小,则到指定的url中下载jre

注意:这里是用英文逗号分隔的。

这里用Sun公司专门为Windows平台下的安装文件各个版本下载文件(.cab格式),http://java.sun.com/javase/6/webnotes/install/jre/autodownload.html

<embed>标签

使用embed标签,通常在Mozilla系列浏览器中使用,如下:

<embed code="Applet1.class"
  width="200" height="200"
  type="application/x-java-applet;version=1.6"
  pluginspage="http://java.sun.com/javase/downloads/ea.jsp"/>

属性介绍:

1.code,width,height属性于applet标签中的属性相同,这里就不介绍了

2.type属性有如下格式:

type="application/x-java-applet;version=1.6"
此种格式,表示支持
MIME类型为application/x-java-applet,版本为1.6或更高的被调用,如果本地安装的jre比version中指定的大或等于,则调用此jre,否则指向pluginspage属性指定的url。

type="application/x-java-applet;jpi-version=1.5.0_07

此种格式,表示本地运行的jre版本必须大于或等于1.5.0_07,否则指向pluginspage的url

<jsp:plugin/>标签的使用

<jsp:plugin type=applet code="Molecule" codebase="/html" >
<jsp:params>
    <jsp:param name="molecule" value="molecules/benzene.mol"/> 
</jsp:params>
<jsp:fallback>
       <p> Unable to start Plug-in. </p>
</jsp:fallback>
</jsp:plugin>

<jsp:plugin>为applet的根标签,我们在jsp页面中的applet所做的动作都在这其中进行

<jsp:param>与applet标签中的<param>相同

<jsp:params>用于包裹多个<jsp:param>标签

<jsp:fallback>用于Java Plug-in启动失败,执行其中的内容,一般顺利执行,则会被忽略

 

 

另外一些技术帮助

如何在一个让一个applet能够运行在不同的浏览器中?

有三种办法?

1.使用applet标签

applet标签被大多数的主流浏览器所支持。

2.使用html标签

<object 
  classid="clsid:CAFEEFAC-0016-0000-0000-ABCDEFFEDCBA"
  <param name="code" value="Applet1.class">
    <comment>
      <embed code="Applet1.class"
        type="application/x-java-applet;jpi-version=1.6">
        <noembed>
          No Java Support.
        </noembed>
      </embed>
    </comment>
  </object>

在IE中,IE会识别Object标签,忽略comment签

在Mozilla浏览器中,Mozilla会忽略object,classid,可以识别comment标签

3.使用javascript
<html>
<script language="Javascript">
var _app = navigator.appName;
if (_app == 'Mozilla') {
   document.write('<embed code="Applet1.class"',
                   'width="200"',
                   'height="200"',
                   'type="application/x-java-applet;version=1.6">');
  }
else if (_app == 'Microsoft Internet Explorer') {
   document.write('<OBJECT ',
                   'classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93"',
                   'width="200"',
                   'height="200">',
                   '<PARAM name="code" value="Applet1.class">',
                   '</OBJECT>');
 }
 else {
 document.write('<p>Sorry, unsupported browser.</p>');
 }
</script>
</html>

确定自己浏览器的javascript解释器被打开了,在JavaScript中我们可以用appName变量名来取得浏览器的名字,如果

为Mozilla,我们就让JavaScript写出与Mozilla相关的html代码,如果为Microsoft Internet Explorer,就写出与IE相关的html代码。