![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
AntonSaburov |
|
||||||||||||||||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: 2 Всего: 118 |
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 советуем заглянуть на станицу http://www.w3.org/TR/1999/REC-html401-19991224/ (W3 HTML specification.) В HTML спецификации утверждается, что таг APPLET является устаревшим и использовать его не стоит. Но в связи с тем, что четкое описание обработки тага OBJECT в спецификации пока нет, SUN советует использовать таг APPLET в случае кросс-платформенности и кросс-броузерности. Достаточно простой пример использования тага:
Использование тага OBJECT Таг OBJECT имеет несколько аттрибутов. Мы рассмотрим самые важные. Аттрибут classid определяет какую версию JRE надо использовать и может быть записан в двух варинатах: 1. classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" В этом случае определение используемой версии JRE определяется динамически и используется самая последняя из установленных в данный момент. 2. classid="clsid:CAFEEFAC-xxxx-yyyy-zzzz-ABCDEFFEDCBA" В такой форме последовательности xxxx, yyyy, zzzz определяют точно, какая версия JVM будет использована. Например для использования plugin’а версии 1.5.0 classid определяется следующим образом: classid="clsid:CAFEEFAC-0015-0000-0000-ABCDEFFEDCBA" ЗАМЕЧАНИЕ! Формат версий для 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/...todl-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. Более подробную инофрмацию по подписи апплетов можно получить в другой статье: http://vingrad.ru/JAVA-JAV-000116 Отладка апплетов с помощью Java Plug-in Для того, чтоы иметь возможность отлаживать Ваше приложение Вам необходимо установить Java 2 SDK. Как установить – можете посмотреть статью: http://vingrad.ru/JAVA-JAV-000126 Также убедитесь, что Ваше приложение было откомпилировано с ключом –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 Вы моежет найтипо адресу http://java.sun.com/j2se/1.5.0/docs/guide/jpda/jdb.html 5. Как только дебаггер подконнектится к JVM Вы можете начинать отладку Представленная информация само собой существует на официальном сайте Sun Microsystems и Вы можете использовать оригинальные описания Java Plug-In. Все замечания по поводу статьи автор примет с большим удовольствием. |
||||||||||||||||
|
|||||||||||||||||
ShurikA |
|
||||||
![]() Зануда ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1364 Регистрация: 29.10.2005 Где: Канада Репутация: 1 Всего: 3 |
Приветствую всех!
Очень понраволась эта статья. Спасибо. После некоторого копания в нете отыскал очень интересную штуку, и хотелось бы поделиться. "штука" называется HTML Converter. Зачем она нужна? Многие (включая меня самого) задаются вопросом как правильно вставить апплет в HTML страничку. Во всех книгах, во всяком случае для начинающих, описывается таг APPLET, он работает везде. Но... допустим на компьютере не установленна JVM, или установленна не правильная версия, в таком случае появится пустое окно апплета или с красным иксом в левом верхнем углу этого окна (зависит от браузера). Есть возможность помочь конечьному пользователю с установкой JVM и воспользоваться тагами Object и/или EMBED. Я не буду описывать то как ими нужно пользоваться. Это нам уже предоставил AntonSaburov в статье выше, за что ему огромное спасибо. Я попытаюсь облегчить жизнь создавая эти таги правильно, в 95% случаев просто автоматический ![]() А теперь к делу. Компания Sun, которую мы все знаем, предоставила нам "инструмент" под названием HTML Converter. Его цель конвертировать таг APPLET в тот таг который нам нужен. На пример Object или EMBED, при этом очень простым способом. Я опишу пример конвертирования который сам же и использовал: 1. Перво на перво нам нужно создать HTML фаил в котором будет описан таг APPLET (желательно правильный и проверенный) У меня он выглядел вот так:
сохраним его где угодно и под любым именем. 2. Запускаем HTML Converter. HTML Converter можно запустить как с командной строки так и его графический интерфайс. Но запуск в любом случае происходит с командной строки. Я предпочитаю воспользоваться GUI. JAR фаил конвертера должен быть в дериктории установки вашей ...JDK/lib. Command Line:
После этой команды поднимертя окно на подобие следующего: ![]() 2.1 В репвом поле выбераем тот самый фаил HTML который мы создали в самом начале. 2.2 Выбераем платформу под которую нам нужно созда наш таг (в поле Template File). Я для себя быбрал Standard (IE & Navigator)... 2.3 Вуберим версию JVM под которую нам нужно прогонять наш апплет. Тут к сожалению только 2 варианта: допустим версия 1.4 или 1.4 и выше. Но это поправимо: самая низкая версия зависит от той версии JVM под которой запущен HTML Converter, так что если нужна, на пример, версия 1.5 то можно запустит HTML Converter под 1.5 и т.д. Для свойх нужд я выбрал версию 1.5 и выше Всё, с установками закончили. 3. Теперь просто нажимаетм "Convert". Выскочит окошко с сообщением сколько фаилов обработанно. Теперь давайте откроем опять тот же самый фаил HTML который мы создали в самом начале:
Что мы видим? Закоментированный таг APPLET и таг OBJECT со встроенным в него EMBED. Таким образом построенный таг идеально работает в IE, FF и подобных. Ну вот вроде бы и всё. Развлекайтесь!! ![]() Информация изначально взята с сайта Sun : http://java.sun.com/j2se/1.5.0/docs/guide/...tml#running_gui |
||||||
|
|||||||
aliks |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 146 Регистрация: 17.12.2008 Репутация: нет Всего: 1 |
а я так и не понял, что такое Java Plug-in и чем он отличается от апплета...или это есть одно и тоже, просто по разному называется???
--------------------
Любимая кнопка - F1, Любимое спасибо - Плюс в репутацию |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 9 Всего: 538 |
Для запуска апплета есть 2 возможности: 1. Использование тега applet. Этот способ хорош тем, что практически все браузеры его понимают. А плох тем, что он устарел и возможно в будущем перестанет поддерживаться, нельзя контролировать версию JRE на клиенте и установить ее при необходимости. 2. Использование тега object. Этот способ хорош тем, что можно указывать требуемую версию JRE и при ее отсутствии автоматически установить ее. Плюс есть возможность отлаживать апплеты в браузере. И по скольку этот тег используется для большинства внедренных объектов (типа того же Flash), то он гарантированно будет поддерживаться в будущем. Недостаток состоит в том, что этот тег по разному выглядит для разных браузеров. Так вот Java plugin это плагин к браузеру который и отвечает за обработку тега object. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
aliks |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 146 Регистрация: 17.12.2008 Репутация: нет Всего: 1 |
Спасибо за разжевывания вопроса
![]() Это сообщение отредактировал(а) aliks - 13.3.2009, 12:31 --------------------
Любимая кнопка - F1, Любимое спасибо - Плюс в репутацию |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: Апплеты | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |