
- •Основы аплетов
- •Класс Applet
- •Архитектура аплета
- •Простые методы отображения аплетов
- •Требование перерисовки
- •Аплет с бегущим заголовком
- •Использование окна состояния
- •Пересылка параметров в аплеты
- •Усовершенствованный аплет заголовка
- •Методы getDocumentBase() getCodeBase()
- •Воспроизведение аудиоклипов. Интерфейс AudioClip
- •Технология Java Web Start
Воспроизведение аудиоклипов. Интерфейс AudioClip
Интерфейс AudioClip определяет следующие методы: play() (проигрывает клип с начала), stop() (останавливает проигрывание) и loop() (выполняет непрерывное циклическое проигрывание). Их можно использовать для воспроизведения аудиоклипа после его загрузки методом getAudioClip(). Ниже приведен пример.
import java.applet.*;
public class PlayClip extends Applet
{
private String m_ClipName = "Track5.wav";
AudioClip auClip;
public void init()
{
auClip = getAudioClip(getCodeBase(), m_ClipName);
}
public void start()
{
auClip.play();
}
public void stop()
{
auClip.stop();
}
}
Вывод на консоль
Хотя вывод в окно аплета должен быть организован через AWT-методы типа drawstring(), все еще можно использовать и консольный вывод, особенно для целей отладки. Когда вызывается метод, такой как System.out.println(), вывод не посылается в окно аплета. Вместо этого он появляется или в консольном сеансе, где вы запустили программу просмотра аплета, или в консоли Java, которая доступна в некоторых браузерах. Использование консольного вывода рекомендуется только для целей отладки, т. к. он нарушает основной принцип проектирования приложений — использование графического интерфейса.
Основы безопасности
Поскольку аплеты предназначены для загрузки с удаленных Web-страниц и последующего выполнения на локальном компьютере, вопросы безопасности становятся крайне важными. Браузер, поддерживающий язык Java, может загрузить весь код аплета на Web-страницу и немедленно его выполнить. Пользователь не имеет никакой возможности вмешаться в этот процесс и предотвратить или приостановить запуск аплета. По этой причине аплеты, в отличие от приложений, ограничены в своих возможностях. Как только аплет пытается нарушить правила доступа, менеджер безопасности аплетов (applet security manager) возбуждает исключительную ситуацию SecurityException.
Что аплеты могут делать на всех платформах? Аплет может выводить на экран графические изображения, воспроизводить звуки, воспринимать нажатия клавиш и щелчки мыши, а также передавать информацию, введенную пользователем, на компьютер, с которого он был загружен. Этого вполне достаточно для того, чтобы передавать пользователю изображения и факты, а взамен получать от него данные. Среда, ограничивающая выполнение аплетов, часто называется "песочницей" (sandbox). Аплеты, "играющие в песочнице", не могут изменять систему пользователя или шпионить за ней. В частности, при работе в песочнице выполняются следующие правила.
• Аплеты ни при каких обстоятельствах не могут запускать выполняемые модули на локальном компьютере.
• Аплет не может взаимодействовать ни с одним компьютером, кроме сервера, с которого он был загружен. Этот сервер называется станцией отправления (originating host). Это правило часто формулируют так: "Аплет может звонить только домой". Это защищает пользователя от аплетов, пытающихся шпионить за ресурсами внутрикорпоративной сети.
• Аплет не может считывать данные из локальной файловой системы или записывать их туда.
• Аплеты не способны распознавать никакой информации о локальном компьютере, за исключением номера версии языка Java, имени и версии операционной системы, а также символов, используемых для разделения файлов (например, \ или /), путей(например, : или ;). В частности, аплеты не могут определять имя пользователя, адрес его электронной почты и т.д.
• Все окна, открываемые аплетом, сопровождаются предупреждением. Все это возможно лишь потому, что аплеты интерпретируются виртуальной машиной, а не выполняются непосредственно центральным процессором пользовательского компьютера. Поскольку интерпретатор проверяет все критические команды и области программы, вредный (или небрежно написанный) аплет никогда не сможет вызвать крах операционной системы, перезаписать содержимое системной памяти или изменить привилегии, предоставленные операционной системой.
Эти ограничения в некоторых ситуациях слишком строги. Например, в корпоративной сети легко представить себе аплет, которому нужен доступ к локальным файлам. Для того чтобы в разных ситуациях применять разные ограничения, можно использовать аплеты с электронной подписью (signed aplets). Такие аплеты сопровождаются сертификатом, подтверждающим личность отправителя. Криптографические методы гарантируют, что этот сертификат не может быть подделан. Если вы доверяете человеку, подписавшему аплет, то можете предоставить его аплету дополнительные права.
Если вы уверены в аплете, браузер может предоставить ему дополнительные возможности.