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