applet的工作原理
Applet是采用Java編程語(yǔ)言編寫(xiě)的小應(yīng)用程序,該程序可以包含在 HTML(標(biāo)準(zhǔn)通用標(biāo)記語(yǔ)言的一個(gè)應(yīng)用)頁(yè)中,與在頁(yè)中包含圖像的方式大致相同。那么你對(duì)Applet了解多少呢?以下是由學(xué)習(xí)啦小編整理關(guān)于什么是applet的內(nèi)容,希望大家喜歡!
applet的工作原理
含有Applet的網(wǎng)頁(yè)的HTML文件代碼中部帶有<applet> 和</applet>這樣一對(duì)標(biāo)記,當(dāng)支持Java的網(wǎng)絡(luò)瀏覽器遇到這對(duì)標(biāo)記時(shí),就將下載相應(yīng)的小應(yīng)用程序代碼并在本地計(jì)算機(jī)上執(zhí)行該Applet。Java Applet 是用Java 語(yǔ)言編寫(xiě)的一些小應(yīng)用程序,這些程序是直接嵌入到頁(yè)面中,由支持Java的瀏覽器(IE 或 Netscape)解釋執(zhí)行能夠產(chǎn)生特殊效果的程序。它可以大大提高Web頁(yè)面的交互能力和動(dòng)態(tài)執(zhí)行能力。包含Applet的網(wǎng)頁(yè)被稱為Java-powered頁(yè),可以稱其為Java支持的網(wǎng)頁(yè)。
當(dāng)用戶訪問(wèn)這樣的網(wǎng)頁(yè)時(shí),Applet被下載到用戶的計(jì)算機(jī)上執(zhí)行,但前提是用戶使用的是支持Java的網(wǎng)絡(luò)瀏覽器。由于Applet是在用戶的計(jì)算機(jī)上執(zhí)行的,所以它的執(zhí)行速度不受網(wǎng)絡(luò)帶寬或者M(jìn)odem存取速度的限制,用戶可以更好地欣賞網(wǎng)頁(yè)上Applet產(chǎn)生的多媒體效果。
在Java Applet中,可以實(shí)現(xiàn)圖形繪制,字體和顏色控制,動(dòng)畫(huà)和聲音的插入,人機(jī)交互及網(wǎng)絡(luò)交流等功能。 Applet還提供了名為抽象窗口工具箱(Abstract Window Toolkit, AWT)的窗口環(huán)境開(kāi)發(fā)工具。 AWT利用用戶計(jì)算機(jī)的GUI元素,可以建立標(biāo)準(zhǔn)的圖形用戶界面,如窗口、按鈕、滾動(dòng)條等等。目前,在網(wǎng)絡(luò)上有非常多的Applet范例來(lái)生動(dòng)地展現(xiàn)這些功能,讀者可以去調(diào)閱相應(yīng)的網(wǎng)頁(yè)以觀看它們的效果。
Applet 小應(yīng)用程序的實(shí)現(xiàn)主要依靠java.applet包中的Applet類。與一般的應(yīng)用程序不同,Applet應(yīng)用程序必須嵌入在HTML頁(yè)面中,才能得到解釋執(zhí)行;同時(shí)Applet可以從Web頁(yè)面中獲得參數(shù),并和Web頁(yè)面進(jìn)行交互。
Applet是一種Java的小程序,它通過(guò)使用該Applet的HTML文件,由支持Java的網(wǎng)頁(yè)瀏覽器下載運(yùn)行。也可以通過(guò)java開(kāi)發(fā)工具的appletviewer來(lái)運(yùn)行。Applet 程序離不開(kāi)使用它的HTML文件。這個(gè)HTML文件中關(guān)于Applet的信息至少應(yīng)包含以下三點(diǎn):
1)字節(jié)碼文件名(編譯后的Java文件,以.class為后綴)
2)字節(jié)碼文件的地址
3)在網(wǎng)頁(yè)上顯示Applet的方式。
一個(gè)HTML文件增加Applet有關(guān)的內(nèi)容只是使網(wǎng)頁(yè)更加富有生氣,如添加聲音、動(dòng)畫(huà)等這些吸引人的特征,它并不會(huì)改變HTML文件中與Applet無(wú)關(guān)的元素。
applet的安全性限制
為了防止這樣的問(wèn)題出現(xiàn),在缺省的情況下,大多數(shù)瀏覽器在Applet安全方面受到諸多的限制,幾乎不能對(duì)系統(tǒng)進(jìn)行任何“讀”或“寫(xiě)”的操作:
1. 不允許Applet訪問(wèn)本地文件系統(tǒng)
2. Applet不能執(zhí)行任何本地計(jì)算機(jī)上的程序
3. 不允許Applet嘗試打開(kāi)除提供Applet的服務(wù)器之外的任何系統(tǒng)的Socket
4. 不允許Applet訪問(wèn)用戶名、電子郵件地址等與本地系統(tǒng)有關(guān)的信息
5. 對(duì)于Applet而言,Java環(huán)境中的某些標(biāo)準(zhǔn)系統(tǒng)屬性是只讀的
6. Applet不能創(chuàng)建或裝載Applet的機(jī)器的網(wǎng)絡(luò)連接
7. Applet不能充當(dāng)網(wǎng)絡(luò)服務(wù)器,監(jiān)聽(tīng)或接收來(lái)自遠(yuǎn)程系統(tǒng)的連接請(qǐng)求
8. 不允許Applet裝載動(dòng)態(tài)庫(kù)或定義本地方法調(diào)用
9. Applet不能操縱不在自己線程組中的任何線程
10. Applet不能關(guān)閉JVM。
調(diào)用applet的方法
大家都知道由于java2的安全性,對(duì)applet的正常調(diào)用的html文件已經(jīng)不能再使用了,而改為ActiveX類型的調(diào)用。具體的又分ie和nescape的不同寫(xiě)法,這一些在sun網(wǎng)上都能找到現(xiàn)成的教程。
重要
其中我要強(qiáng)調(diào)一點(diǎn),因?yàn)閍pplet每一次的改動(dòng)都需要重新打包簽名,手續(xù)非常繁瑣,所以在具體的實(shí)現(xiàn)中要將一些會(huì)變化參數(shù)放到html文件中來(lái),傳到applet中去,這一點(diǎn)網(wǎng)上文章好多,自己去看吧。
缺陷
另外一個(gè)就是有朋友問(wèn)我,那這樣不是太麻煩了,每一個(gè)客戶端都要進(jìn)行復(fù)雜的dos命令操作,我只能說(shuō)我的水平只能將一個(gè)已經(jīng)做好的客戶端文件cer文件和java.policy以及cacerts文件直接拷貝到客戶端,當(dāng)然這也有缺陷,如果別人的計(jì)算機(jī)已經(jīng)有了認(rèn)證,就會(huì)丟失。就這些問(wèn)題我們可以一起探討。
優(yōu)化
另外還有一點(diǎn)優(yōu)化,就是在打包的時(shí)候,我這兒只講了把所有要用的涉及到安全性的包和源程序到要打到一個(gè)包中。這樣如果包非常大的話,會(huì)非常影響下載的速度,如果可以使用本地計(jì)算機(jī)的包就好了,這一點(diǎn)jre也做到了,具體的要到控制面板的jre控制臺(tái)上去設(shè)置。這個(gè)就留著讀者自己去摸索吧。
看過(guò)“applet的工作原理”的人還看了:
5.Java Web開(kāi)發(fā)教程視頻:JavaBean編寫(xiě)