本文目錄一覽:
- 1、java 里applet 是什麼意思
- 2、java applet的用途是?謝謝
- 3、Java Applet怎麼運行
- 4、簡述:Java中applet程序的運行機制
- 5、什麼是JAVA Applet
- 6、在JAVA applet中paint辦法為什麼會自動執行?
java 里applet 是什麼意思
小應用程序用Java語言編寫的程序叫做“Applet”(小應用程序),用編譯器將它編譯成類文件後,將它存在WWW頁面中,並在HTML檔上作好相應標記
java applet的用途是?謝謝
在傳統的應用開發中,開發人員常常為了將為一種機器平台開發的程序移植到其它的平台上而感到頭痛,Java的出現大大減輕了開發人員的這種負擔,它的“一次編成,到處運行(Write Once,Run Anywhere)”的功能使開發人員能夠開發出跨系統跨平台運行的應用程序。現在各種Java應用中都大量使用了Java applet,它是一種特殊的Java小程序,這些applet能夠給人們帶來更為活潑更具吸引力的Web頁面。各種具有Java功能的瀏覽器,如Netscape Navigator、Microsoft Internet Explorer(MSIE)等,會自動下載並執行內嵌在Web頁面中的 Java applet。 然而,Applet在給人們帶來好處的同時,也帶來了潛在的安全隱患。它使applet的設計者有機會入侵他人的機器。實事求是的講,這個世界上沒有一個電腦系統是百分之百安全的, 但由於現在Internet和Java在全球應用得越來越普及,因此人們在瀏覽Web頁面的同時也會同時下載大量的Java applet,就使得Web用戶的機器面臨的安全威脅比以往任何時候都要大。 上述問題到目前為止還沒有一種完全的解決方法。好在現在Java 的設計者已注意到了這一點,並盡其所能加以限制, 例如,在 JDK1.1 版中就採用逐漸流行的數字簽名技術以減少applet可能造成的危險。 儘管如此,目前Web用戶的機器還是很容易受到applet的攻擊,而且現在用戶能夠採取的對策並不多。在Java applet 四處充斥的今天,人們使用具有 Java功能的瀏覽程序之時,對於瀏覽的網頁的地點就不能不多加留意。 Web頁面中的執行文件到底會帶來什麼樣的潛在危險呢?大致上可分為四類∶更改系統、侵犯隱私權、非法入侵攫取資源、與使用者敵對。 惡意之1∶更改系統 像 Java 這樣功能強大的程序語言,不管是在電腦的硬盤上還是在文件系統中,都具有修改數據的能力。 Java 中包含有許多預先定義好的類(class),其中的方法(method) 可以刪除或修改文件、更改使用中的磁盤內容、殺掉執行程序或其執行線程 (thread)。 這些功能很有可能會被applet的設計者濫用。更改系統可能是所有潛在危險中最嚴重的一種,Java 的設計者對於限制此類危險已花費了很大的心思;相反的,ActiveX 則對其引發的可能結果尚未加以限制。 所謂的更改系統包括入侵系統。在不安全的使用 Java時,可能會被applet發現攻擊的路徑。 由於黑客 (hacker) 們總是想方設法利用各種手段入侵他人的電腦系統 ( 取得進入系統與使用權限 ),而我們用戶能做的不過是小心使用Java而已,因此保證Java運行環境的安全最主要的還是Java設計者的責任,Java設計得必須保證在用戶下載applet時沒有其他進入系統的安全漏洞產生。 由於Java 可在多種操作平台上運行,因此惡意的applet只要在其中一種操作系統(例如Solaris) 上攻擊成功, 在攻擊其它作業系統 ( 例如 Windows NT) 時也能得逞。因此Java在帶來應用程序跨平台執行的同時,也帶來了惡意applet的這種跨平台攻擊的可能性。 利用 Java 來入侵電腦系統並非不可能的事情。曾發現許多目前已知的 Java安全漏洞的美國普林斯頓大學安全Internet編程小組(Safe Internet Programming Team),就在實驗室中展示了這種攻擊型的 applet。雖然,目前針對已發現的一些安全漏洞已經提供了一些“補丁(patch)”程序, 但其它更為複雜的攻擊仍可能潛藏着而未被人們發現。 在如今各種重要的電腦系統中,這種更改系統型的 applet 攻擊對數據造成的破壞是非常嚴重的。如它可能會破壞一些表面上看來很安全的數據庫中的財務記錄,導致公司財務損失而破產;或者是竄改醫院中病人的病情數據,導致醫療不當,甚至因此導致病人死亡。所以在目前未能打到解決方案的情況下,對Java applet的使用要非常小心,不要讓重要的數據系統暴露在這種新型的攻擊危險中。 Internet這種全球最開放的系統幾乎可以稱得上是電腦黑客們的樂園,這從Internet上層出不窮的入侵事件便不難看出。因此如何使 Java 不致於成為為他們的破壞工具,不管是對開發員來講還是對用戶來講都是一個重要的課題。 惡意之2∶侵犯隱私權 第二種類型的攻擊,就是暴露他人電腦主機的秘密數據。例如,在 Unix 系統中如能訪問/etc/passwd( 記錄系統中所有使用者的姓名與密碼 )這個文件,就有可能入侵整個系統 。 另外,電腦系統也可能會造成一些敏感性資料的泄露,例如必術不正的公司可以利用商業間諜偷取對手公司的業務計劃。個人用戶對於其私人的電子郵件或財務記錄是否可以公開也要慎重考慮,任何可藉由電子郵件傳送或經由網絡傳遞的秘密資料,都有可能受到入侵。 利用 Java 的功能,會產生雙重偽造的可能性,典型的電子郵件偽造(mail-forging )的情況會更加嚴重。Applet 先使用系統送出假信息,以欺騙真的郵件。 最後,目前許多系統中盛行的聲音功能,也可能會導致竊聽。如果攻擊者能掌握系統的麥克風,就有可能進行竊聽的行為。 更隱秘的竊聽是訪問監視進程表(process table )和相關的文件。網頁式的竊聽,還可能包括追蹤某一特定使用者所經過的網路連結。 Java 對於某些形式的網絡攻擊可以成功的進行防衛。例如,文件系統的輸入輸出操作就受到嚴格的控制。不過,這又與 applet 常需要一條通道以便傳回數據的要求相違背,因為applet 總是必須與原來的服務器一直相連。電子郵件的偽造防衛起來則比較困難。由於缺乏對客戶端連接接口的限制功能,電子郵件的偽造不太可能杜絕。 惡意之3∶拒絕系統服務 拒絕系統服務式的攻擊,會讓系統資源無法正常使用。通常的做法是利用一個執行程序吸取超過正常系統所分配的資源,甚至是霸佔整個系統。這類攻擊還可分為幾個小的類型,例如填滿文件系統或用光所有可用的文件資源;調用所有系統的內存,產生數以千計的窗口,以便有效的阻止屏幕輸出或找開新的窗口;產生許多高優先權的執行線程,以耗光 CPU的執行周期。 雖然這一類危險的破壞作用也很大,但它們似乎並未引起Java 的設計者的重視。 人們對防止這種攻擊的重要性還有些爭議。在大部分情況下,拒絕系統服務式的攻擊,比較接近與使用者敵對的攻擊,因為從此類攻擊中使系統恢復正常一般比較容易,只需要重新啟動系統即可。不過,即使如此,在一些重要的系統中也可能會造成嚴重的後果,人們當然誰也不希望在與重要的系統連結時重新啟動系統吧。例如,在處理股票交易的機器上蓄意拒絕系統服務,其造成的損失將難以想像的。 拒絕系統服務式的攻擊是 Java 常見的安全問題之一。 現在Internet上有一個專門介紹此類問題的站點,這就是Mark La Due的Hostile Applet主頁 ( ) 中,不興趣的讀者不妨一看,在這裡面介紹了許多實際的例子。要製造這種類型的攻擊實際上並不難,不過由於目前 Java 的安全模型並沒有提供很好的解決辦法,因此對它的防範卻比較困難。 還有一種類型的 applet 攻擊,只是造成使用者的困擾,雖然與以上三種攻擊相比危險性小得多,但也值得引起重視。例如,故意發出不經意的聲音,或在屏幕上顯示不雅的畫面等等。另外,還有單純的程序設計錯誤而引起的一些不良後果也屬於此類。正如前面所講的,某些類型的拒絕系統服務式攻擊,也可以歸類為單純的敵對行為,例如,產生眾多窗口的操作,可能只是令人困擾而已,並不會造成破壞系統的數據。 Java的安全機制 Java語言的安全模型與傳統的安全方法有很大的不同。第一,以前絕大多數操作系統都允許應用程序訪問大部分系統資源。管理者必須依靠用戶來對系統資源進行保護(如為不同的人設置不同的訪問權限等)。第二,在應用程序執行前依靠用戶來對其進行安全處理(如進行消毒等)。這種安全方法有兩個明顯的缺點:它依靠用戶來進行驗證,而且要依賴於驗證軟件本身的可靠性。而Java則採取了許多新的安全措施,它的最主要的安全機制就是Java沙箱。 為了抵抗這四種類型的 applet 攻擊,Java安全模型提供了三把利箭∶字節碼驗證器(Byte-Code Verifier)、applet類裝載器(Class Loader)以及安全管理器(Security Manager)。 這三者結合起來可在 applet 的裝載與執行階段,對文件系統、網絡與瀏覽程序的內部存取做進一步檢查。這三者缺一不可,共同維護着Java applet的安全。
Java Applet怎麼運行
1.首先編寫java文件,如下:
import java.awt.*;
import java.applet.*;
public class Java_Graphics extends Applet {
public void paint(Graphics g) {
g.drawString(“用Graphics寫字和畫圖的基本方法”, 20,40);
g.drawOval(100, 100, 30, 30);
g.drawOval(200, 100, 40, 25);
g.drawLine(20, 140, 200,140);
g.drawRect(20, 160, 50, 80);
g.drawRoundRect(110, 160, 100, 100, 25, 18);
}
}
1
2
3
4
5
6
7
8
9
10
11
12
javac Java_Graphics.java 編譯完成後生成 java_Graphics.class
這將是在瀏覽器中執行的程序(.class文件)
2.其次,編寫對應的Html文件:
!doctype html
html
head
meta charset=”UTF-8″
meta name=”Generator” content=”EditPlus®”
meta name=”Author” content=””
meta name=”Keywords” content=””
meta name=”Description” content=””
titleMy First Java Applet/title
/head
body
Here’s my First Java Applet:
applet code= “Java_Graphics.class” width = “300” height = “300”
/body
/html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
想來大家都知道,最重要的當然這句applet code= “Java_Graphics.class” width = “300”
height = “300”,加載了.class文件
1
2
3.瀏覽器解釋執行:
點擊html文件,你可以看到你想看到的效果,(paint()所畫)~~
簡述:Java中applet程序的運行機制
java中的applet不是直接運行的,他是通過.class文件進行調用的。.class是跨平台文件,所以在運行applet的時候實際上是在調用編譯好的.class文件進行顯示。我這給你舉個例子:
1.在開發環境編譯要執行的文件,例如hellow.java,編譯成功後生成了hellow.class
2.再新建一個網頁文件 敲入代碼段: applet code=”welcome.class” width=320 height=180/applet(其他html腳本照常存在!) (這個時候applet code 在調用的是class文件了,看見沒?)
3.這時用你的開發環境運行你的網頁就能看見答案了!
希望能解決你的問題!
什麼是JAVA Applet
Applet或Java小應用程序是一種在Web環境下,運行於客戶端的Java程序組件。它也是1990年代中期,Java在誕生後得以一炮走紅的功臣之一。通常,每個Applet的功能都比較單一(例如僅用於顯示一個舞動的Logo),因此它被稱作“小應用程序”1。
Applet必須運行於某個特定的“容器”,這個容器可以是瀏覽器本身,也可以是通過各種插件,或者包括支持Applet的移動設備在內的其他各種程序來運行。與一般的Java應用程序不同,Applet不是通過main方法來運行的(參見Java的Hello World程序和Java Applet的Hello World程序)。在運行時Applet通常會與用戶進行互動,顯示動態的畫面,並且還會遵循嚴格的安全檢查,阻止潛在的不安全因素(例如根據安全策略,限制Applet對客戶端文件系統的訪問)。
注釋
Applet是由英語“應用程序”Application的縮寫App和代表“小”的後綴let組成。Servlet(Server-let)、MIDlet(Mobile Information Device-let)和JSP中的Scriptlet的命名也是基於同樣原理。
在JAVA applet中paint辦法為什麼會自動執行?
Applet類中的四種基本方法用來控制其運行狀態:init()、start()、stop()、destroy()在start()方法里,會調用paint方法。這是applet的運行機制。\x0d\x0a init()方法\x0d\x0a 這個方法主要是為Applet的正常運行做一些初始化工作。當一個Applet被系統調用時,系統首先調用的就是該方法。通常可以在該方法中完成從網頁向Applet傳遞參數,添加用戶界面的基本組件等操作。\x0d\x0a start()方法\x0d\x0a 系統在調用完init()方法之後,將自動調用start()方法。而且,每當用戶離開包含該 Applet的主頁後又再返回時,系統又會再執行一遍start()方法。這就意味着start()方法可以被多次執行,而不像init()方法。因此,可把只希望執行一遍的代碼放在init()方法中。可以在start()方法中開始一個線程,如繼續一個動畫、聲音等。\x0d\x0a stop()方法\x0d\x0a 這個方法在用戶離開Applet所在頁面時執行,因此,它也是可以被多次執行的。它使你可以在用戶並不注意Applet的時候,停止一些耗用系統資源的工作以免影響系統的運行速度,且並不需要人為地去調用該方法。如果Applet中不包含動畫、聲音等程序,通常也不必實現該方法。\x0d\x0a destroy()方法\x0d\x0a 與對象的finalize()方法不同,Java在瀏覽器關閉的時候才調用該方法。 Applet是嵌在HTML文件中的,所以destroty()方法不關心何時Applet被關閉,它在瀏覽器關閉的時候自動執行。在destroy() 方法中一般可以要求收回佔用的非內存獨立資源。(如果在Applet仍在運行時瀏覽器被關閉,系統將先執行stop()方法,再執行destroy()方法。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/150659.html