小应用程序applet

1.定义:applet是能够被包含在HTML页面中并且能被启用了java的客户端浏览器执行的程序,applet主要用来创建动态交互的web应用程序。

2.生命周期:

  • init:每次被载入都会被初始化
  • start:开始执行applet
stop:结束执行applet
  • destroy:卸载applet之后,做最后的清理工作

3.applet被载入时会发生什么:首先,创建applet控制类的实例,然后初始化,最后,开始运行

4.applet和普通java应用程序区别:

  • applet是运行在启用了java的浏览器上,java应用程序是可以在浏览器之外独立运行的java程序,两者都需要JVM
  • java应用程序需要有main函数来开始执行,而applet不需要
  • applet会使用很严格的安全策略,而java应用程序一般使用比较宽松的安全策略

5.applet基本使用:写好一个类继承Applet,写好展示在HTML页面对应的代码,然后在HTML中调用该类,若HTML中要传递参数给applet,则要在init()方法中接收

  • HTML中带参数
<html>
<head><title>Parameters</title></head>
<body>
This is a message.<br>
<applet code=”ParamPass.class” width=”400” height=”100”>
      <param name=”fontname” value=”DialogInput” />
      <param name=”fontsize” value=”24” />
</applet>
</body></html>
  • 在init()中就要
import java.awt.Font;
import java.awt.Graphics;
import javax.swing.JApplet;
import javax.swing.JPanel;

public class ParamPass extends JApplet
{
    private Font f;
    private int size;
    private String name;
    public void init()
    {
        name = getParameter("fontname");
        size = Integer.parseInt(getParameter("fontsize"));
        f = new Font(name,Font.BOLD,size);
        add(new MyPanel());
    }
    class MyPanel extends JPanel
    {
        public void paintComponent(Graphics g)
        {
            super.paintComponent(g);
            g.setFont(f);
            g.drawString("This is a message.", 50, 50);
        }
    }
}

6.applet限制条件

  • 不能载入类库或定义本地方法,不能在宿主机上读写文件
  • 不能读取特定的系统属性
  • 不能发起网络连接,除非是跟宿主机
  • 不能开启宿主机上的其他任何程序

7.不受信任的applet:指不能访问或执行本地系统文件的java applet,默认,所有下载的applet都是不受信任的

8.从网络加载的applet和从本地加载的applet的区别:网络加载applet由类加载器载入受applet安全管理限制;本地加载applet由文件系统加载器载入,允许客户端读文件,写文件,加载类库,并允许执行其他程序,不过通不过字节码校验。

9.类加载器:的。类加载器有自己的 java名称空间等级结构。类加载器会保证来自文件系统的类有唯一的名称空间,来自网络资源的 类有唯一的名称空间。当浏览器通过网络载入 applet 的时候,applet 的类被放置于和 applet 的源相关联的私有的名 称空间中。然后,那些被类加载器载入进来的类都是通过了验证器验证的。验证器会检查类 文件格式是否遵守Java 语言规范,确保不会出现堆栈溢出(stack overflow) 或者下溢(underflow),传递给字节码指令的参数是正确的。

10.applet 安全管理器:是给 applet 施加限制条件的一种机制。浏览器可以只有一个安全管理器。安全管理器在启动的时候被创建,之后不能被替换覆盖或者是扩展。


猜你喜欢

转载自blog.csdn.net/weixin_41762621/article/details/80958981