图的 第八章 applet与Web编程 本章详细讲述 applet的原理、特性、安全机 制以及编程方法,并讨论 applet在web编程 中的应用。同时还介绍了Web编程的一些有 用知识
第八章 applet与Web编程 本章详细讲述applet的原理、特性、安全机 制以及编程方法,并讨论applet在web编程 中的应用。同时还介绍了web编程的一些有 用知识
图的 81 Java applet基础 ■Java程序通常可分成应用程序( application)和小程序 ( applet)两大类。应用程序是普通的Java程序,而 applet小程序则是设计用来运行在 intemet网上的程序 applet的运行必须依赖HTML文档。当然 apple也可在集 成开发环境(IDE)下,如小程序查看器( applet viewer) 中直接运行。 applet是一种在 interne网上传播的,自动安装的,作为 Web页面的一部分运行的小应用程序。学习和使用 applet, 可以使我们轻松地将]ava用于网络编程,增加网页设计的 功能,体会到 internet的乐趣
8.1 Java applet基础 n Java程序通常可分成应用程序(application)和小程序 (applet)两大类。应用程序是普通的Java程序,而 applet小程序则是设计用来运行在intemet网上的程序。 n applet的运行必须依赖HTML文档。当然applet也可在集 成开发环境(IDE)下,如小程序查看器(applet viewer) 中直接运行。 n applet是一种在internet网上传播的,自动安装的,作为 Web页面的一部分运行的小应用程序。学习和使用applet, 可以使我们轻松地将Java用于网络编程,增加网页设计的 功能,体会到internet的乐趣
图的 8.1.1什么是 applet Java. lang Java. awt Object Component Container Panel Window Apple FI rame Dialog Javax. swing JComponent APple J frame Dialog
8.1.1 什么是applet n applet是最早的一种Java程序,它没有main方法, 不能由解释器直接解释执行。要运行applet,需要把 它嵌入到Web页面当中。当这个页面在浏览器上显示 时,applet就在页面中指定的一部分区域内显示其运 行结果 。 n applet实际上是一个运行在网页中的Java窗体容器。 如同在JFrame类中添加组件一样,可以用同样的方 法在applet中添加组件,处理事件。JApplet类有一 个类似JFrame的面板,可以把组件添加到面板中, 而不必直接加入到JApplet中。 n applet的继承层次结构
图的 8.1.2编写 applet程序 1. Hello WorldApplet, java 2. import java. awt. * 3. import java. util. *; 4. import javax. swing. i 5. public class HelloworldApplet extends JApplet i 6. public void init(ot 7 Container contentPane=qeC如 y. lir-yinst/hal/ju/HelloJorldAppletht国区 8 HelloWorldApplet html 文件①)编辐①查看0收藏)工具①帮助0 ⊙后·②国图☆收来的总·回·回 1 Hello world小程序演示 地址0)Mtp/1iy. tal/java1l4y1tl转到链接”西 1 Hello world! 1 1 contentPane. add(timeLabel 89 问候时刻:16时43分43秒 20 小应用程序1 plet started
8.1.2 编写applet程序 n 编写applet n 把applet放置到该网页中 n 在浏览器中运行 applet n applet也可以显示在小程序查看器中,这是一个专门为运行 applet而设计的程序。如果使用NetBeans IDE等开发工具, 那么applet会自动运行在小程序查看器中,就像运行普通的 Java应用程序一样。 n 如果要把applet放置到网页中,则需要创建一个HTML文档, 并在HTML中嵌入这个applet来实现。为此,需要使用 标记。将applet嵌入到网页中时,必 须给出applet的.class文件名,设置applet的宽度和高度, 宽度和高度以像素为单位。 n 在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 Hello World 小程序演示
图的 8.1.3 applet的生命周期 ■ applet类提供四个方法:init、 start、stop 和 destroy,它们构造了创建任何 applet的 框架,并实现了一个 applet从诞生、启动 到停止、消亡的生命周期 诞生 加载本页面 启动 inito 切 start 换回本页面 切换到其它页面 停止 消亡 topo) destroy o 关闭浏览器
8.1.3 applet的生命周期 n applet类提供四个方法:init、start、stop 和destroy,它们构造了创建任何applet的 框架,并实现了一个applet从诞生、启动、 到停止、消亡的生命周期。 诞生 init() 启动 start() 消亡 destroy() 停止 stop() 切 换 回 本 页 面 关闭浏览器 切 换 到 其 它 页 面 加载本页面
图的 8.2 applet在Web中的应用 ■ applet利用了浏览器的资源丰富了Web应用。当它 被加载时,浏览器会根据HTML文本中的信息提供 applet所要求的环境。浏览器中的 applet能显示图 像,演奏声音等。使用 applet能够让Web页面表现 出有趣的效果,大大增强Web页面的处理能力
8.2 applet在Web中的应用 n applet利用了浏览器的资源丰富了Web应用。当它 被加载时,浏览器会根据HTML文本中的信息提供 applet所要求的环境。浏览器中的applet能显示图 像,演奏声音等。使用applet能够让Web页面表现 出有趣的效果,大大增强Web页面的处理能力
图的 8.2.1HTML与Web编程 ■Web页面是用HTML语言编写的。HTML是 Hypertext Markup language的简称,译做超文本标记语言。在使用浏 览器时,超文本的内容包含了链接(或者叫做超链接),点击 这些链接时,浏览器将转向该链接指向的文档,这些文档通常 称做页面 ■HTML是一种非常简单的语言,由一些标记(Tag)的集合组 在Web浏览器中浏览。 ■HTML标记有两种基本类型:标识一段文本开始和结束的标记 以及标识文本位置的标记。需要设置标识的内容放在开始和结 束的标记中间:内容 ■在这些HTML标记中,专用于]ava小程序的是标记 apple的有关信息就由这一标记引导的内容给出
8.2.1 HTML与Web编程 n Web页面是用HTML语言编写的。HTML是Hypertext Markup Language的简称,译做超文本标记语言。在使用浏 览器时,超文本的内容包含了链接(或者叫做超链接),点击 这些链接时,浏览器将转向该链接指向的文档,这些文档通常 称做页面。 n HTML是一种非常简单的语言,由一些标记(Tag)的集合组 成。可以把这些标记插入到文本文件中,从而使这些文档可以 在Web浏览器中浏览。 n HTML标记有两种基本类型:标识一段文本开始和结束的标记 以及标识文本位置的标记。需要设置标识的内容放在开始和结 束的标记中间:内容 n 在这些HTML标记中,专用于Java小程序的是标记, applet的有关信息就由这一标记引导的内容给出
图的 8.2.2 applet Web编程技巧 ■ applet可以处理图像和声音。它处理的图像格式必须是 GIF和]PEG,而声音文件必须是AU、AIFF、WA或 MIDI格式。它还可以处理动画GIF,并且也能显示动画 效果 ■ applet作为Pane的子类,它也有事件响应和处理机制 ■ applet可以通过通常URL来访问某些媒体文件。而URL 则是对 Internet上某一资源的最常用的描述方式,它由 资源类型、服务器地址、端口、路径组成。 ■在Java语言中URL类封装了多个URL。在∪RL构造函数 中可以使用绝对∪RL,也可以使用相对URL。创建URL 实例时,需要处理 MalformedURLEXception异常
8.2.2 applet Web编程技巧 n applet可以处理图像和声音。它处理的图像格式必须是 GIF和JPEG,而声音文件必须是AU、AIFF、WAV或 MIDI格式。它还可以处理动画GIF,并且也能显示动画 效果。 n applet作为Panel的子类,它也有事件响应和处理机制。 n applet可以通过通常URL来访问某些媒体文件。而URL 则是对Internet上某一资源的最常用的描述方式,它由 资源类型、服务器地址、端口、路径组成。 n 在Java语言中URL类封装了多个URL。在URL构造函数 中可以使用绝对URL,也可以使用相对URL。创建URL 实例时,需要处理MalformedURLException异常
图的 8.2.3 applet的安全机制 applet的安全运行规则包括: 口 applet不能运行任何本地可执行程序。 口除了与自己所在的服务器外, applet不能和其他主机通信。 这条规则保证 applet不可能探测内部网络资源。 口 applet不能对本地文件系统进行读写操作, 口除了使用的Java版本、操作系统的名字和版本、系统使用的 特殊字符外, applet不能获取其他有关本地计算机的信 特别是, applet不能找到用户名,e-mai地址等等信息。 口 applet的弹出式窗口都会带有一个警告信息。 Java通过3个独立的机制来加强安全性:程序代码是在 java虚拟机中解释执行,而不是直接运行;安全管理器 会检查Java运行库中的所有敏感操作,使之符合安全运 行规则; applet可以通过签名技术来表明其来源
8.2.3 applet的安全机制 n applet的安全运行规则包括: o applet不能运行任何本地可执行程序。 o 除了与自己所在的服务器外,applet不能和其他主机通信。 这条规则保证applet不可能探测内部网络资源。 o applet不能对本地文件系统进行读写操作。 o 除了使用的Java版本、操作系统的名字和版本、系统使用的 特殊字符外,applet不能获取其他有关本地计算机的信息。 特别是,applet不能找到用户名,e-mail地址等等信息。 o applet的弹出式窗口都会带有一个警告信息。 n Java通过3个独立的机制来加强安全性:程序代码是在 Java虚拟机中解释执行,而不是直接运行;安全管理器 会检查Java运行库中的所有敏感操作,使之符合安全运 行规则;applet可以通过签名技术来表明其来源
图的 8.3把Java应用程序转换为 applet Java应用程序转换成一个 applet具体方法如下: 1、创建一个] Apple的派生类,而不是 JFrame的派生类。即把 extends jframe替换成 extends JAppleto 2、删除main方法。 applet中不需要。 3、在创建类时使用不带参数的init方法。init的内容可以和以前构造函数中的一样, 但有些项需要删除。例如 super的调用。因为方法int不是构造函数,所以无 须调用 super。浏览器会实例化对象并调用int方法进行初始化。总示 4.删除所有关闭窗体的方法。因为 applet没有窗体,它是在浏览器窗体中显示的 这意味着要删除所有 setDefaultCloseOperation方法的调用,以及窗体事件 处理程序。 5.删除所有的 setTitle方法的调用和 setsize方法的调用。 applet的标题和大小由 applet所嵌入的HTML文档决定。 6、不使用show方法或 setvisible方法, applet会自动显示 7、去掉不安全的操作,使之符合 applet的安全运行规则,否则 applet安全管理器 都会抛出 Security EXception异常。 8、最后,创建一个HTML页面来装载编译好的 applet类
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类