46820 (597299), страница 2
Текст из файла (страница 2)
width = "300" height = "200" align = "TOP"
vspace = "5" hspace = "5" mayscript
alt = "If you have a Java-enabled browser,
you would see an applet here.">
If your browser recognized the applet tag,
you would see an applet here.
Обязательно упаковывайте все классы аплета в zip- и jar-архивы и указывайте их в параметре archive в HTML-файле. Это значительно ускорит загрузку аплета.
Следует еще сказать, что, начиная с версии HTML 4.0, есть тег , предназначенный для загрузки и аплетов, и других объектов, например, ActiveX. Кроме того, некоторые браузеры могут использовать для загрузки аплетов тег .
Сведения об окружении аплета
Метод getCodeBase () возвращает URL-адрес каталога, в котором лежит файл класса аплета.
Метод getDocumentBase () возвращает URL-адрес каталога, в котором лежит HTML-файл, вызвавший аплет.
Браузер реализует интерфейс AppletContext, находящийся в пакете java.applet. Аплет может получить ссылку на этот интерфейс методом getAppletContext().
С помощью методов getApplet (String name) и getApplets() интерфейса AppletСontext можно получить ссылку на указанный аргументом name аплет или на все аплеты, загруженные в браузер.
Метод showDocument(URL address) загружает в браузер HTML-файл с адреса address.
Метод showDocument (URL address, String target) загружает файл во фрейм, указанный вторым аргументом target. Этот аргумент может принимать следующие значения:
-
_seif — то же окно и тот же фрейм, в котором работает аплет;
-
_parent — родительский фрейм аплета;
-
_top — фрейм верхнего уровня окна аплета;
-
_biank — новое окно верхнего уровня;
-
name — фрейм или окно с именем name, если оно не существует, то будет создано.
Защита от аплета
Браузер может вообще отказаться от загрузки аплетов. В Netscape Communicator это делается с помощью флажка Enable Java в окне, вызываемом командой Edit | Preferences | Advanced, в Internet Explorer — в окне после выбора команды Tools | Internet Options | Security.
Если браузер загружает аплет, то создает ему ограничения, так называемую "ящик для песка" (sandbox), в которой резвится аплет, но выйти из которой не может. Каждый браузер создает свои ограничения, но обычно они заключаются в том, что аплет:
-
не может обращаться к файловой системе машины, на которой он выполняется, даже для чтения файлов или просмотра каталогов;
-
может связаться по сети только с тем сайтом, с которого он был загружен;
-
не может прочитать системные свойства;
-
не может печатать на принтере, подключенном к тому компьютеру, на котором он выполняется;
-
не может воспользоваться буфером обмена (clipboard); не может запустить приложение методом ехес();
-
не может использовать "родные" методы или загрузить библиотеку методом load();
-
не может остановить JVM методом exit();
-
не может создавать классы в пакетах java.*, а классы пакетов sun.* не может даже загружать.
Браузеры могут усилить или ослабить эти ограничения, например, разрешить локальным аплетам, загруженным с той же машины, где они выполняются, доступ к файловой системе. Наименьшие ограничения имеют доверенные (trusted) аплеты, снабженные электронной подписью с помощью классов из пакетов java.security.*.
При создании приложения, загружающего аплеты, необходимо обеспечить средства проверки аплета и задать ограничения. Их предоставляет класс SecurityManager. Экземпляр этого класса или его наследника устанавливается в JVM при запуске виртуальной машины статическим методом setSecurityManager(SecurityManager sm) класса System. Обычные приложения не могут использовать данный метод.
Каждый браузер расширяет класс SecurityManager по-своему, устанавливая те или иные ограничения. Единственный экземпляр этого класса создается при запуске JVM в браузере и не может быть изменен.