zoukankan      html  css  js  c++  java
  • Applet

    一、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程序的开发运行整个过程结束了。

             以上内容参考链接:http://www.runoob.com/java/java-applet-basics.html

                                            https://baike.sogou.com/v126479.htm?fromTitle=Applet

  • 相关阅读:
    IOC(inverse of Control)控制反转(依赖注入)思想
    学习Ajax技术总结
    设计差异引发WebServices 安全性问题
    XML与Webservices相关的安全问题概述
    XML与Webservices相关的安全问题概述
    设计差异引发WebServices 安全性问题
    Webservice测试方案(目录及下载链接)
    XML与Webservices相关的安全问题概述
    设计差异引发WebServices 安全性问题
    构建安全的 Web Services
  • 原文地址:https://www.cnblogs.com/fancy-dawning/p/8862733.html
Copyright © 2011-2022 走看看