1、第9章 applet,教学提示:除了编写应用程序以外,Java还提供了编写能在网页浏览器中运行的小程序的功能,本章就将介绍 Java的这一 Web应用工具applet,主要包括applet的基本特征、applet的实现以及 applet通信。学习完本章之后,读者将具备在Web应用中嵌入J ava applet 以实现某些特殊功能的能力。学习本章需要读者对HTML有基本的了解,对此毫无了解的读者请先参阅相关资料。,教学目标:熟练掌握applet的特征及其实现,了解applet通信。,9.1 applet概述,applet可以直接翻译成“小应用程序”,尽管与Java“应用程序”只相差一个字,意义却
2、相差很远。Java应用程序(Application)是那些在控制台运行的 Java 程序 ,本书绝大部分的代码都是应用程序 , 而applet专指在那些Web浏览器(如IE浏览器)中运行的 Java程序 ,这两者统称为应用 。 applet 嵌入在Web页面 ,作为页面的组成部分被下载,并运行在实现了Java虚拟机的Web浏览器中。applet被赋予了严格的限制,Java执行期安全系统会时刻监控其行为,以保证其对客户端系统的绝对安全,主要有如下限制: 禁止applet运行时执行另一个程序。 禁止读写客户端机器中的任何文件。 禁止调用客户端机器的任何本地方法。 禁止与除服务器外的任何其他机器建立
3、网络连接。,9.2 applet实现,9.2.1 applet的生命周期,9.2.3 applet标记,在Java 1.0 和 Java 1.1 中 ,applet 通过 java.applet.Applet 类结合java.awt包中的图形组件实现,然而Java 1.0的java.awt包中的图形组件功能有限 ,且不符合面向对象思想 , 尽管在 Java 1.1中对此作了较大的改进 , 但仍无法提供在任何操作系统中都能让人满意的图形用户界面。Java 2中用javax.swing包取代了java.awt包(前者中的组件很多都继承自后者),以提供更好的图形用户界面,并提供类Applet的子类J
4、applet来实现applet,以支持javax.swing包中的图形组件。,9.2.2 简单applet实例,9.2.4 applet部署,9.2.5 结合图形组件,9.2.1 applet的生命周期,JApplet(也是Applet)最重要的4个方法是init(),start(),stop()和destroy()。在浏览器首次打开含有某个applet的Web页面时,该applet的init()方法将被调用,用于执行某些初始化动作,如图形组件在页面上的分布。在不关闭浏览器的情况下,每当该浏览器显示applet的内容时,applet的start()方法都会被调用,让applet开始工作,调用i
5、nit()方法之后就会调用start()方法。在不关闭浏览器的情况下,每当浏览器不需要再显示applet的内容时,如切换到其他页面时,applet的stop()方法都会被调用,让applet暂停工作,此后若applet需要重新显示,则其start()方法将再次被调用。当关闭浏览器时,applet的destroy()方法将被调用,用于释放applet占用的资源,此时会先调用stop()方法。applet的生命周期如图9.1所示。,返回,图9.1 applet的生命周期,返回,9.2.2 简单applet实例,JApplet自有的init(),start(),stop()和destroy()方法不
6、进行任何实质性的动作,要使applet按要求执行动作,需要定义一个JApplet的子类,并覆写其init(),start(),stop()和destroy()方法,在这些方法中规定applet在浏览器的各个动作发生时要执行的动作。,返回,9.2.3 applet标记,applet写好之后,如何将其嵌入网页中使之运行呢?这就要用到HTML中的applet标记。一般在HTML中使用标记将applet嵌入网页中运行。,返回,9.2.4 applet部署,所谓部署,就是将一个Java应用中涉及到的所有类和资源文件(如所有自定义的class文件,用到的Java类库中的class文件以及图像声音文件等资源
7、文件)打包到一个JAR文件中,其他的Java应用包含这个JAR文件就可以使用其中的功能。JAR文件同时具有压缩功能,打包其中的文件被压缩保存。 对于applet而言,applet部署将applet所在的class文件及其使用到的资源都压缩打包到一个JAR文件中,浏览器只需下载这个JAR文件,就可以运行其中的applet。 通过JDK中的jar工具可以部署应用。例如,将上述单个SimpleApplet.class文件打包成JAR文件的格式如下: jar cf SimpleApplet.jar SimpleApplet.class,返回,9.2.5 结合图形组件,applet结合图像组件,可以生成拥有良好用户界面的applet,增加了applet的交互性。,返回,9.3 applet通信,9.3.1 同网页内applet间的通信,applet不仅仅作为一个孤立的个体存在,它还可以与其他applet进行通信,也可以从浏览器页面中获取数据。,9.3.2 applet与浏览器的通信,9.4 上 机 指 导,在本次上机指导中,将给出一个用applet实现月历的实例,针对前面几节中的内容进行实际上机练习,目的是让读者掌握applet 在实际中的应用。通过理解该例,读者将具有灵活应用applet基本能力,有利于加深学习applet与其他技术的结合。,