zoukankan      html  css  js  c++  java
  • APPLET基础

    一、什么是applet

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

    如下所示是独立的Java应用程序和applet程序之间重要的不同:

    • 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 Applet 可以大大提高Web页面的交互能力和动态执行能力。包含Applet的网页被称为Java-powered页,可以称其为Java支持的网页。当Applet用户访问这样的网页时,Applet被下载到用户的计算机上执行,但前提是用户使用的是支持Java的网络浏览器。由于Applet是在用户的计算机上执行的,所以它的执行速度不受网络带宽或者Modem存取速度的限制,用户可以更好地欣赏网页上Applet产生的多媒体效果。在Java Applet中,可以实现图形绘制,字体和颜色控制,动画和声音的插入,人机交互及网络交流等功能。 Applet还提供了名为抽象窗口工具箱(Abstract Window Toolkit, AWT)的窗口环境开发工具。 AWT利用用户计算机的GUI元素,可以建立标准的图形用户界面,如窗口、按钮、滚动条等等。目前,在网络上有非常多的Applet范例来生动地展现这些功能,读者可以去调阅相应的网页以观看它们的效果。
    Applet 小应用程序的实现主要依靠java.applet包中的Applet类。与一般的应用程序不同,Applet应用程序必须嵌入在HTML页面中,才能得到解释执行;同时Applet可以从Web页面中获得参数,并和Web页面进行交互。
    Applet是一种Java的小程序,它通过使用该Applet的HTML文件,由支持Java的网页浏览器下载运行。也可以通过java开发工具的appletviewer来运行。Applet 程序离不开使用它的HTML文件。这个HTML文件中关于Applet的信息至少应包含以下三点:
    1)字节码文件名(编译后的Java文件,以.class为后缀)
    2)字节码文件的地址
    3)在网页上显示Applet的方式。
    一个HTML文件增加Applet有关的内容只是使网页更加富有生气,如添加声音、动画等这些吸引人的特征,它并不会改变HTML文件中与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

    将图形化的Java应用程序(是指,使用AWT的应用程序和使用java程序启动器启动的程序)转换成嵌入在web页面里的applet是很简单的。

    下面是将应用程序转换成applet的几个步骤:

    • 编写一个HTML页面,该页面带有能加载applet代码的标签。
    • 编写一个JApplet类的子类,将该类设置为public。否则,applet不能被加载。
    • 消除应用程序的main()方法。不要为应用程序构造框架窗口,因为你的应用程序要显示在浏览器中。
    • 将应用程序中框架窗口的构造方法里的初始化代码移到applet的init()方法中,你不必显示的构造applet对象,浏览器将通过调用init()方法来实例化一个对象。
    • 移除对setSize()方法的调用,对于applet来讲,大小已经通过HTML文件里的width和height参数设定好了。
    • 移除对 setDefaultCloseOperation()方法的调用。Applet不能被关闭,它随着浏览器的退出而终止。
    • 如果应用程序调用了setTitle()方法,消除对该方法的调用。applet不能有标题栏。(当然你可以给通过html的title标签给网页自身命名)
    • 不要调用setVisible(true),applet是自动显示的。

    四、总结

      Applet程序只能嵌入到HTNL网页中通过浏览器来运行,目的是为了增强网页的表现能力和交互方式。

  • 相关阅读:
    ZeptoLab Code Rush 2015
    UVa 10048 Audiophobia【Floyd】
    POJ 1847 Tram【Floyd】
    UVa 247 Calling Circles【传递闭包】
    UVa 1395 Slim Span【最小生成树】
    HDU 4006 The kth great number【优先队列】
    UVa 674 Coin Change【记忆化搜索】
    UVa 10285 Longest Run on a Snowboard【记忆化搜索】
    【NOIP2016提高A组模拟9.28】求导
    【NOIP2012模拟10.9】电费结算
  • 原文地址:https://www.cnblogs.com/fl2017/p/8857316.html
Copyright © 2011-2022 走看看