Жесткая модель защиты
При работе с программами, полученными из сети, пользователь может столкнуться с неприятными последствиями их работы. Существует множество вирусов, «троянов» или просто некачественных программ, которые могут принести немало неприятностей и хлопот.
Апплет автоматически запускается, при загрузке web-страницы, поэтому апплеты требуют повышенного режима безопасности. Для обеспечения защиты, создателями Java был разработан механизм, получивший название «песочницы». Он ограничивает доступ «ненадежных» апплетов к компьютеру пользователя. Если разработчику апплета понадобилось расширить возможности апплета - ему необходимо поставить цифровую подпись, тогда апплет воспринимается браузером как «надежный», и пользователь сам решаете: доверять апплету или нет. Хотя цифровая подпись не обеспечивает никакого уровня безопасности, можно установить происхождение апплета, при возникновении проблем.
«Песочница» включает в себя три основных механизма защиты:
· проверки на уровне JVM;
· защита на уровне языка;
· интерфейс JavaSecurity.
Жизненный цикл апплета
Апплеты в библиотеке Java представлены стандартным классом Applet (JApplet), но для пользователя не представляет интереса создание экземпляра этого класса. Для того чтобы придать апплету осмысленность, необходимо создать свой класс, являющийся производным от класса Applet. От этого класса они наследуют все необходимые методы для правильной загрузки и работы апплета. Таким образом, пользователь может переопределять те методы, которые ему необходимы. Ниже мы рассмотрим основные из них, которые управляют созданием и выполнением апплета на web-странице:
Метод | Действие |
init() | Вызывается автоматически при первом запуске апплета, для проведения инициализации и размещения компонентов на форме. |
start() | Вызывается каждый раз при перемещении апплета в видимую зону. Вызывается также после метода init(). |
stop() | Вызывается каждый раз, когда апплет покидает видимую зону. |
destroy() | Вызывается, когда апплет выгружается со страницы, для того, чтобы он смог провести освобождение своих ресурсов. |
Пример
import java.applet.Applet;
import java.awt.Graphics;
//No need to extend JApplet, since we don't add any components;
//we just paint.
public class Simple extends Applet {
StringBuffer buffer;
public void init() {
buffer = new StringBuffer();
addItem("initializing... ");
}
public void start() {
addItem("starting... ");
}
public void stop() {
addItem("stopping... ");
}
public void destroy() {
addItem("preparing for unloading...");
}
private void addItem(String newWord) {
System.out.println(newWord);
buffer.append(newWord);
repaint();
}
public void paint(Graphics g) {
//Draw a Rectangle around the applet's display area.
g.drawRect(0, 0,
getWidth() - 1,
getHeight() - 1);
//Draw the current string inside the rectangle.
g.drawString(buffer.toString(), 5, 15);
}
}
Дата добавления: 2017-01-26; просмотров: 1324;