小應用程式applet
1.定義:applet是能夠被包含在HTML頁面中並且能被啟用了java的客戶端瀏覽器執行的程式,applet主要用來建立動態互動的web應用程式。
2.生命週期:
- init:每次被載入都會被初始化
- start:開始執行applet
- destroy:解除安裝applet之後,做最後的清理工作
3.applet被載入時會發生什麼:首先,建立applet控制類的例項,然後初始化,最後,開始執行
4.applet和普通java應用程式區別:
- applet是執行在啟用了java的瀏覽器上,java應用程式是可以在瀏覽器之外獨立執行的java程式,兩者都需要JVM
- java應用程式需要有main函式來開始執行,而applet不需要
- applet會使用很嚴格的安全策略,而java應用程式一般使用比較寬鬆的安全策略
5.applet基本使用:寫好一個類繼承Applet,寫好展示在HTML頁面對應的程式碼,然後在HTML中呼叫該類,若HTML中要傳遞引數給applet,則要在init()方法中接收
- HTML中帶引數
<html>
<head><title>Parameters</title></head>
<body>
This is a message.<br>
<applet code=”ParamPass.class” width=”400” height=”100”>
<param name=”fontname” value=”DialogInput” />
<param name=”fontsize” value=”24” />
</applet>
</body></html>
- 在init()中就要
import java.awt.Font;
import java.awt.Graphics;
import javax.swing.JApplet;
import javax.swing.JPanel;
public class ParamPass extends JApplet
{
private Font f;
private int size;
private String name;
public void init()
{
name = getParameter("fontname");
size = Integer.parseInt(getParameter("fontsize"));
f = new Font(name,Font.BOLD,size);
add(new MyPanel());
}
class MyPanel extends JPanel
{
public void paintComponent(Graphics g)
{
super.paintComponent(g);
g.setFont(f);
g.drawString("This is a message.", 50, 50);
}
}
}
6.applet限制條件
- 不能載入類庫或定義本地方法,不能在宿主機上讀寫檔案
- 不能讀取特定的系統屬性
- 不能發起網路連線,除非是跟宿主機
- 不能開啟宿主機上的其他任何程式
7.不受信任的applet:指不能訪問或執行本地系統檔案的java applet,預設,所有下載的applet都是不受信任的
8.從網路載入的applet和從本地載入的applet的區別:網路載入applet由類載入器載入受applet安全管理限制;本地載入applet由檔案系統載入器載入,允許客戶端讀檔案,寫檔案,載入類庫,並允許執行其他程式,不過通不過位元組碼校驗。
9.類載入器:的。類載入器有自己的 java名稱空間等級結構。類載入器會保證來自檔案系統的類有唯一的名稱空間,來自網路資源的 類有唯一的名稱空間。當瀏覽器通過網路載入 applet 的時候,applet 的類被放置於和 applet 的源相關聯的私有的名 稱空間中。然後,那些被類載入器載入進來的類都是通過了驗證器驗證的。驗證器會檢查類 檔案格式是否遵守Java 語言規範,確保不會出現堆疊溢位(stack overflow) 或者下溢(underflow),傳遞給位元組碼指令的引數是正確的。
10.applet 安全管理器:是給 applet 施加限制條件的一種機制。瀏覽器可以只有一個安全管理器。安全管理器在啟動的時候被建立,之後不能被替換覆蓋或者是擴充套件。