Applets

Posted 1369306648edu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Applets相关的知识,希望对你有一定的参考价值。

一、Applet简介

       Applet是一种java程序。它一般运行在支持Java的web浏览器内。因为它有完整的Java API支持,所以Applet是一个全功能的Java应用程序。

       Applet1必须运行于某个特定的“容器”,这个容器可以是浏览器本身,也可以是通过各种插件,或者包括支持Applet的移动设备在内的其他各种程序来运行。与一般的Java应用程序不同,Applet不是通过main方法来运行的。在运行时Applet通常会与用户进行互动,显示动态的画面,并且还会遵循严格的安全检查,阻止潜在的不安全因素(例如根据安全策略,限制Applet对客户端文件系统的访问)。

二、工作原理

       Applet小应用程序的实现主要依靠java.applet包中的Applet类,且必须嵌入在html页面中才能得到解释执行;同时Applet可以从web页面中获得参数,并和web页面进行交互。Applet通过使用该Applet的HTML文件,由支持Java的网页浏览器下载运行,也可以通过Java开发工具的appletviewer来运行。Applet程序离不开使用它的HTML文件,这个HTML文件中关于Applet的信息至少应包含以下三点:

      (1)、字节码文件名(编译后的Java文件,以.class为后缀)

      (2)、字节码文件的地址

      (3)、在网页上显示Applet的方式

       安全限制:为了防止这样的问题出现,在缺省的情况下,大多数浏览器在Applet安全方面收到诸多限制,几乎不能对系统进行任何读写的操作:

          1. 不允许Applet访问本地文件系统

          2. Applet不能执行任何本地计算机上的程序

          3. 不允许Applet尝试打开除提供Applet的服务器之外的任何系统的Socket

          4. 不允许Applet访问用户名、电子邮件地址等与本地系统有关的信息

          5. 对于Applet而言,Java环境中的某些标准系统属性是只读的

          6. Applet不能创建或装载Applet的机器的网络连接

          7. Applet不能充当网络服务器,监听或接收来自远程系统的连接请求

          8. 不允许Applet装载动态库或定义本地方法调用

          9. Applet不能操纵不在自己线程组中的任何线程

         10. Applet不能关闭JVM

三、生命周期

       Applet类中的四种基本方法用来控制其运行状态:init()、start()、stop()、destroy()

          1、init()方法:该方法主要是为Applet的正常运行做一些初始化工作。当一个Applet被系统调用时,系统首先调用的就是该方法。通常可以在该方法中完成从网页向Applet传递参数,添加用户界面的基本组件等操作。

          2、start()方法:系统在调用完init()方法之后,将自动调用start()方法。而且,每当用户离开包含该Applet的主页后又再返回时,系统又会再执行一遍start()方法。这就意味着start()方法可以被多次执行,而不像init()方法。因此,可把只希望执行一遍的代码放在init()方法中。可以在start()方法中开始一个线程,如继续一个动画、声音等。

          3、stop()方法:这个方法在用户离开Applet所在页面时执行,因此,它也是可以被多次执行的。它使你可以在用户并不注意Applet的时候,停止一些耗用系统资源的工作以免影响系统的运行速度,且并不需要人为地去调用该方法。如果Applet中不包含动画、声音等程序,通常也不必实现该方法。

          4、destroy()方法:与对象的finalize()方法不同,Java在浏览器关闭的时候才调用该方法。Applet是嵌在HTML文件中的,所以destroty()方法不关心何时Applet被关闭,它在浏览器关闭的时候自动执行。在destroy()方法中一般可以要求收回占用的非内存独立资源。(如果在Applet仍在运行时浏览器被关闭,系统将先执行stop()方法,再执行destroy()方法。

四、Java 应用程序和 applet 程序之间重要的不同

       Java 中 Applet 类继承了 java.applet.Applet 类。

       Applet 类没有定义 main(),所以一个 Applet 程序不会调用 main() 方法。

       Applet 被设计为嵌入在一个 HTML 页面。

       当用户浏览包含 Applet 的 HTML 页面,Applet 的代码就被下载到用户的机器上。

       要查看一个 Applet 需要 JVM。 JVM 可以是 Web 浏览器的一个插件,或一个独立的运行时环境。

       用户机器上的 JVM 创建一个 Applet 类的实例,并调用 Applet 生命周期过程中的各种方法。

       Applet 有 Web 浏览器强制执行的严格的安全规则,Applet 的安全机制被称为沙箱安全。

       Applet 需要的其他类可以用 Java 归档(JAR)文件的形式下载下来。

五、开发步骤及实例

       Applet程序开发主要步骤如下:

                1)选用EDIT或Windows Notepad等工具作为编辑器建立Java Applet源程序。

                2)把Applet的源程序转换为字节码文件。

                3)编制使用class 的HTML文件。在HTML文件内放入必要的<OBJECT>语句。

       下面是一个最简单的hello world例子来说明Applet程序的开发过程:

             1、编辑Applet的Java源文件:创建HelloWorld.java文件并保存,文件源代码如下:

                      import java.awt.*; 

                      import java.applet.*;

                      public class HelloWorld extends Applet //继承Applet类,这是Applet Java程序的特点

                      {

                           public void paint(Graphics g )

                          {

                              g.drawString("Hello World!",5,35);

                          }

                       }

            2、编译Applet:使用命令javac HelloWorld.java编译。

            注意:如果编写的源程序违反了Java编程语言的语法规则,Java编译器将在屏幕上显示语法错误提示信息。源文件中必须不含任何语法错误,Java编译器才能成功地把源程序转换为appletviewer和浏览器能够执行的字节码程序。成功地编译Java applet之后生成响应的字节码文件HelloWorld.class的文件。用资源管理器或DIR命令列出目录列表,将会发现目录中多了一个名为HelloWorld.class的文件。

        3、创建HTML文件:在运行创建的HelloWorld.class 之前,还需创建一个HTML文件,appletviewer或浏览器将通过该文件访问创建的Applet。为运行HelloWorld.class, 需要创建包含如下HTML语句的名为HelloWorld.html的文件。

          <HTML>

          <TITLE>HelloWorld! Applet</TITLE>

          <APPLET

          CODE="HelloWorld.class" //这里应该是HelloWorld.class

          WIDTH=200

          HEIGHT=100>

          </APPLET>

          </HTML>

       本例中,字节码类文件名和以像素为单位的窗口的尺寸。虽然这里HTML文件使用的文件名为HelloWorld.HTML,它对应于HelloWorld.java的名字,但这种对应关系不是必须的,可以用其他的任何名字(比如说Ghq.HTML)命名该HTML文件。但是使文件名保持一种对应关系可给文件的管理带来方便。

       4、执行HelloWorld。html:如果用appletviewer运行HelloWorld.html,需输入如下的命令行:ppletviewer HelloWorld.html<ENTER>。可以看出,该命令启动了appletviewer并指明了HTML文件,该HTML文件中包含对应于HelloWorld 的<APPLET>语句。如果用浏览器运行HelloWorld Applet,需在浏览器的地址栏中输入HTML文件URL地址。至此,一个Applet程序的开发运行整个过程结束了。

以上是关于Applets的主要内容,如果未能解决你的问题,请参考以下文章