Меню Рубрики

Установка апплета на сайте

Веб-программирование. Апплеты

Для получения некоторых интерактивных возможностей веб-приложений в веб-программировании используются апплеты — специальные Java-приложения, загружаемые в браузер и работающие в нем. Основное предназначение апплетов — это расширение интерактивных возможностей пользовательских веб-интерфейсов, в связи с чем апплеты могут быть использованы при создании сайтов.

Апплеты повышают надежность программного кода сайта, поскольку практически исключают возможность проникновения вредоносных программ. Поэтому хотя на сегодняшний день апплеты и значительно уступают по популярности технологии flash, они по-прежнему могут применяться веб-программистами.

В данном примере «имя_файла.class» — это имя загружаемого файла, содержащего апплет. Апплет должен находиться в той же папке, где html-страница, что ссылается на этот апплет.

Апплеты могут содержать несколько дополнительных необязательных параметров, которые могут быть использованы при необходимости. Так, параметр alt задает значение для альтернативного текста в случае, если апплеты по каким-либо причинам не отображаются. Параметры vspace и hspace отвечают за отступы от остального содержимого html-страницы.

Апплеты имеют надежную систему защиты от внедрения вредоносных кодов и позволяют свести риск заражения вирусом к минимуму. Для этого разработчиками Java была создана так называемая «песочница» — механизм защиты, включающий три основных компонента:

  • проверка на уровне JVM;
  • защита на уровне языка;
  • интерфейс JavaSecurity.

Современное веб-программирование при создании сайтов часто подразумевает использование уже готовых апплетов, ведь создано таких программ довольно много. Апплеты обладают кроссплатформенностью и кроссбраузерностью, быстро загружаются. Но есть у апплетов и некоторые недостатки.

Так, для отображения апплетов браузер должен поддерживать Java (Java-расширения не всегда по умолчанию установлены в браузере). Кроме того, для работы апплетов нужна виртуальная машина JVM, поэтому при запуске апплетов необходимо ожидать также запуска JVM.

Веб-программирование сайтов на сегодняшний день широко использует современные «продвинутые» технологии, а апплеты — это скорее приятное дополнение к возможностям создаваемых сайтов. Поэтому апплеты присутствуют чаще всего на развлекательных сайтах, интернет-порталах.

источник

Использование Java смарт-карт для защиты ПО. Глава 4. Пишем первый апплет

1. Введение

В данном цикле статей пойдет речь об использовании Java смарт-карт (более дешевых аналогов электронных ключей) для защиты программного обеспечения. Цикл разбит на несколько глав.

Для прочтения и осознания информации из статей вам понадобятся следующие навыки:

  • Основы разработки ПО для Windows (достаточно умения программировать в любой визуальной среде, такой как Delphi или Visual Basic)
  • Базовые знания из области криптографии (что такое шифр, симметричный, ассиметричный алгоритм, вектор инициализации, CBC и т.д. Рекомендую к обязательному прочтению Прикладную Криптографию Брюса Шнайера).
  • Базовые навыки программирования на любом языке, хотя бы отдаленно напоминающем Java по синтаксису (Java, C++, C#, PHP и т.д.)

Цель цикла — познакомить читателя с Ява-картами (литературы на русском языке по их использованию крайне мало). Цикл не претендует на статус «Руководства по разработке защиты ПО на основе Ява-карт» или на звание «Справочника по Ява-картам».

Состав цикла:

1. Пример апплета

На самом деле писать мы ничего не будем. Я просто приведу здесь жутко прокомментированный исходник тестового апплета для карты. А потом расскажу о некоторых тонкостях реализации.

2. Некоторые тонкости

Конструктор класса апплета вызывается только один раз — при загрузке апплета в карту и его установке.

Первое, о чем нужно узнать, при разработке вашего апплета — поддерживает ли реализация Java Card API на карте сборщик мусора (garbage collector). Если сборщик мусора не поддерживается, то любой объект, созданный с помощью оператора new, останется висеть в памяти карты навечно. Уничтожить его и освободить занимаемую память будет нельзя (кроме как удалив апплет с карты).

Читайте также:  Установка поршней в блоке цилиндров

Из этого следует один простой вывод: если ваша карта не поддерживает сбор мусора, все операторы new должны располагаться внутри конструктора класса апплета (внутри метода, с именем как у самого класса). Вне этого метода операторы new использовать будет нельзя. Если вы нарушите это правило, через какое-то время при выполнении команд апплет начнет «плеваться» ошибками и его придется перезаписать.

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

Второй момент — фрагментация памяти карты при управлении апплетами. Апплет в памяти карты — что файл на жестком диске. Если вы удалите апплет, записанный перед каким-нибудь другим, в памяти карты останется «дырка» свободного пространства размером с удаленный апплет. Поэтому нужно придерживаться простых правил:

  • Если некоторые апплеты после записи в карту удалять не предполагается, записывайте их первыми.
  • Если какие-то апплеты предполагается обновлять и после них в карту записаны другие — перед обновлением придется удалить их все и перезаписать.

То же самое касается динамического выделения памяти на картах, поддерживающих сборку мусора. Хоть сборщик и уничтожает неиспользуемые объекты, он может не дефрагментировать память, поскольку в случае с EEPROM карты это очень долгий процесс.

Реализация языка Java для карт не поддерживает как минимум:

  • типы char, double, float, long, int, string;
  • квалификатор transient;
  • перечисления
  • многомерные массивы

Причем, отсутствие поддержки типа int приводит к довольно смешному формату вызова методов: apdu.setOutgoingAndSend((short) 0, (short) 120) поскольку в Java числовые литералы — int по умолчанию.

Ошибки в написании апплета могут проявляться на каждом из трех уровней: компиляция (*.java -> *.class), конвертация (*.class -> *.cap), линковка апплета в карте (*.cap -> карта). Будьте внимательны. Можно написать огромный апплет, скомпилировать и сконвертировать, а потом обнаружить, что в карту он не заливается по какой-то причине. Поскольку с отладкой апплетов все сложно в этом случае можно посоветовать комментировать части апплета и заливать его в карту, пока не наткнетесь на часть, которая вызывала ошибку.

На некоторых картах присутствует верификатор (например, CodeShield на последних партиях Schlumberger/Gemalto egate). Этот верификатор дополнительно проверяет код апплета уже после загрузки его в карту на этапе установки (характерный признак его присутствия — долгая пауза перед получением ответа на последнюю команду загрузки — может достигать целой минуты), создавая дополнительный геморрой. Например, этот верификатор может требовать обязательного присутствия break в каждом case оператора switch, не давая сгруппировать два case в один.

Все члены класса апплета хранятся в EEPROM карты. Количество циклов перезаписи этой памяти хоть и велико (несколько сот тысяч циклов), но все же ограничено. В картах есть некоторое количество оперативной памяти, которую можно выделить вызовом Util.makeTransientArray (как видно из названия, память выделяется в виде массива и такое выделение доступно и на картах без сборщика мусора. Память, выделенная makeTransientArray во всех случаях освобождается корректно (см. документацию)). Обычно около 1Кб. Разумеется, работа с этой памятью быстрее, чем с EEPROM.

Читайте также:  Установка carrier supra 850

Чтобы представить себе возможности, которые доступные апплету, предлагаю просто пролистать документацию, входящую в состав Javacard SDK.

3. Благодарность терпеливым читателям

Спасибо всем, кто дочитал до этого места. Благодарности и негодования принимаются.

Буду рад любым вопросам в комментариях и постараюсь обновлять статью так, чтобы она включала ответы.

источник

Интеграция апплета в веб-приложение

Апплет — это программа, написанная на языке программирования Java и встраиваемая в страницу HTML способом, в многом похожим на вставку изображения на страницу. Приложение, которое будет создано в этом учебном курсе, показывает, как выполнять сборку и развертывание апплетов в среде IDE.

Примечание. Хотя нет шаблонов проектов, которые специально разработаны для создания апплетов в IDE, их можно легко разработать в проекте Java и упаковать их в веб-проект, как показано в этом учебном курсе.

  • Создание и импорт апплета
  • Запуск апплета
  • Интеграция апплета в веб-приложение

Для работы с этим учебным курсом требуется следующее программное обеспечение и ресурсы.

Программное обеспечение или материал Требуемая версия
IDE NetBeans 7.2, 7.3, 7.4, 8.0, версия Java
Комплект для разработчика на языке Java (JDK) версия 7 или 8
GlassFish Server Open Source Edition
или
Контейнер сервлетов Tomcat
3.x или 4.x

версия 7.x или 8.x

Создание или импорт файла исходного кода апплета

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

Создание проекта Java с нуля или с использованием имеющихся исходных кодов

  1. Выберите команду «Файл» > «Создать проект» (CTRL+SHIFT+N). В области «Категории» выберите «Java».
  2. Выполните одно из следующих действий.
    • Для создания нового исходного файла в области «Проекты» выберите пункт «Библиотека классов Java». Нажмите кнопку «Далее».
    • Для импорта исходного файла апплета выберите пункт «Проект Java с существующим исходным кодом». Нажмите кнопку «Далее». Укажите местоположение файла в текстовом поле «Папка с исходными файлами».
  3. В поле «Имя проекта» введите HelloApplet. В области «Расположение проекта» укажите любую папку на своем компьютере.
  4. Нажмите кнопку «Завершить». Если файл исходного кода апплета был импортирован, запустите его.

Создание файла исходного кода апплета

  1. Нажмите название проекта HelloApplet правой кнопкой мыши и выберите пункт «Свойства», при этом откроется окно «Свойства».
  2. Выберите нужный формат исходных/двоичных файлов для проекта и нажмите ОК.

Примечание. Если выбрана версия JDK 1.6, апплет может не запускаться на компьютерах, на которых установлена предыдущая версия JRE или подключаемого модуля Java для браузера.

  • Нажмите узел HelloApplet в окне «Проекты» и выберите «Новый» > «Другое» (Ctrl-N).
  • В области «Категории» выберите «Java». В области «Типы файлов» выберите «Апплет».

    Если же нужно использовать визуальные средства для разработки апплета, выберите «Формы Swing GUI» > «Форма JApplet».

  • В области «Имя класса» введите MyApplet. В поле «Пакет» введите org.me.hello.
  • Нажмите кнопку «Завершить».

    Среда IDE создает исходный файл апплет в указанном пакете. Исходный файл апплета открывается в редакторе исходного кода.

    Определите класс своего апплета, заменив существующий стандартный код следующим кодом:

    В качестве альтернативы, если вместо этого выполняется разработка форма апплета используйте документ Разработка графического интерфейса пользователя Swing в IDE NetBeans для создания аналога следующему:

    Читайте также:  Установка плагина flash player linux

    Подробную информацию о написании апплетов см. в разделеАпплеты Руководства Java TM .

    Запуск файла исходного кода апплета

    Созданный апплет можно запустить из среды IDE. В этом разделе вы узнаете, как это сделать.

    Сборка и выполнение исходного файла апплета

    Щелкните правой кнопкой мыши узел файла MyApplet.java в окне ‘Проекты’ и выберите в контекстном меню команду ‘Запустить файл’. В папке сборки создается файл запуска MyApplet.html со встроенным апплетом. Его можно увидеть, перейдя в окно «Файлы» (CTRL+2):

    Апплет запускается в программе просмотра апплета.

    Формы апплета также отображаются в программе просмотра апплета.

    Внедрение апплета в веб-приложение

    Итак, создание апплета завершено. Теперь необходимо предоставить к нему доступ пользователю. Для этого необходимо создать веб-приложение, добавить апплет JAR в путь к его классам, а затем добавить тег апплета в файл HTML веб-приложения.

    Создание веб-проекта

    1. Выберите команду «Файл» > «Новый проект».
    2. В категории Java Web выберите ‘Веб-приложение’. Нажмите кнопку «Далее».
    3. В области «Имя проекта» введите HelloWebApplet.
    4. В области «Расположение проекта» укажите любую папку на своем компьютере. Нажмите кнопку «Далее».
    5. Выберите целевой сервер. Нажмите кнопку «Завершить».

    Добавление файла JAR апплета в веб-проект

    Когда нужно включить файл апплета в формате JAR в веб-проект, можно добавить либо проект Java, содержащий файл JAR file, либо добавить сам файл JAR. Можно выбрать любой из вариантов, однако следует учесть, что при добавлении проекта Java в веб-проект среда IDE запускает сборку апплета при каждой сборке веб-приложения. Таким образом, если вы изменяете апплет в проекте Java, среда IDE собирает новую версию апплета каждый раз при сборке веб-проекта. С другой стороны, если файл JAR апплета не находится в проекте IDE NetBeans, исходный файл апплета не перестраивается при построении веб-проекта.

    Примечание. Если на этом этапе используется проект HelloApplet в IDE файл HelloApplet.jar отсутствует. Это нормально. Файл HelloApplet.jar будет собран при сборке проекта HelloWebApplet.

    1. В окне ‘Проекты’ щелкните правой кнопкой мыши узел проекта HelloWebApplet и выберите ‘Свойства’ в контекстном меню.
    2. Выберите категорию ‘Упаковка’.
    3. Выполните одно из следующих действий.
      • Если апплет находится в проекте Java, нажмите ‘Добавить проект’ и найдите каталог этого проекта Java. Щелкните Add JAR/Folder («Добавить JAR/Папку»).

    Примечание. Проекты IDE помечены специальным значком ‘Проект NetBeans IDE’.

  • Если используемый файл апплета JAR не входит в проект IDE, нажмите ‘Добавить файл/папку’ и найдите папку с файлом JAR. Нажмите ‘Выбрать’.
  • Убедитесь, что JAR с исходным файлом апплета отображается в таблице в окне ‘Свойства проекта’. Нажмите кнопку «ОК».

    По умолчанию файл JAR апплета будет скопирован в библиотеку страницы веб-приложения (папку build/web ). Папка build/web является корневым каталогом приложения и отображается в таблице как «/» в переменной Path в столбце WAR. Вы можете изменить расположение апплета в WAR. Для этого введите новое расположение апплета в переменной Path в столбце WAR.

  • Нажмите ОК, чтобы закрыть диалоговое окно ‘Свойства проекта’.
  • При сборке проекта HelloWebApplet с помощью команды ‘Выполнить > Собрать проект (HelloWebApplet)’ главного меню IDE JAR-файл апплета создается в исходном проекте HelloApplet и упаковывается в WAR-файл проекта HelloWebApplet. Он также добавляется в папку build/web. Следить за процессом можно в окне «Результат», а конечный результат можно посмотреть в окне «Файлы».

    источник

    Добавить комментарий

    Adblock
    detector