雖然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代碼。