Смекни!
smekni.com

Надеясь на то, что параметры будут заданы в HTML-файле, все-таки присвойте начальные значения переменным в аплете.

Замечание по отладке

Операторы System.out.println(), обычно записываемые в аплет для отладки, выводят указанные в них аргументы в специальное окно браузера Java Console. Сначала надо установить возможность показа этого окна. В Internet Explorer это делается установкой флажка Java Console enabled выбором команды Tools | Internet Options | Advanced. После перезапуска IE в меню View появляется команда Java Console.

Параметры тега <applet>

Обязательные параметры:

· code — URL-адрес файла с классом аплета или архивного файла;

· width и height — ширина и высота аплета в пикселах.

Необязательные параметры:

· codebase — URL-адрес каталога, в котором расположен файл класса аплета. Если этот параметр отсутствует, браузер будет искать файл в том же каталоге, где размещен соответствующий HTML-файл;

· archive — файлы всех классов, составляющих аплет, могут быть упакованы архиватором ZIP или специальным архиватором JAR в один или несколько архивных файлов. Параметр задает URL-адреса этих файлов через запятую;

· align — выравнивание аплета в окне браузера. Этот параметр имеет одно из следующих значений: ABSBOTTOM, ABSMIDDLE, BASELINE, BOTTOM, CENTER, LEFT, MIDDLE, RIGHT, TEXTTOP, TOP;

· hspace и vspace — горизонтальные и вертикальные поля, отделяющие аплет от других объектов в окне браузера в пикселах;

· download — задает порядок загрузки изображений аплетом. Имена изображений перечисляются через запятую в порядке загрузки;

· name — имя аплета. Параметр нужен, если загружаются несколько аплетов с одинаковыми значениями code и codebase;

· style — информация о стиле CSS (Cascading Style Sheet); title — текст, отображаемый в процессе выполнения аплета;

· alt — текст, выводимый вместо аплета, если браузер не может загрузить его;

· mayscript — не имеет значения. Это слово указывает на то, что аплет будет обращаться к тексту JavaScript.

Между тегами <applet> и </applet> можно написать текст, который будет выведен, если браузер не сможет понять тег <applet>. Вотполныйпример:

<applet name = "AnApplet" code = "AnApplet.class"

archive = "anapplet.zip, myclasses.zip"

codebase = "

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.">

<hr>If your browser recognized the applet tag,

you would see an applet here.<hr>

</applet>


Обязательно упаковывайте все классы аплета в zip- и jar-архивы и указывайте их в параметре archive в HTML-файле. Это значительно ускорит загрузку аплета.

Следует еще сказать, что, начиная с версии HTML 4.0, есть тег <object>, предназначенный для загрузки и аплетов, и других объектов, например, ActiveX. Кроме того, некоторые браузеры могут использовать для загрузки аплетов тег <embed>.

Сведения об окружении аплета

Метод 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 в браузере и не может быть изменен.