1.定义
applet是一种Java程序。它一般运行在支持Java的Web浏览器内。因为它有完整的Java API支持,所以applet是一个全功能的Java应用程序。
2.特点(不同于Java application之处)
- Java中applet类继承了 java.applet.Applet类
- Applet类没有定义main(),所以一个 Applet程序不会调用main()方法
- Applets被设计为嵌入在一个HTML页面
- 当用户浏览包含Applet的HTML页面,Applet的代码就被下载到用户的机器上
- 要查看一个applet需要JVM。 JVM可以是Web浏览器的一个插件,或一个独立的运行时环境
- 用户机器上的JVM创建一个applet类的实例,并调用Applet生命周期过程中的各种方法
- Applets有Web浏览器强制执行的严格的安全规则,applet的安全机制被称为沙箱安全
- applet需要的其他类可以用Java归档(JAR)文件的形式下载下来
Java application:
- application主要是桌面应用程序的开发,application是不能用Jsp加载的
- Java Application是完整的程序,可以独立运行
- Java Application程序被编译以后,用普通的Java解释器就可以使其边解释边执行
- 每个Java Application程序必定含有一个并且只有一个main方法,程序执行时,首先寻找main方法,并以此为入口点开始运行。含有main方法的那个类,常被称为主类,也就是说,Java Application程序都含有一个主类。
3.生命周期
Applet类中的四个方法给你提供了一个框架,你可以再该框架上开发小程序:
- init: 该方法的目的是为你的applet提供所需的任何初始化。在Applet标记内的param标签被处理后调用该方法。
- start: 浏览器调用init方法后,该方法被自动调用。每当用户从其他页面返回到包含Applet的页面时,则调用该方法。
- stop:当用户从包含applet的页面移除的时候,该方法自动被调用。因此,可以在相同的applet中反复调用该方法。
- destroy: 此方法仅当浏览器正常关闭时调用。因为applets只有在HTML网页上有效,所以你不应该在用户离开包含Applet的页面后遗漏任何资源.
- paint: 该方法在start()方法之后立即被调用,或者在applet需要重绘在浏览器的时候调用。paint()方法实际上继承于java.awt。
4.applet例子:
一个简单的applet程序HelloWorldApplet.java:
1 import java.applet.*; 2 import java.awt.*; 3 4 public class HelloWorldApplet extends Applet 5 { 6 public void paint (Graphics g) 7 { 8 g.drawString ("Hello World", 25, 50); 9 } 10 }
<applet>标签是在HTML文件中嵌入applet的基础。调用该applet程序:
1 <html> 2 <title>The Hello, World Applet</title> 3 <hr> 4 <applet code="HelloWorldApplet.class" width="320" height="120"> 5 If your browser was Java-enabled, a "Hello, World" 6 message would appear here. 7 </applet> 8 <hr> 9 </html>