Java咖啡館:Java插件技術(shù)(一)
發(fā)表時(shí)間:2024-06-10 來(lái)源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]北京 Gary Chan1.Java插件技術(shù) Java插件技術(shù)(Java Plug-in technology)是一個(gè)神奇的設(shè)計(jì),它架起了時(shí)下流行的瀏覽器(包括Internet Explorer,下面簡(jiǎn)稱IE,Netscape Navigator,下面簡(jiǎn)稱NN以及Mozilla)與Java平臺(tái)...
北京 Gary Chan
1.Java插件技術(shù)
Java插件技術(shù)(Java Plug-in technology)是一個(gè)神奇的設(shè)計(jì),它架起了時(shí)下流行的瀏覽器(包括Internet Explorer,下面簡(jiǎn)稱IE,Netscape Navigator,下面簡(jiǎn)稱NN以及Mozilla)與Java平臺(tái)之間的橋梁。也就是說(shuō),只需要一個(gè)瀏覽器,它不必內(nèi)置Java虛擬機(jī)(比如與Windows XP捆綁銷售的IE 6),也不必特意安裝Java運(yùn)行環(huán)境,在打開(kāi)包含Java Applet的網(wǎng)頁(yè)時(shí),只要按照瀏覽器提示安裝這個(gè)Java插件后便能任意運(yùn)行Applet了,而這個(gè)安裝過(guò)程與安裝Macromedia Flash、3721等插件一樣簡(jiǎn)單。
要知道,Java插件技術(shù)與我們上回咖啡館中介紹的運(yùn)行Applet的方法有著本質(zhì)上的區(qū)別。
在上回Java咖啡館中,我向大家介紹了Applet編寫過(guò)程,以及在IE中運(yùn)行Applet的方法;貞浺幌拢覀兪峭ㄟ^(guò)在HTML網(wǎng)頁(yè)中嵌入<applet>標(biāo)簽實(shí)現(xiàn)的。實(shí)際上,如果你的系統(tǒng)中已經(jīng)安裝Java運(yùn)行時(shí)環(huán)境時(shí),當(dāng)瀏覽器遇到<applet>標(biāo)簽時(shí),瀏覽器便會(huì)啟動(dòng)Java虛擬機(jī),從網(wǎng)上下載Applet的class文件后執(zhí)行它。這種方法有兩個(gè)明顯缺點(diǎn):第一,如果系統(tǒng)中如果沒(méi)有Java運(yùn)行時(shí)環(huán)境,瀏覽器便會(huì)名正言順地怠工,拒絕執(zhí)行Applet;第二,如果系統(tǒng)中的Java運(yùn)行時(shí)環(huán)境版本過(guò)低,而Applet又使用了新版本中的新技術(shù),這也將導(dǎo)致Applet運(yùn)行不正常。
而Java插件技術(shù)可以很好解決這兩個(gè)問(wèn)題。本質(zhì)上,Java插件技術(shù)是借助瀏覽器的插件機(jī)制給客戶端安裝或更新Java運(yùn)行時(shí)環(huán)境的技術(shù)。目前流行的瀏覽器都有插件機(jī)制,比如Mozilla、NN的plug-in技術(shù),IE的ActiveX構(gòu)件技術(shù)。當(dāng)這些瀏覽器遇到網(wǎng)頁(yè)中Java插件標(biāo)簽時(shí),會(huì)自動(dòng)連接到Sun公司的服務(wù)器下載或者更新Java運(yùn)行時(shí)環(huán)境,然后可以運(yùn)行Applet程序了。省卻了用戶自行安裝Java運(yùn)行時(shí)環(huán)境的不便,這真是一個(gè)漂亮的實(shí)現(xiàn)。
2.通過(guò)Java插件技術(shù)調(diào)用Applet
Java插件技術(shù)不能依靠<applet>標(biāo)簽調(diào)用Applet了,你必須像調(diào)用其他NN的插件或者IE的ActiveX構(gòu)件一樣調(diào)用Java插件。
還是拿例子來(lái)說(shuō)明一下。我們?cè)鹊膕ample.htm網(wǎng)頁(yè)是這樣調(diào)用Applet的:
<applet code="NewsApplet.class" codebase="." width=480 height=384>
<param name="from" value="Prince Charming">
<param name="to" value="Cinderella">
</applet>
對(duì)應(yīng)于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>
而對(duì)應(yīng)于IE的ActiveX構(gòu)件技術(shù)的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>
當(dāng)然,如果想寫出可以適應(yīng)所有瀏覽器的調(diào)用Java插件的代碼,可以利用NN忽略<object>與<comment> 標(biāo)簽,以及IE忽略<embed>標(biāo)簽的事實(shí)來(lái)個(gè)嵌套,類似于
<object ...>
<comment>
<embed ...>
</embed>
</comment>
</object>
這樣,無(wú)論是IE還是NN都會(huì)乖乖執(zhí)行Applet并且讓王子對(duì)灰姑娘說(shuō)出那一個(gè)字了。