Applet简介

Applet是Java中另一类常用的应用程序,与应用程序(Application)由Java解释器直接执行不同,Applet是专门用来在Web页面中运行的程序,它通常是从服务器下载到用户的计算机中运行的。它的执行效率不受网络联机速率的影响,执行时也不会占用网络带宽,因此,Applet的应用相当广泛。

本章将探讨如何开发Java Applet。

15.1  Applet简介

Applet是一个小型Java应用程序,可以在Applet Viewer或Web浏览器内执行。Applet源文件的扩展名和一般Java应用程序相同,都是.java。编译过的Applet也是扩展名为.class的类文件,区别在于该类文件需要在浏览器中执行。

Java Applet 是用Java语言编写的一些小的应用程序,这些程序是直接潜入到页面中,由支持Java的浏览器(IE或Netscape)解释执行,能够产生特殊效果。它可大大提高Web交互能力和动态执行能力。包含JavaApplet的网页被称为java-powered页,也可以称其为Java支持的网页。

用户访问这样的网页时,Applet被下载到本地执行,前提是用户所使用的必须是支持Java的网络浏览器。

Applet小应用程序的实现主要是靠java.Applet包中的Applet类,不同于一般应用程序,它必须嵌入在HTML页面中才能被解释执行,并且Applet可以从Web页面中获得参数,并和Web页面进行交互。

含有Applet的网页的HTML中必须带有<Applet>和</Applet>这样一对标记,当支持Java的网络浏览器遇到这对标记时就会下载相应的小程序代码并在本地计算机上执行该Applet小程序。

Applet是一种Java的小程序,它通过使用该Applet的HTML文件,由支持Java的网页浏览器下载运行。也可以通过Java开发工具的AppletViewer来运行。Applet程序离不开使用它的HTML文件。这个HTML文件中关于 Applet的信息至少应包含以下3点:(1)字节码文件名(编译后的Java文件,以.class为后缀);(2)字节码文件的地址;(3)在网页上显示Applet的方式。

一个HTML文件增加Applet有关的内容只是使网页更加富有生气,如添加声音、动画等这些吸引人的特征,它并不会改变HTML文件中与Applet无关的元素。

15.1.1  Applet基本运作流程

从前一小节的介绍中可以看到,Applet在执行前会通过网络下载到客户端,只要客户端浏览器内安装适当的Java虚拟机,即可以执行下载的Applet。

Applet的基本运作流程如下。

(1)当浏览器试图打开包含Applet的网页时,会先启动JVM。

(2)浏览器将<Applet>标记所定义的信息传送给JVM类加载器。

(3)在类加载时会有一个认证机制来检查欲加载的类是否合法。确认了类是合法之后,Applet才会被执行。

15.1.2  Applet的安全机制

由于Applet 是需要通过网络传播,并要在被访问者的机器上执行,所以一定要对Applet的执行加以限制。Java中的SecurityManage类专门用来防止安全漏洞的出现,它能监控几乎所有的虚拟机上的系统级调用。这种安全防范机制称为沙箱(sandbox)安全模式。即Java虚拟机为Applet的执行提供一个沙箱,如果程序的执行一旦试图离开沙箱,它的运行就会被禁止。

在这种安全模式下,Applet不能在运行中调用其他程序,不能对文件进行读写操作,不能装载动态链接库或调用本地方法,也不能试图打开非提供Applet的主机以外的某个socket。Applet只能和原来的Web服务器进行数据交换,而无法将数据传送到其他计算机。

有了这些严格的保护措施,可以将用户面临的安全性风险降到最低。

15.1.3  Applet的生命周期

与Applet的生命周期相关的主要方法有init()、start()、stop()和destroy()。

当Applet被下载到浏览器上初次运行时,init()方法被调用来完成数据的初始化工作。

接着,start()方法被调用,各种任务通常都在该方法中执行。与init()方法只在下载后执行一次不同,start()方法在每次浏览器被重新激活时都会被调用。

stop()方法在每次浏览器被最小化或其他窗口被激活时被调用,停止一些在start()方法中定义的操作。

浏览器被关闭时,destroy()方法被调用来清除分配给Applet的资源。

15.1.4  开发Applet的JDK版本

随着Java技术的发展,仅是JDK就分为好几个版本。一些开发人员偏好以较新的JDK来开发程序,但是他们往往忽略的一点就是在一般情况下,用户通常不会自行更新浏览器的版本。

因此经常会发生某些人可以正常执行Applet,但是其他人却无法执行的问题。针对上述问题,可以从以下两个方面着手。

(1)要求或协助公司内所有员工的Web浏览器必须更新。

(2)如果Applet应用程序可通过Internet存取,可以在网页内加上警告信息,例如“为达到最佳执行效果,请确定我们的浏览器版本为XXX以上”。

如果遭遇到浏览器JDK版本不合的问题,可参考下列几个解决方案。

(1)使用Java外挂程序(plug-in)。大部分的JDK不相容问题都可以经由Java外挂程序来解决。举例来说,如果Applet使用了Swing程序库,但是客户端浏览器的JDK版本太旧,无法支持Swing。可以要求客户端更新浏览器版本,或是到网站http://java.sun.com/ products/plugin/寻找适当的外挂程序。

(2)开发时期所使用的JDK版本尽量与客户端一致。

(3)使用Java Web Start。Java Web Start是Sun Microsystem公司所研发的一项新技术。用户可以在网页内单击某个链接,由此启动Applet或其他应用程序。这项技术能够有效解决JDK版本不合的问题,只要客户端浏览器事先安装Java Web Start外挂程序,就可以正确无误地执行Applet。

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值