Java plug-in – что это такое ?

Автор статьи написал ее в ходе чтения документации по Java Plug-In и в данном случае форма изложения материала получилась несколько рваной, за что приношу свои извинения.

Java plug-in (в дальнейшем просто plugin) в первую очередь был создан для того, чтобы пользователь мог запускать Java-приложения из под разных броузеров используя SUN JRE (Java Runtime Environment от SUN). Другими словами, если пользователю необходимо запустить апплет и этот апплет должен быть запущен из-под

Sun JRE определенной версии, то сделать это хотелось бы как можно более удобным способом.

На сегодняшний день существует два пути запуска апплета:

  1. Использовать тэг APPLET на HTML странице
  2. Заменить тэг APPLET на более современный тэг OBJECT (для Internet Explorer’а) или на тэг EMBED для броузера Netscape (Но для версии 6 этот тэг уже не подходит)

SUN предлагает использовать следующие правила для решения – какой тэг использовать. Во-первых Вы должны определить – быдет ли использоваться апплет в интернет или в интранет сети.

Если Интернет – используйте тэг APPLET

Если же Интранет – то OBJECT или EMBED

Во-вторых Вы должны решить какой броузер будет использоваться для работы с апплетом

Если Internet Explorer – используйте OBJECT

Если же семейство Mozilla – используйте EMBED

Если Вы рассчитываете на различные броузеры – используйте APPLET

 

Использование тэга APPLET

Для подробного ознакомления с тэгом APPLET советуем заглянуть на станицу W3 HTML specification

В HTML спецификации утверждается, что тэг APPLET является устаревшим и использовать его не стоит. Но в связи с тем, что четкое описание обработки тэга OBJECT в спецификации пока нет, SUN советует использовать тэг APPLET в случае кросс-платформенности и кросс-броузерности.

Достаточно простой пример использования тэга:

 

Использование тэга OBJECT

Тэг OBJECT имеет несколько атрибутов. Мы рассмотрим самые важные. Атрибут classid определяет какую версию JRE надо использовать и может быть записан в двух вариантах:

В этом случае определение используемой версии JRE определяется динамически и используется самая последняя из установленных в данный момент.

В такой форме последовательности xxxx, yyyy, zzzz определяют точно, какая версия JVM будет использована. Например для использования plugin’а версии 1.5.0

classid определяется следующим образом:

ЗАМЕЧАНИЕ!

Формат версий для JVM выглядит следующим образом — n1.n2.n3_n4n5

n1.n2 –major версия программы

n3 – minor версия программы

n4, n5 – версия обновления програмы

Атрибут codebase определяет каким образом загружать необходимый plugin. Существует в двух формах:

 

1. codebase=<URL>

В этом случае plugin будет загружаться с указанного URL

2. codebase=<URL>#Version=major,minor,micro,update

В такой форме определяется версия необходимой JRE и если у пользователя установлена более старая версия, то броузер предложит установить ту, которая указана в URL. В качестве примера можно посмотреть на следующее описание:

 

 

Здесь http://java.sun.com/j2se/1.5.0/docs/guide/deployment/deployment-guide/autodl-files.html Вы можете посмотреть список различных версий JRE и для каждой версии тот URL, который позволит Вам загрузить нужную версию.

Использование тэга EMBED

Наиболее интересными в данном тэге являются аттрибут type – он определяет, какая версия JRE необходима. Здесь разработчик может определить версию двумя путями

1. type=»application/x-java-applet;version=1.5.0″

В этом случае на компьютере пользователя должна быть устанволена JRE не ниже 1.5.0. В случае, если это не так, то пользователь будет перенаправлен на страницу, указанную в URL для загрузки нужной версии

2. type=»application/x-java-applet;jpi-version=1.5.0_01

В такой ситуации требуется точное совпадение версии. И если даже версия на компьютере пользователя выше, будет производиться загрузка точной версии.

 

 

Что делать в случае, если надо использовать несколько броузеров

Разработчик может использовать два варианта для установки JRE.

  1.  Использование чистого HTML
  2.  Использование JavaScript

 

Если Вы используете HTML, то надо помнить несколько правил:

Internet Explorer – распознает тэг OBJECT и игнорирует тэг COMMENT

Семейство Mozilla  — игнорирурет тэг OBJECT с аттрибутом classid и обрабатывает тэг COMMENT.

 

Вот пример кода, который позволяет загружать нужные плагины при использовании разных броузеров:

 

Если Вы предпочитаете использовать JavaScript то нижеприведенный пример достаточно ясно показывает, что Вы должны делать.

 

 

Вышеприведенный код имеет недостаток в плане того, что в Netscape 6 тэг EMBED не поддерживается. Кроме того каждый раз писать такой код Вам само собой надоест и Вы бы предпочли что-то автоматическое. Для такого случая SUN создал специальные конверторы, которые позволяют изменить уже готовые HTML файлы.

Результатом изменения файла будет новый файл, в котором тэги APPLET будут заменены на более современный код.

 

Конфигурирование прокси

Большинство корпоративных пользователей подключены к сети, которая для выхода «наружу» используют прокси.

Plugin позволяет настроить необходимые параметры. Для Windows необходимо зайти в Панель Управления (Control Panel) и запустить Java Plug-In Control Panel.

В появившемся окошке выберите закладку Proxies. Plugin можно настроить в трех видах:

1. Использовать настройки броузера

2. Ручное конфигурирование

3. Ввести URL для автоматической настройки. Вы должны ввести URL для вызова файла с JavaScript где находится функция FindProxyForURL.

 

Кэширование апплетов

Панель управления плагином содержит в себе закладку, в которой можно настроить параметры кэша. Но кроме того разработчик может настроить параметры кэширования апплета с помощью указания аттрибутов для тэгов OBJECT и EMBED.

cache_archive – содержит список файлов, которые надо клсть в кэш.

<PARAM NAME=»cache_archive» VALUE=»a.jar,b.jar,c.jar»>

cache_version – содержит список версий апплета, которые надо кэшировать

<PARAM NAME=»cache_version» VALUE=»1.2.0.1, 2.1.1.2, 1.1.2.7″>

cache_archive_ex – используется для того, чтобы делать предварительную загрузку некоторых файлов

<PARAM NAME =”cache_archive_ex” VALUE= «<jar_file_name>;<preload(optional)>;<jar_file_version(optional)>,…»

 

«Молчаливая» установка

Инсталляционный пакет JRE построен с помощью программы InstallShield, которая базируется в свою очередь на Microsoft Windows Installer. Он позволяет производить так называемую «молчаливую» установку.

<jre>.exe /s /v»/qn ADDLOCAL=jrecore[,extra][,other_US] | ALL ]

[IEXPLORER=1] [NETSCAPE6=1] [MOZILLA=1] [INSTALLDIR=<drive>:\<install_path>]

[PRIVATE=1][REBOOT=Suppress]»

 

Где

jre.exe – исполняемый файл

ADDLOCAL – значение локализации

IEXPLORER, NETSCAPE6, MOZILLA – подключать ли JRE к этим броузерам

Основы безопасности апплетов

1. Все не подписанные апплеты работают в стандратной «песочнице»

2. Если в файле java.policy НЕ ОПРЕДЕЛЕН usePolicy, то подписанные апплеты получают AllPermissions (полные права) если: Java Plug-In может проверить подпись и выдает приглашение, которое пользователь может принять и дать апплету такие права или отклонить.

3. Если в файле java.policy ОПРЕДЕЛЕН usePolicy, то апплет получает те права, которые прописаны в файле java.policy и не происходит запроса на подтверждение пользователя.

Апплеты могут быть подписаны с помощью алгоритма RSA. Для того, чтобы plugin мог проверить подпись, в него встроен провайдер криптографии (не знаю как хорошо перевести Cryptographic Service Provider – CSP). CSP поддерживает алгоритмы подписи MD2-RSA, MD5-RSA, SHA-RSA.

Более подробную инофрмацию по подписи апплетов можно получить в другой статье — Подписи в апплетах — как это делается

 

Отладка апплетов с помощью Java Plug-in

Для того, чтоы иметь возможность отлаживать Ваше приложение Вам необходимо установить Java 2 SDK. Как установить – можете посмотреть статью:Как начать работать с JAVA

Также убедитесь, что Ваше приложение было откомпилировано с ключом –g.

Теперь начнем отладку.

1. Запустите Java Plug-in Control Panel (как это сделать см. Выше). В закладе Advanced установите параметры:

 

<connection-address> — это строка, которая указывает коннект к JVM. Например это может быть так:

2. Также в закладке Advanced установите нужную версию JDK, которая будет указывать на установленную Вами

3. Запустите Internet Explorer или Netscape и загрузите страницу, которая содержит отлаживаемый апплет.

4. Запустите команду jdb – attach <connection-address>. Для параметров, которые были установлены в пункте 1 можно использовать запуск

Основные сведения по использованию jdb Вы можетt найтипо адресу http://java.sun.com/j2se/1.5.0/docs/guide/jpda/jdb.html

5. Как только дебаггер подконнектится к JVM Вы можете начинать отладку

Представленная информация само собой существует на официальном сайте Sun Microsystems и Вы можете использовать оригинальные описания Java Plug-In.

Все замечания по поводу статьи автор примет с большим удовольствием.