Java程序设计大学教程第八章 applet与 Web编程本章详细讲述 applet的原理、特性、安全机制以及编程方法,并讨论 applet在 web编程中的应用。同时还介绍了 web编程的一些有用知识。
Java程序设计大学教程
8.1 Java applet基础
Java程序通常可分成应用程序( application)和小程序
( applet)两大类。应用程序是普通的 Java程序,而
applet小程序则是设计用来运行在 intemet网上的程序。
applet的运行必须依赖 HTML文档。当然 applet也可在集成开发环境( IDE)下,如小程序查看器( applet viewer)
中直接运行。
applet是一种在 internet网上传播的,自动安装的,作为
Web页面的一部分运行的小应用程序。学习和使用 applet,
可以使我们轻松地将 Java用于网络编程,增加网页设计的功能,体会到 internet的乐趣。
Java程序设计大学教程
8.1.1 什么是 applet
applet是最早的一种 Java程序,它没有 main方法,
不能由解释器直接解释执行。要运行 applet,需要把它嵌入到 Web页面当中。当这个页面在浏览器上显示时,applet就在页面中指定的一部分区域内显示其运行结果 。
applet实际上是一个运行在网页中的 Java窗体容器。
如同在 JFrame类中添加组件一样,可以用同样的方法在 applet中添加组件,处理事件。 JApplet类有一个类似 JFrame的面板,可以把组件添加到面板中,
而不必直接加入到 JApplet中。
applet的继承层次结构 。
Java程序设计大学教程
8.1.2 编写 applet程序
编写 applet
把 applet放置到该网页中
在浏览器中运行 applet
applet也可以显示在小程序查看器中,这是一个专门为运行
applet而设计的程序。如果使用 NetBeans IDE等开发工具,
那么 applet会自动运行在小程序查看器中,就像运行普通的
Java应用程序一样。
如果要把 applet放置到网页中,则需要创建一个 HTML文档,
并在 HTML中嵌入这个 applet来实现。为此,需要使用
<applet></applet>标记。将 applet嵌入到网页中时,必须给出 applet的,class文件名,设置 applet的宽度和高度,
宽度和高度以像素为单位。
在 internet上发布的一个 applet程序之所以能够在用户本地计算机的浏览器上运行,是因为 Web浏览器中的 Java虚拟机运行了这个 applet。
1,HelloWorldApplet.java
2,import java.awt.*;
3,import java.util.*;
4,import javax.swing.*;
5,public class HelloWorldApplet extends JApplet {
6,public void init(){
7,Container contentPane=getContentPane();
8,Date now=new Date();
9,String timenow="问候时刻,";
10,timenow=timenow+ now.getHours()+"时 ";
11,timenow=timenow+ now.getMinutes()+"分 ";
12,timenow=timenow+ now.getMinutes()+"秒 ";
13,JLabel timeLabel=new JLabel(timenow,SwingConstants.CENTER);
14,JLabel greetLabel=
15,new JLabel("Hello World!",SwingConstants.CENTER);
16,contentPane.add(greetLabel,"Center");
17,contentPane.add(timeLabel,"South");//
18.
19,}
20.
21,}
HelloWorldApplet.html
<H1>Hello World 小程序演示 </H1>
<applet
code="HelloWorldApplet.class"
width="300"
height="200">
</applet>
Java程序设计大学教程
8.1.3 applet的生命周期
applet类提供四个方法,init,start,stop
和 destroy,它们构造了创建任何 applet的框架,并实现了一个 applet从诞生、启动、
到停止、消亡的生命周期。
诞生
init()
启动
start()
消亡
destroy()
停止
stop()
切换回本页面关闭浏览器切换到其它页面加载本页面
Java程序设计大学教程
8.2 applet在 Web中的应用
applet利用了浏览器的资源丰富了 Web应用。当它被加载时,浏览器会根据 HTML文本中的信息提供
applet所要求的环境。浏览器中的 applet能显示图像,演奏声音等。使用 applet能够让 Web页面表现出有趣的效果,大大增强 Web页面的处理能力。
Java程序设计大学教程
8.2.1 HTML与 Web编程
Web页面是用 HTML语言编写的。 HTML是 Hypertext
Markup Language的简称,译做超文本标记语言。在使用浏览器时,超文本的内容包含了链接(或者叫做超链接),点击这些链接时,浏览器将转向该链接指向的文档,这些文档通常称做页面。
HTML是一种非常简单的语言,由一些标记( Tag)的集合组成。可以把这些标记插入到文本文件中,从而使这些文档可以在 Web浏览器中浏览。
HTML标记有两种基本类型:标识一段文本开始和结束的标记以及标识文本位置的标记。需要设置标识的内容放在开始和结束的标记中间,<标记 >内容 </标记 >
在这些 HTML标记中,专用于 Java小程序的是 <applet>标记,
applet的有关信息就由这一标记引导的内容给出。
Java程序设计大学教程
8.2.2 applet Web编程技巧
applet可以处理图像和声音。它处理的图像格式必须是
GIF和 JPEG,而声音文件必须是 AU,AIFF,WAV或
MIDI格式。它还可以处理动画 GIF,并且也能显示动画效果。
applet作为 Panel的子类,它也有事件响应和处理机制。
applet可以通过通常 URL来访问某些媒体文件。而 URL
则是对 Internet上某一资源的最常用的描述方式,它由资源类型、服务器地址、端口、路径组成。
在 Java语言中 URL类封装了多个 URL。在 URL构造函数中可以使用绝对 URL,也可以使用相对 URL。创建 URL
实例时,需要处理 MalformedURLException异常。
Java程序设计大学教程
8.2.3 applet的安全机制
applet的安全运行规则包括:
applet不能运行任何本地可执行程序。
除了与自己所在的服务器外,applet不能和其他主机通信。
这条规则保证 applet不可能探测内部网络资源。
applet不能对本地文件系统进行读写操作。
除了使用的 Java版本、操作系统的名字和版本、系统使用的特殊字符外,applet不能获取其他有关本地计算机的信息。
特别是,applet不能找到用户名,e-mail地址等等信息。
applet的弹出式窗口都会带有一个警告信息。
Java通过 3个独立的机制来加强安全性:程序代码是在
Java虚拟机中解释执行,而不是直接运行;安全管理器会检查 Java运行库中的所有敏感操作,使之符合安全运行规则; applet可以通过签名技术来表明其来源。
Java程序设计大学教程
8.3 把 Java应用程序转换为 applet
Java应用程序转换成一个 applet具体方法如下:
1、创建一个 JApplet的派生类,而不是 JFrame的派生类。即把 extends JFrame替换成
extends JApplet。
2、删除 main方法。 applet中不需要。
3、在创建类时使用不带参数的 init方法。 init的内容可以和以前构造函数中的一样,
但有些项需要删除。例如 super的调用。因为方法 init不是构造函数,所以无须调用 super。浏览器会实例化对象并调用 init方法进行初始化。
4.删除所有关闭窗体的方法。因为 applet没有窗体,它是在浏览器窗体中显示的。
这意味着要删除所有 setDefaultCloseOperation方法的调用,以及窗体事件处理程序。
5.删除所有的 setTitle方法的调用和 setSize方法的调用。 applet的标题和大小由
applet所嵌入的 HTML文档决定。
6、不使用 show方法或 setVisible方法,applet会自动显示。
7、去掉不安全的操作,使之符合 applet的安全运行规则,否则 applet安全管理器都会抛出 SecurityException异常。
8、最后,创建一个 HTML页面来装载编译好的 applet类。
Java程序设计大学教程
8.3 把 Java应用程序转换为 applet
转换示例,
去掉不安全的操作
简化设置操作
新建 JApplet派生类替换原来的 JFrame派生类