Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Java: Апплеты > Java plug-in – что это такое ? |
Автор: AntonSaburov 22.12.2005, 15:16 | ||||||||||||||||
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/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. Более подробную инофрмацию по подписи апплетов можно получить в другой статье: 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 19.2.2008, 00:53 | ||||||
Приветствую всех! Очень понраволась эта статья. Спасибо. После некоторого копания в нете отыскал очень интересную штуку, и хотелось бы поделиться. "штука" называется 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/plugin/developer_guide/html_converter_more.html#running_gui |
Автор: aliks 5.1.2009, 17:14 |
а я так и не понял, что такое Java Plug-in и чем он отличается от апплета...или это есть одно и тоже, просто по разному называется??? |
Автор: aliks 13.3.2009, 12:31 |
Спасибо за разжевывания вопроса ![]() |