Param параметры апплета (нет в html 2 0)

Содержание

Понятие апплета

Содержание

Введение

В первом упоминании Java-технологии, наиболее перспективными выглядели, так называемые, апплеты (небольшие программы, исполняемые внутри броузера, и позволяющие сделать web-страницы более интерактивными). Вспомним Internet 1995 года, когда большинство web-страниц было статичными, а динамическое содержимое состояло из Perl-скриптов, исполняемых посредством CGI (Common Gateway Interface) интерфейса. Особо большого пространства для фантазии при проектировании сайтов не было, отсутствовала анимированная графика, а также какое-либо взаимодействие между пользователями. Такое взаимодействие требует для отправки информации web-серверу использование цикла запроса-ответа иного рода. В то же время, компания Netscape захватила рынок броузеров и первой получила лицензию на использование продукции Java для броузера Netscape Navigator. После этого компания Microsoft также подписала контракт и включила в Internet Explorer свою версию виртуальной машины для поддержки выполнения Java-программ.

Спустя несколько лет мир снова взглянул на апплеты, как на программы, встраиваемые в броузер. Разработчики снова стали использовать решения, базирующиеся на апплетах, так как Java Plug-in от Sun позволяет обновлять старую версию виртуальной машины, встроенную в Internet Explorer, до последней – Java Runtime Environment (JRE) – посредством Технологии Get Java.

Однако чем же все-таки является апплет? С технической стороны, апплетом может служить любой класс, расширяемый от класса Applet пакета java.applet. Это фактическое определение, однако не исчерпывающее. Если у вас имеется данный подкласс, вы можете добавить его к web-странице, разместив между тегами — . После этого броузер будет загружать класс апплета и отображать его в назначенном пространстве.

Кроме этого у вас в распоряжении имеются методы init, start, stop и destroy. При рисовании и отображении областей применяется метод paint, так как Applet является подклассом java.awt.Component. Эти пять ключевых методов работают следующим образом:

init – вызывается при загрузке броузером основного класса Applet. Обычно у апплетов нет конструктора. Вместо этого используется код их единовременной инициализации.

start – вызывается в начале выполнения апплета при посещении пользователем страницы.

stop – вызывается для остановки выполнения аплета, когда пользователь покидает страницу, содержащую данный апплет.

destroy – вызывается в случае, если броузер должен завершить работу апплета. При этом ресурсы можно восстановить, однако у вас не будет над ними контроля.

paint – вызывается, когда броузер определяет, что область отображения апплета является неверной.

В качестве примера рассмотрим апплет, который при вызове каждого из пяти методов выводит информацию в консоль. Метод paint используется также для отображения сообщения на экране. При каждом вызове метода paint число увеличивается. При этом напрашивается вопрос о том, где же можно найти сообщения, записываемые в консоль. Ответ зависит от используемого броузера, а иногда и от его версии. В IE 6.0 Java Console находится в меню Tools. В рабочем цикле Microsoft и IE6 консоль расположен в меню View. А в броузерах Mozilla и Netscape 7.0, Java Console находится в меню Web Development (вложено в меню Tools).

Код апплета выглядит следующим образом:

import java.awt.*;
import java.applet.*;

public class FirstApplet extends Applet <
public void init () <
System.out.println ( «In init()» ) ;
>

public void start () <
System.out.println ( «In start()» ) ;
>

public void stop () <
System.out.println ( «In stop()» ) ;
>

public void destroy () <
System.out.println ( «In destroy()» ) ;
>

public synchronized void paint ( Graphics g ) <
System.out.println ( «In paint()» ) ;
g.drawString ( «Painting. » , 50 , 50 ) ;
>
>

Скомпилируйте апплет так же, как и любой другой исходный файл:

Если в файле не будет ошибок, будет создан класс FirstApplet.class.

Загрузка апплетов несколько отличается от загрузки автономных программ. Вместо обеспечения основного метода, исполняемого один раз при загрузке файла, загрузка апплета требует наличия HTML-файла. Именно в нем размещается тег . Вот как выглядит определение тега:

Для апплета, файл-загрузчик должен выглядеть так, как представлено ниже, и располагаться в той же директории, что и файл .class:

Атрибут code указывает имя загружаемого класса. Значение атрибутов width и height очевидно – при их помощи выставляется желаемый размер отображения апплета. Если файл класса апплета использует базовую директорию отличную от директории файла-загрузчика HTML, вам потребуется задать CODEBASE, позволяющий указать броузеру расположение базовой директории.

Поместите данный тег в любой HTML-файл и загрузите его в броузере.

Далее представлен пример метода, содержащего несколько локальных внутренних классов:

ПРИМЕЧАНИЕ: При использовании виртуальной машины Microsoft, Java консоль может отобразить ошибку NoClassDefFoundError. Если у вас не установлен Java Plug-in, то запуск апплета при помощи виртуальной машины Microsoft будет невозможным, так как с момента ее выпуска формат файла .class изменился. Для того чтобы сделать файл .class совместимым с более старыми версиями Microsoft VM, нельзя использовать программные средства новее версии 1.1.4, а компилировать следует при помощи опции –target следующим образом:

Подобной проблемы не возникнет, если у вас был установлен Java Plug-in. В этом случае вам потребуется просто скомпилировать исходный код и загрузить HTML-файл в своем броузере.

Запуск потоков в апплетах

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

Создавая апплет, вы расширяете класс Applet. Поэтому, для того чтобы использовать потоки, необходимо реализовать интерфейс Runnable или определить поток как внутренний класс Thread.

В методе start апплета создайте новый объект Thread (хотя объект thread также содержит метод start, он не совпадает с соответствующим методом апплета).

Из-за того, что реализуется интерфейс Runnable, вам необходимо обеспечить для класса метод run. Данный метод вызывается при запуске потока объектом thread для выполнения предназначенных ему операций.

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

import java.applet.*;
import java.awt.*;

public class ExampleThreads extends Applet implements Runnable <
String text = «An example of text scrolling in its own thread.» ;
TextField field;
Thread thread;
boolean running;

public void init () <
// открыть init
Font fnt = new Font ( «Monospaced» , Font.BOLD, 26 ) ;
setFont ( fnt ) ;
FontMetrics fm = getFontMetrics ( fnt ) ;
int spaceW > ( ‘ ‘ ) ;
int panelW > () .width;
int numSpaces = panelWidth / spaceWidth + 1 ;

// Добавить необходимые пробелы в текст
for ( int i = 0 ; i ) <
text = text + ‘ ‘ ;
>

field = new TextField ( «Type Here» ) ;
add ( field ) ;
>

public void start () <
if ( thread == null ) <
thread = new Thread ( this ) ;
running = true ;
thread.start () ;
>
>

public void run () <
while ( running ) <
text = text.substring ( 1 , text.length ()) + text.charAt ( 0 ) ;
repaint () ;

try <
Thread.sleep ( 100 ) ;
>

catch ( InterruptedException e ) <
>
>
>

public void stop () <
if ( thread != null ) <
running = false ;
thread = null ;
>
>

public void paint ( Graphics g ) <
g.drawString ( text, 0 , 150 ) ;

Создайте HTML-страницу, как показано далее, после чего запустите ее в программе для просмотра апплетов или в броузере.

При запуске приложение должно выглядеть следующим образом:

Классы Applet, Image и MediaTracker

В представленной ранее статье описано, как посредством HTML-страницы передавать в апплет некоторую информацию, такую как местоположение файла класса, а также высота и размеры самого апплета. Кроме передачи информации о самом апплете и его исходном файле, можно также передавать необязательные параметры, используя для этой цели теги PARAM и метод getParameter класса Applet.

Например, вы хотите, чтобы в апплете отображалась графические или какие-либо другие объекты. Для того чтобы в апплете можно было использовать изображения, необходимо сначала связать каждое из них с абстрактным классом Image. Затем, путем передачи параметров через HTML-файл, можно задать информацию о количестве изображений и их именах.

Например, если вам необходимо отобразить в апплете четыре изображения, можно начать со строки:

У класса Image также есть методы getWidth и getHeight, которые возвращают значение размеров изображений в пикселях.

Тег PARAM имеет следующий синтаксис:

При помощи тега PARAM можно указывать апплету количество используемых изображений:

При помощи тегов PARAM укажем в HTML-файле имена файлов с изображениями:

Укажите апплету извлечь данные параметры при помощи метода getParameter. Строка String, передаваемая в метод getParameter, возвращает в HTML-тег значение названного параметра.

возвращает строку seahorse.jpg.

Для того чтобы узнать местонахождение встраиваемых ресурсов апплета вызовите метод getCodeBase, который возвратит их URL-адрес. Метода getImage позволяет извлечь объект изображения для выведения его на экран:

Осуществлять более сложные операции (такие как переключение между изображениями) можно при помощи класса MediaTracker, позволяющего управлять загружаемыми изображениями и отображать их статус. Класс MediaTracker является классом утилиты, используемым для отслеживания статуса многочисленных медиа-объектов.

Чтобы сконструировать объект MediaTracker, вызовите конструктор MediaTracker и передайте ему Component, который выполняет прорисовку изображений.

Если вы уже создали объект MediaTracker, задайте ему изображение, вызвав для этого метод addImage (Image image, int ID). Кроме того, каждому изображению может быть назначен уникальный идентификатор. Данный идентификатор контролирует порядок приоритетов, в котором выбираются изображения. С его помощью можно также идентифицировать уникальные наборы независимых изображений. Чем больше значение ID, тем выше приоритет загрузки изображений.

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

checkAll – проверяет, закончилась ли загрузка всех изображений, отслеживаемых данным объектом media tracker.

checkAll(boolean load) – проверяет, закончилась ли загрузка всех изображений, отслеживаемых данным объектом media tracker.

checkID(int id) – проверяет, закончилась ли загрузка всех изображений, отслеживаемых данным объектом media tracker, и помеченных специальным идентификатором.

statusAll(boolean load) – вычисляет и возвращает побитовый оператор включающего ИЛИ статуса всех media-объектов, отслеживаемых данным объектом media tracker.

waitForAll() – начинает загрузку всех картинок, отслеживаемых данным media tracker.

waitForAll(long ms) – начинает загрузку всех изображений, отслеживаемых данным объектом media tracker.

В классе MediaTracker есть также другие методы и константы, полезные при работе с изображениями.

Пример 1.5. Апплет AppletWithParam

public class AppletWithParam extends Applet <

// Поля инициализируются значениями по умолчанию

private String m_String_1 = «First string»;

private String m_String_2 = «Second string»;

// Имена параметров, нужны для функции getParameter

private final String PARAM_String_1 = «String_1»;

private final String PARAM_String_2= «String_2»;

public AppletWithParam() <

public String getAppletInfo() <

return «Name: AppletWithParam\r\n» +»»;

// Методвозвращает ссылку на массив с описаниями

public String[][] getParameterInfo() <

public void init() <

// Чтение всех параметров и запись значений в поля класса

param = getParameter(PARAM_String_1);

if (param != null) m_String_1 = param;

param = getParameter(PARAM_String_2);

if (param != null) m_String_2 = param;

public void paint(Graphics g) <

g.drawString(«Applet with Parameters»,10, 20);

public void start() <

// код, который должен выполняться при запуске апплета

public void stop() <

// код, который должен работать при остановке апплета

Как добавить дополнительные параметры при отправке формы методом GET?

Изначальный адрес странички для создания категории такой: . /index.php?route=category/add

после заполнения полей input и нажатии на кнопку submit в адресной строке адресс такой: . /index.php?cname=test&sub_cname= index.php?router=category/

нужно/хочу что бы адрес был такой test.my/admin/index.php?route=category/create&cname=test&sub_cname=

То есть после нажатии на кнопку формы, ?route=category/create удаляется из адресной строки

Изучение HTML 3.2 на примерах.

Название: Изучение HTML 3.2 на примерах.

Настоящее пособие предназначено для людей, знакомых с ПК, обрабатывающих информацию, которая будет находится на сервере, и желающих узнать, что представляет собой World Wide Web (WWW). Если Вы не знакомы с HTML, Вам предоставляется возможность предварительно изучить вводные тексты, перед тем как Вы действительно сможете вникнуть в суть этого пособия. Тем людям, которые «знают HTML», необходимо будет забыть свои знания, чтобы перейти от нестандартного HTML к стандартному.
Мы рассматриваем вариант HTML 3.2, который на сегодня является наиболее рекомендуемой версией HTML — языка описания документов, используемого на Web. Эта версия также известна под кодовым названием Wilbur. Обращаем Ваше внимание на то, что HTML 3.2 не является расширением или вариантом HTML 3.0, который существует сам по себе (совпадение первых цифр номеров версий 3.0 и 3.2 обманчиво!).

Можно работать на Web без знания языка HTML, так как тексты HTML могут создаваться различными специальными редакторами и конвертерами. Однако, мы адресуем это пособие тем, кто пишет непосредственно на HTML или, по крайней мере, изредка контролирует и модифицирует код HTML. Писать непосредственно на HTML нетрудно. Возможно, это даже легче, чем изучать HTML-редактор или конвертер, которые часто ограничены в своих возможностях, содержат ошибки или производят плохой HTML код, который не работает на различных платформах.
Язык HTML существует в нескольких вариантах и продолжает развиваться, но конструкции HTML 3.2 вероятнее всего будут использоваться и в дальнейшем. Изучая HTML 3.2 и познавая его глубже, создавая документ в начале изучения HTML 3.2 и расширяя его насколько это возможно, Вы сможете создавать документы, которые могут быть просмотрены многими броузерами Web, как сейчас, так и в будущем. Это не исключает возможности использования других методов, например, метод расширенных возможностей, предоставляемый Netscape Navigator, Internet Explorer или некоторыми другими программами. Если это действительно служит Вашим целям и Вы хотите сформировать собственное мнение о названных программах, пользуйтесь им. Но работа с HTML 3.2 — это способ усвоить особенности создания документов в стандартизированном языке, используя расширения, только когда это действительно необходимо.

Введение
Для кого?
О чем?
Зачем Вам изучать HTML?
Почему HTML 3.2?
Рамки этого документа
О версиях этого пособия
Лучше посмотреть на.
Как изучать HTML 3.2
Получение общей начальной информации о HTML
Систематическое изучение HTML 3.2
Официальная HTML 3.2 спецификация
Дополнительные источники информации
Проверьте Ваш HTML
Общие замечания по синтаксису HTML
Набор символов
Теги HTML
Элементы HTML
Aтрибуты
URLs
Case чувствительность (чувствительность к выбору)
Разделение на строки и использование пробелов и символов табуляции
Классификация элементов
Разрешенная вложенность элементов
Заметки о разном: об escape последовательностях (символьных объектах), именах, цветовых атрибутах, ширине, пикселях, вертикальном выравнивании (VALIGN), непрерывных пробелах ( ), комментарии
Media types
Основные структуры HTML 3.2 документа (с примерами)
Обязательная структура документа
Рекомендуемая структура документа
Информация о документе — раздел HEAD
Организация содержания — заголовки (headings), абзацы (paragraphs), списки (lists) и т.п.
Разметка текста — выделение шрифта, цитирование, код и т.п.
Управление размещением
Связи
Изображения, формулы и т.п.
Таблицы — tables (Нет в HTML 2.0!)
Таблицы стилей
Описания тегов HTML 3.2
Индексы и надписи
A — якоря (anchors), гиперсвязи (hyperlinks), и т.д.
ADDRESS (АДРЕС) — информация об авторе информации
APPLET — Java апплеты (Нет в HTML 2.0!)
AREA (ОБЛАСТЬ) — область в реагирующей на нажатие клавиши схеме (MAP) (Нет в HTML 2.0!)
B — жирный шрифт
BASE — базовый, основной URL
BASEFONT (БАЗОВЫЙ ШРИФТ) — размер базового шрифта (Нет в HTML 2.0!)
BIG (БОЛЬШОЙ) — большой шрифт (Нет в HTML 2.0!)
BLOCKQUOTE (БЛОК ЦИТИРОВАНИЯ) — длинное цитирование
BODY (ТЕЛО) — тело документа
BR — перевод строки
CAPTION (ЗАГОЛОВОК) — заголовок для таблицы (Нет в HTML 2.0!)
CENTER (ЦЕНТР) — центрирование (Нет в HTML 2.0!)
CITE — ссылки
CODE (КОД) — программный код
DD — определение данных
DFN — определение (Нет в HTML 2.0!)
DIR — ненумерованный список в директории
DIV — разделитель документа (Нет в HTML 2.0!)
DL — дефинитивные или описательные списки
DT — дефинитивный термин
EM — подчеркивание
FONT (ШРИФТ) — размер и цвет шрифта (Нет в HTML 2.0!)
FORM (ФОРМА) — заполняемая форма
H1, H2, H3, H4, H5, H6 — заголовки
HEAD (ЗАГОЛОВОК) — заголовок документа
HR — изменение раздела (горизонтальная черта)
HTML — элемент верхнего уровня
I — курсив
IMG — линейные изображения
INPUT — поля ввода в формах
ISINDEX — простой поиск по ключевым словам
KBD — ввод с клавиатуры
LI — списковый элемент
LINK (СВЯЗЬ) — связь с другими документами
MAP — реагирующая на нажатие клавиш карта (Нет в HTML 2.0!)
MENU (МЕНЮ) — ненумеруемый список менюподобных форм
META — метаинформация
OL — упорядоченные (нумерованные) списки
OPTION — элемент выбора в меню
P — обычный абзац
PARAM — параметры апплета (Нет в HTML 2.0!)
PRE — предварительно отформатированный текст
SAMP — образец вывода
SCRIPT — зарезервирован для будущего использования (Нет в HTML 2.0!)
SELECT (ВЫБРАТЬ) — меню выбора в форме
SMALL (МАЛЫЙ) — малый шрифт (Нет в HTML 2.0!)
STRIKE — перечеркнутый текст (Нет в HTML 2.0!)
STRONG — сильное подчеркивание
STYLE — таблицы стилей (Нет в HTML 2.0!)
SUB — подстрочный знак (Нет в HTML 2.0!)
SUP — надстрочный знак (Нет в HTML 2.0!)
TABLE — таблицы (Нет в HTML 2.0!)
TD — табличные данные (ячейка) (Нет в HTML 2.0!)
TEXTAREA — многострочное поле текстового ввода в форме
TH — табличный заголовок (ячейка) (Нет в HTML 2.0!)
TITLE — «внешний» заголовок (титул)
TR — табличная строка (Нет в HTML 2.0!)
TT — телетайпный (одноразмерный) текст
U — подчеркивание (Нет в HTML 2.0!)
UL — неупорядоченные (ненумерованные) списки
VAR — переменные

Илон Маск рекомендует:  Asp установка локального идентификатора

Бесплатно скачать электронную книгу в удобном формате, смотреть и читать:
Скачать книгу Изучение HTML 3.2 на примерах. — fileskachat.com, быстрое и бесплатное скачивание.

Скачать zip
Ниже можно купить эту книгу по лучшей цене со скидкой с доставкой по всей России. Купить эту книгу

Шаблон домашней страницы Web-сервера и параметры Java-апплета

Шаблон домашней страницы Web-сервера представлен файлом index.htm, который хранится в каталоге установки ПО Интеллект в папке …\Modules\webroot, например: C:\Program Files\Интеллект\Modules\webroot.

Шаблон домашней страницы содержит параметры страницы и параметры Java-апплета, посредством которого осуществляется отображение Окон видеонаблюдения.

Изменяя значения параметров Java-апплета в html-коде домашней страницы, имеется возможность указать настройки шлюзования видеосигналов и команд (для случая использования стороннего HTTP-сервера), изменить набор интерфейсных компонентов Монитора видеонаблюдения Web-сервера, включить функцию отображения текущих размера кадра и частоты кадров видеосигнала для оценки трафика.

Описание каждого параметра апплета начинается с новой строки с последовательности символов

В общем виде данная строка выглядит следующим образом:

Описание параметров Java-апплета приведено в таблице:

Название параметра

Возможные значения

Значение по умолчанию

Описание

Версия html файла (должна совпадать с версией клиента).

Параметры шлюзования видеосигналов и команд

Задает номер порта, с которого апплет получает видеопоток и куда посылает команды.

Данный параметр активен, если значение параметра port.from равно html.

(по умолчанию соответствую­щая строка в файле index.htm отсутствует)

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

html – по значению, указанному в параметре Port файла index.html;

url — из URL, по которому пользователь обращается к странице index.html.

(по умолчанию соответствую­щая строка в файле index.htm отсутствует)

Указывает, откуда апплет должен брать путь к странице index.html:

html — из URL, указанного в index.html;

url — из URL, по которому пользователь обращается к странице index.html.

(по умолчанию соответствую­щая строка в файле index.htm отсутствует)

Задает путь к файлу index.html на HTTP-сервере при использовании стороннего HTTP-сервера.

Данный параметр активен, если значение параметра path.from равно html.

Параметры отображения элементов пользовательского интерфейса

Определяет, отображается (true) или нет (false) на Мониторе видеонаблюдения панель изменения раскладки окон видеонаблюдения.

Определяет, отображается (true) или нет (false) на Мониторе видеонаблюдения панель инструментов.

Определяет раскладку окон видеонаблюдения по умолчанию отображаемую при загрузке домашней страницы модуля Web-сервер.

Идентификационный номер видеокамеры в программе Интеллект, окно видеонаблюдения которой выводится при загрузке домашней страницы модуля Web-сервер. Данный параметр действителен только в случае, если параметр layout.default равен 0.

Обозначение текстовых элементов интерфейса *

Присваивае­мое элементам название

см. файл index.html

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

Параметры отображения данных для оценки трафика

(по умолчанию соответствую­щая строка в файле index.htm отсутствует)

Определяет, отображается (true) или нет (false) в окнах Монитора видеонаблюдения частоты кадров видеосигналов.

(по умолчанию соответствую­щая строка в файле index.htm отсутствует)

Определяет, отображается (true) или нет (false) в окнах Монитора видеонаблюдения разрешения кадров видеосигналов.

Передача xml в качестве параметра апплета после обновления JSF до 2.2

Во время работы с JSF 2.1 я передал XML-строку XML как параметр java applet. Когда я вызывал getParameter в Java Applet, функция возвращала всю строку документа. После обновления JSF до 2.2. getParameter возвращает только префикс документа .

Функция getXmlParam возвращает строку с неэкранированным, действительным документом xml:

Выделенный html при использовании JSF 2.1:

Выделенный html после обновления до JSF 2.2:

Как я вижу, проблема должна быть связана с изменением метода escape-котировки внутри строки, вставленной в html в JSF 2.2. Кто-нибудь знает, как передать XML-документ в качестве параметра апплета в JSF 2.2 элегантным способом (без ручного кодирования в bean-компоненте и декодировании в апплете)?

Параметры Развертывания апплета

Апплеты могут быть развернуты кодированием руки applet , object или embed теги с обязательными параметрами. Этот раздел описывает эти параметры. Однако, чтобы гарантировать перекрестную совместимость браузера, рекомендуется, чтобы Инструментарий Развертывания использовался, чтобы развернуть апплеты. Отошлите к Java Богатый Совет Развертывания Интернет-приложений для информации об использовании Инструментария Развертывания и развертывании апплетов, используя JNLP.

Следующие темы затрагиваются:

Развертывание используя JNLP

jnlp_href

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

Загрузка Экрана

Плагин Java предлагает лучшую настройку изображения, которое выводится на экран прежде, чем апплет загружается. Анимированные GIFs теперь поддерживаются как цель image параметр, как описано в Специальных Атрибутах. Дополнительно, следующие параметры поддерживаются:

boxborder

Загружается булев параметр, указывающий, должна ли граница с одним пикселем быть оттянута вокруг края области апплета, выводя на экран изображение, показанное перед апплетом. Значения по умолчанию к true . Мы рекомендуем установить это значение в false , в особенности при использовании анимированного ДЖИФА как загружающееся изображение, чтобы избежать возможности мерцания.

centerimage

Булев параметр, указывающий, должно ли загружающееся изображение центрироваться в пределах области апплета вместо того, чтобы произойти в левом верхнем углу. Значения по умолчанию к false .

Пример используя boxborder и centerimage параметры:

Параметры командной строки

java_arguments

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

  1. Определение большего чем значение по умолчанию максимального размера «кучи»:
  2. Определение размера «кучи» не по умолчанию и Java 2-D опция аппаратного ускорения, обычно используемая для апплетов, используя OpenGL через Привязку Java для API OpenGL (JOGL) :
  3. Включение многословному выводу сборщика «мусора», и средству утверждения в языке программирования Java:

Ряд «безопасных» параметров командной строки JVM и системных свойств определяется в разделе Синтаксиса Файла JNLP Сети Java, Запускают Руководство Разработчиков. В Плагине Java, пока все параметры командной строки JVM, определенные через java_arguments параметр безопасен, тогда апплет, или любые классы, которые это загружает, может быть без знака.

Небезопасные параметры командной строки JVM (другими словами, те не в безопасном списке) могут также быть определены через java_arguments параметр. В этом случае есть потенциал для угрозы безопасности, таким образом, Плагин Java осуществляет правило, что никакие классы без знака не могут быть загружены. Другими словами только доверяемый код, для которого пользователь принял диалоговое окно безопасности, может быть загружен таким экземпляром JVM. Если попытка предпринимается, чтобы загрузить или недоверяемый class без знака в экземпляре JVM, для которого небезопасные системные свойства были определены, a ClassNotFoundException будет брошен, указывая, что данный class не мог быть загружен, потому что он не был подписан.

Есть относительно немного ограничений на то, какие параметры командной строки можно передать через java_arguments параметр. Вообще, -Xbootclasspath параметр запрещается, так же как любой параметр командной строки, используемый, чтобы определить путь, такой как -classpath или -jar . Все другие параметры командной строки, настоящее и будущее, должны поддерживаться с протестом о безопасных и небезопасных параметрах командной строки, описанных выше.

Параметры командной строки, которые передают через java_arguments параметр добавляется к любому определенному через диалоговое окно Настроек Времени выполнения Апплета Java в Панели управления Java. Параметры командной строки от панели управления используются для всех экземпляров JVM версии, для которой они определяются; java_arguments параметры не полностью заменяют их. (Диалоговое окно Настроек Времени выполнения Апплета Java было также улучшено в 6u10, чтобы лучше управлять многократными версиями JRE, и теперь имеет те же самые возможности, как диалоговое окно Настроек Времени выполнения Апплета Java, используемое для Сети Java, Запускается.)

Когда параметры командной строки JVM определяются, вероятно, что Плагин Java должен будет запустить другой экземпляр JVM, чтобы удовлетворить их. Другими словами маловероятно, что существующий ранее экземпляр JVM будет запущен с корректного набора параметров командной строки, чтобы удовлетворить запрос. Правила для точно, когда новый экземпляр JVM запускается, чтобы запустить данный апплет, сознательно оставляют неуказанными и, возможно, должны измениться в последующих выпусках. Вот грубый набор направляющих линий для совместного использования и создания новых экземпляров JVM:

  • Если параметры командной строки, используемые, чтобы запустить существующий ранее экземпляр JVM, будут надмножеством требуемых параметров, то существующий ранее экземпляр JVM будет использоваться.
  • Если экземпляр JVM запускается для набора «значения по умолчанию» параметров командной строки (то есть, определенные в Панели управления Java, без java_arguments определенный), тогда этот экземпляр JVM никогда не будет использоваться, чтобы запустить любой апплет, у которого есть даже один параметр командной строки, определенный через java_arguments .
  • -Xmx обрабатывается особенно: если существующий ранее экземпляр JVM был запущен с например -Xmx256m через java_arguments , и новый апплет запрашивает -Xmx128m , тогда новый апплет будет очень вероятно выполнен в существующем ранее экземпляре JVM. Другими словами, -Xmx спецификации являются соответствующими с большим чем или равным тестом.

Нет никакого способа «назвать» экземпляр JVM используемым, чтобы запустить определенный апплет и «вызвать» последующие апплеты в тот экземпляр JVM.

См. раздел по separate_jvm параметр, чтобы изолировать определенный апплет в его собственном экземпляре JVM, отделитесь от всех других апплетов.

separate_jvm

Булев параметр, определяющий, что определенный апплет должен работать в его собственном экземпляре JVM. Это поддерживает определенные мощные настольные апплеты, которые не могут терпеть интерференцию от других апплетов, работающих в той же самой JVM и потенциально использующих пространство «кучи» или другие ресурсы.

Выбор Версии JRE

java_version

Определяет версию JRE, на которую можно запустить определенный апплет.

  1. Определение определенной версии JRE для определенного апплета:
  2. Запрос любого JRE в определенном семействе для определенного апплета:
  3. Определение JRE от определенного семейства или любого более позднего семейства:

classid Атрибут в Internet Explorer

Браузер Internet Explorer использует classid атрибут

Отметьте, что в текущее время Oracle не обеспечивает новый CLSID, чтобы описать Плагин Java, но вместо этого перегружает использование динамического classid. Это означает, что, если предыдущая версия JRE уже устанавливается, у которого нет многократной поддержки версии JRE в Плагине Java, Плагин Java не будет автоматически загружен и установлен, так как обработчик, для которого classid уже доступен. Результат будет состоять в том что выбор версии через java_version параметр будет проигнорирован. Решение не обеспечить новый classid можно повторно посетить в будущем. В настоящее время Oracle ожидает, что сложные разработчики, требующие многократного выбора версии JRE и автоматической загрузки Плагина Java, или задокументируют это, их пользователи должны установить и сконфигурировать Плагин Java, чтобы должным образом выполнить их контент, или будут иметь административный контроль над клиентскими компьютерами, как распространено во многих предприятиях.

Обратная совместимость

Чтобы ослабить переход для разработчиков, уже использующих атрибут classid, два механизма обратной совместимости были представлены: возможность использовать classid, чтобы выбрать или определенную версию JRE, или произвольный JRE в данном семействе. В обоих случаях ожидание состоит в том, что и Плагин Java, и целевая версия JRE для апплета, уже устанавливаются и конфигурируются. В соединении с этими механизмами обратной совместимости не поддерживается автозагрузка любого JRE, или тот, предоставляющий Плагин Java или тот, который будет использоваться, чтобы выполнить апплет.

Отметьте, что эти механизмы обратной совместимости могут быть удалены в будущем выпуске. Oracle рекомендует перейти существующий контент к новым механизмам, описанным ранее.

Выбор определенной версии (1.5.0_11) JRE для отдельного апплета:

Выбор последнего JRE от определенного семейства (1.5), использующего семейство CLSID:

Отметьте что попытки загрузить более старые версии JRE использование codebase параметр будет проигнорирован, потому что эти classids регистрируются на системе, чтобы указать на более свежие версии DLL во время процесса установки Плагина Java. Отметьте также что использование java_version параметр в соединении с этими classids не поддерживается. Определение обоих java_version параметр так же как или помехи или семейство classid приведет к неопределенному поведению.

version и jpi-version атрибуты в Mozilla Browser Family

Использование семейства браузера Mozilla MIME вводит тег, чтобы указать, как контент того тега должен быть выведен на экран. тег также поддерживает автоматическую загрузку определенной версии JRE.

Предыдущие версии Плагина Java, используемого version и jpi-version части application/x-java-applet Тип MIME, чтобы выполнить выбор версии JRE. Не все эти механизмы, описанные в более ранней документации, работают в соединении с Плагином Java, чтобы и выбрать, и потенциально автоматически загрузить и установить, определенная версия JRE. Этот раздел описывает, какие работы в соединении с Плагином Java, и что механизмы обратной совместимости на месте.

Рекомендуемое Использование

Рекомендуемое использование тег не должен определить никого version или jpi-version в типе MIME апплета. Вместо этого используйте java_version параметр, чтобы выбрать определенную версию JRE, на которую можно выполнить апплет. Если никакая предыдущая версия Java не устанавливается, автозагрузка Плагина Java может быть включена, используя pluginspage параметр:

Отметьте, что в текущее время Oracle не обеспечивает новый тип MIME, чтобы описать Плагин Java, но вместо этого перегружает использование application/x-java-applet Тип MIME. Это означает, что, если предыдущая версия JRE уже устанавливается, у которого нет многократной поддержки версии JRE в Плагине Java, Плагин Java не будет автоматически загружен и установлен, так как плагин, поддерживающий тот тип MIME, уже доступен. Результат будет состоять в том что выбор версии через java_version параметр будет проигнорирован. Решение не обеспечить новый тип MIME можно повторно посетить в будущем. В настоящее время Oracle ожидает, что сложные разработчики, требующие многократного выбора версии JRE и автоматической загрузки Плагина Java, или задокументируют это, их пользователи должны установить и сконфигурировать Плагин Java, чтобы должным образом выполнить их контент, или будут иметь административный контроль над клиентом s, как распространено во многих предприятиях.

Обратная совместимость

Ослабить переход для разработчиков, уже использующих version и jpi-version части типа MIME, ограниченный уровень обратной совместимости поддерживается в Плагине Java. Определенно, version атрибут поддерживается, чтобы запросить произвольный JRE в данном семействе или любом более позднем семействе. Используя jpi-version атрибут, чтобы выбрать определенную версию JRE больше не поддерживается. Его использованию строго обескураживают, так как это может разрушить корректную работу Плагина Java.

Отметьте, что этот механизм обратной совместимости может быть удален в будущем выпуске. Oracle рекомендует перейти существующий контент к механизмам, описанным ранее.

Использовать version атрибут, чтобы потребовать 1.5 JRE или более позднего:

Отметьте что семантика version атрибут подразумевает, что вышеупомянутый тег эквивалентен использованию java_version параметр со значением 1.5+ . Так как этот Плагин Java поставляется с Java SE 6 обновлений 10, который является более поздней версией чем 5.0, этот запрос версии по существу не имеет никакого эффекта.

Отметьте также то объединение version атрибут с java_version параметр не поддерживается. Определение обоих java_version параметр так же как a version атрибут приведет к неопределенному поведению.

Кэширование Загрузчика класса

classloader_cache

Плагин Java обеспечивает способ выбрать из использования кэша загрузчика class на апплете основанием апплета.

Значение по умолчанию classloader_cache параметр true ; кэширование загрузчика class включается по умолчанию. Можно просмотреть, какие файлы, которые являются

Илон Маск рекомендует:  Стоимость технической поддержки. Мысли, высказывания которые мне кажутся интересными.

Кэш Java

Файлы, которые Вы используете в приложениях Java, хранятся в специальной папке для быстрого выполнения позже; эту папку также вызывают кэшем Java. Подпанель Temporary Internet Files в панели General в Панели управления Java позволяет Вам просмотреть, какие файлы хранятся в кэше Java и управляют, сколько дискового пространства это может привести в рабочее состояние в Вашем компьютере.

cache_archive

Атрибут cache_archive содержит список файлов, которые будут кэшироваться:

Как атрибут archive в теге applet, список файлов фляги в атрибуте cache_archive не содержит полный URL, но всегда загружается с codebase, определенного в embed/object тег.

Как браузеры передают апплеты параметры?

So as the title says, I want to know how the applet -> param tag works. For example, you can do:

И каким-то образом браузер вызывает JVM и загружает этот апплет. Затем он передает параметры апплету. Я хочу знать, как это дает апплеты параметры. Апплеты не имеют функции «setParameter».

Итак, как браузер передает «параметры» апплета? Я попытался создать AppletStub , который содержит HashMap и устанавливает апплет апплета апплета, и это работает отлично.

Я сомневаюсь, что браузеры это делают. Любые идеи о том, как передать параметр HTML в апплет?

13 Объекты, изображения и апплеты

13.1 Введение в объекты, изображения и апплеты

Функции мультимедиа языка HTML позволяют авторам включать в свои страницы изображения, апплеты (программы, которые автоматически загружаются и выполняются на машине пользователя), видеоклипы и другие документы в формате HTML.

Например, чтобы включить в документ изображение в формате PNG, авторы могут использовать следующий код:

В предыдущих версиях HTML авторы могли включать изображения (с помощью IMG ) и апплеты (с помощью APPLET ). Эти элементы имеют несколько ограничений:

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

Для решения всех этих вопросов в HTML 4.0 вводится элемент OBJECT , обеспечивающий всестороннее решение для включения объектов. Элемент OBJECT позволяет авторам документов в формате HTML указывать всю информацию, необходимую для представления объекта агентом пользователя: исходный код, начальные значения и рабочие данные. В данной спецификации термин «объект» используется для описания всех объектов, которые Вы захотите включить в HTML-документы; другие термины: апплеты, подключаемые модули (plug-ins), дескрипторы устройств и т.д.

Новый элемент OBJECT , таким образом, subsumes некоторые задачи, выполняемые существующими элементами. Рассмотрим следующую классификацию функций:

Тип включения Конкретный элемент Общий элемент
Изображение IMG OBJECT
Апплет APPLET (Нежелателен.) OBJECT
Другой документ HTML IFRAME OBJECT

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

Для включения изображений авторы могут использовать элемент OBJECT или элемент IMG .

Для включения апплетов авторам следует использовать элемент OBJECT , поскольку использование элемента APPLET нежелательно.

Для включения одного документа HTML в другой авторы могут использовать новый элемент IFRAME или элемент OBJECT . В обоих случаях внедренный документ не зависит от основного документа. Визуальные агенты пользователей могут представлять внедренный документ в виде отдельного окна в основном документе. Для сравнения элементов OBJECT и IFRAME обратитесь к замечаниям о внедряемых документов.

С изображениями и другими включаемыми объектами могут быть связаны ссылки, с помощью стандартных механизмов ссылок, а также и с помощью навигационных карт (image maps). На навигационной карте задаются геометрические области включаемого объекта, и каждой из них назначается ссылка. При активизации эти ссылки могут вызывать загрузку документа, запускать программу на сервере и т.д.

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

13.2 Включение изображения: элемент IMG

Начальный тег: обязателен, Конечный тег: запрещен

Определения атрибутов src = uri [CT] Этот атрибут задает местоположение изображения. Примерами широко распознаваемых форматов являются GIF, JPEG и PNG. longdesc = uri [CT] Этот атрибут определяет ссылку на длинное описание изображения. Это описание должно дополнять краткое описание, задаваемое атрибутом alt . Если с изображением связана навигационная карта, в этом атрибуте должна приводиться информация о ее содержимом. Это особенно важно для серверных навигационных карт.

Элемент IMG внедряет изображение в текущий документ по адресу из определения элемента. Элемент IMG не имеет содержимого; обычно он замещается изображением, назначаемым атрибутом src , исключение при этом составляют выровненные влево или вправо изображения, которые «floated» out of line.

В приведенном ранее примере мы определили ссылку на семейную фотографию. Здесь мы вставим фотографию непосредственно в текущий документ:

Атрибут alt задает альтернативный текст, который генерируется, если изображение невозможно отобразить (информацию о том, как указать альтернативный текст, см. ниже ). Агенты пользователей должны генерировать альтернативный текст, если они не поддерживают изображение, если они не поддерживают определенный тип изображений или если они сконфигурированы так, чтобы не выводить изображений.

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

Начальный тег: обязателен, Конечный тег: обязателен

Определения атрибутов classid = uri [CT] Этот атрибут может использоваться для указания местоположения объекта с помощью URI. Он может использоваться вместе с атрибутом data или как альтернатива ему, в зависимости от типа объекта. codebase = uri [CT] Этот атрибут определяет базовый путь, используемый для разрешения относительных адресов URI, задаваемых в атрибутах classid , data и archive . Если этот атрибут отсутствует, значением по умолчанию является базовый адрес URI текущего документа. codetype = content-type [CI] Этот атрибут определяет тип содержимого данных, получения которых следует ожидать при загрузке объекта, задаваемого атрибутом classid . Этот атрибут не является обязательным, но рекомендуется, если используется атрибут classid , поскольку он позволяет агенту пользователя избежать загрузки информации для типа содержимого, который он не поддерживает. Если этот атрибут отсутствует, по умолчанию используется значение атрибута type . data = uri [CT] Этот атрибут может использоваться для указания местоположения данных объекта, например, данных изображения для объектов, определяющих изображения, или в более общем случае — serialized формы объекта, который может использоваться для повторного его создания. Если дается относительный адрес URI, он должен интерпретироваться относительно атрибута codebase . type = content-type [CI] Этот атрибут определяет тип содержимого для данных, задаваемых атрибутом data . Этот атрибут не является обязательным, но рекомендуется, если используется атрибут data , поскольку он позволяет агенту пользователя избежать загрузки информации для типа содержимого, который они не поддерживают. archive = uri list [CT] Этот атрибут может использоваться для определения разделенного пробелами списка адресов URI архивов, содержащих относящиеся к объекту ресурсы, который может включать ресурсы, задаваемые атрибутами classid и data . Предварительная загрузка архивов приведет к уменьшению времени загрузки объекта. Архивы, указанные в виде относительных адресов URI, должны интерпретироваться относительно атрибута codebase . declare [CI] Если этот логический атрибут указан, он делает текущее определение OBJECT только объявлением. Объект должен быть instantiated последующим определением OBJECT , ссылающимся на это объявление. standby = text [CS] Этот атрибут определяет сообщение, которое агент пользователя может генерировать при загрузке implementation и данных объекта.

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

В более общем случае автор должен будет определить три типа информации:

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

Элемент OBJECT позволяет авторам указать все три типа данных объекта, но авторы не обязательно должны указывать их все. Например, некоторым объектам не требуются данные (например, апплет, выполняющий анимацию). Другим может быть не нужна инициализация. Другим же может не понадобиться дополнительная информация о реализации, то есть сам агент пользователя может уже знать, как генерировать этот тип данных (например, изображения в формате GIF).

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

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

Информацию об элементе OBJECT в формах см. в разделе об управлении формами.

Агент пользователя должен интерпретировать элемент OBJECT в соответствии со следующими правилами старшинства:

  1. Сначала агент пользователя должен попытаться сгенерировать объект. Он не должен генерировать содержимое элемента, но должен проверить его на случай, если элемент содержит дополнительные дочерние элементы PARAM (см. инициализация объекта) или элементы MAP (см. клиентские навигационные карты).
  2. Если агент пользователя по какой-либо причине не может сгенерировать объект (не сконфигурирован для этого, недостаточно ресурсов, ошибочная архитектура и т.д.), он должен попытаться сгенерировать его содержимое.

Авторам не следует включать содержимое в элементы OBJECT , расположенные в элементе HEAD .

В следующем примере мы вставляем в документ апплет, представляющий часы, с помощью элемента OBJECT . Апплету, написанный на языке Python, не нужны дополнительные и рабочие значения. Атрибут classid определяет местоположение апплета:

Обратите внимание на то, что часы будут генерироваться, как только агент пользователя интерпретирует это объявление OBJECT . Можно отложить генерацию объекта, начав с объявления объекта (описывается ниже).

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

Одним важным последствием создания элемента OBJECT является то, что он предлагает механизм задания альтернативной генерации объектов; в каждом внедренном объявлении OBJECT могут задаваться альтернативные типы содержимого. Если агент пользователя не может сгенерировать outermost OBJECT , он пытается сгенерировать содержимое, которое может юыть другим элементом OBJECT и т.д.

В следующем примере мы внедряем несколько объявлений OBJECT для того, чтобы показать работу альтернативной генерации. Агент пользователя попытается сгенерировать первый элемент OBJECT , который он может, в следующем порядке: (1) апплет Earth, написанный на языке Python, (2) клип Земли в формате MPEG, (3) изображение Земли в формате GIF, (4) альтернативный текст.

Внешнее объявление определяет апплет, которому не нужны данные или начальные значения. Второе объявление определяет клип в формате MPEG и, поскольку местоположение обработчика формата MPEG не указано, предполагается, что клип будет обрабатываться агентом пользователя. Мы также установили атрибут type , так что агент пользователя, который знает, что он не может сгенерировать клип в формате MPEG, не будет загружать файл «TheEarth.mpeg» из сети. В третьем объявлении задается местоположение файла в формате GIF и определяется альтернативный текст на случай, если все прочие механизмы не сработают.

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

Ниже приводится пример, показывающий, как встроенные данные могут be fed to an OBJECT :

Информацию о размере, выравнивании и границах объекта см. в разделе визуальное представление объектов, изображений и апплетов.

13.3.2 Инициализация объекта: элемент PARAM

Начальный тег: обязателен, Конечный тег: запрещен

Определения атрибутовname = cdata Этот атрибут определяет имя рабочего параметра, которое должно быть понятно вставляемому объекту. Учитывает ли имя свойства регистр, зависит от конкретной реализации объекта. value = cdata Этот атрибут определяет значение рабочего параметра, задаваемого атрибутом name . Значения свойств не имеют значения в HTML; их значение определяется объектом. valuetype = data|ref|object [CI] Этот атрибут определяет тип атрибута value . Возможные значения:

  • data: Это значение используется по умолчанию. Оно означает, что значение, задаваемое атрибутом value , будет определяться и передаваться в объект в виде строки.
  • ref: Значение, задаваемое атрибутом value , является адресом URI ресурса, где хранятся рабочие значения. Это позволяет средствам поддержки идентифицировать адреса URI, данные в качестве параметров. Адрес URI должен передаваться в объект как есть, то есть неразрешенным.
  • object: Значение, задаваемое атрибутом value , является идентификатором, ссылающимся на объявление OBJECT в этом же документе. Идентификатором должно быть значение атрибута id для объявленного элемента OBJECT .

type = content-type[CI] Этот атрибут задает тип содержимого ресурса, назначаемого атрибутом value только в случае, если значением атрибута valuetype является «ref». Таким образом, этот атрибут определяет для агента пользователя тип значений, которые будут находиться по адресу URI, назначенному атрибутом value .

Элементы PARAM определяют набор значений, которые могут понадобиться объекту во время работы. В элементах OBJECT или APPLET может присутствовать любое число атрибутов PARAM в любом порядке, но они должны помещаться в начале тела включающего элемента OBJECT или APPLET .

Синтаксис имен и значений считается понятным обработчику объекта. Данный документ не указывает, как агенты пользователей должны загружать пары имя/значение, а также того, как они должны интерпретировать повторяющиеся имена параметров.

Вернемся к примеру с часами и покажем использование элемента PARAM : предположим, что апплет может принимать два рабочих параметра, определяющих его начальную высоту и ширину. Мы можем установить исходные размеры 40×40 пикселов с помощью двух элементов PARAM .

В следующем примере рабочие данные для параметра «Init_values» объекта задаются в виде внешнего ресурса (файл GIF). Таким образом для атрибута valuetype устанавливается значение «ref», а атрибутом value является адрес URI ресурса.

Обратите внимание, что мы также установили атрибут standby , так что агент пользователя может отобразить сообщение во время загрузки генерирующего механизма.

Когда элемент OBJECT сгенерирован, агенты пользователя должны выполнить поиск содержимого только для тех элементов PARAM , которые являются их прямыми дочерними элементами и «feed» их to the OBJECT .

Таким образом, в следующем примере, если сгенерирован «obj1», «param1» применяется к «obj1» (и не применяется к «obj2»). Если «obj1» не сгенерирован, а «obj2» сгенерирован, «param1» игнорируется, а «param2» применяется к «obj2». Если ни один OBJECT не сгенерирован, ни один PARAM не применяется.

13.3.3 Глобальные схемы именования объектов

Местоположение обработчика объекта задается адресом URI. Как было сказано во введении в URI, первый сегмент абсолютного адреса URI задает схему именования, используемую для передачи данных, назначаемых адресом URI. Для документов в формате HTML этой схемой часто является «http». Некоторые апплеты могут использовать внешние схемы именования. Например, при указании апплета Java авторы могут использовать адреса URI, начинающиеся с «java», я для аппелтов ActiveX авторы могут использовать «cls >

В следующем примере мы вставляем апплет на языке Java в документ в формате HTML.

Установив атрибут codetype , агент пользователя может определить, нужно ли загружать ли приложение Java, в зависимости от своих возможностей.

Некоторым схемам генерации для определения обработки необходима дополнительная информация, поэтому им необходимо указать, где находится эта информация. Авторы могут указать путь к обработчику объекта с помощью атрибута codebase .

Чтобы объявить объект так, чтобы он не обрабатывался агентом пользователя при чтении, установите логический атрибут declare элемента OBJECT . В то же время авторы должны идентифицировать объявление, установив уникальное значение для атрибута id в элементе OBJECT . Инициализация объекта позже будет ссылаться на этот идентификатор.

Объявленный OBJECT должен присутствовать в документе до первого экземпляра OBJECT .

Объект, определенный с атрибутом declare , инициализируется каждый раз, когда необходима генерация элемента, ссылающегося на этот объект (например, активизируется ссылка на него, активизируется объект, ссылающийся на него и т.д.).

В следующем примере мы объявляем OBJECT и вызываем его инициализацию, указав его в ссылке. Таким образом объект можно активизировать, щелкнув, например, на выделенном тексте.

Агенты пользователей, не поддерживающие атрибут declare , должны генерировать содержимое объявления OBJECT .

13.4 Включение апплета: элемент APPLET

Формальное определение см. в Transitional DTD.

Если апплет «deserialized», метод start() вызывается вместо метода init() . Атрибуты, допустимые при serialized исходного объекта, не восстанавливаются. Атрибуты, переданные в этот экземпляр APPLET , будут доступны апплету. Авторам следует очень осторожно использовать это свойство. Перед serialized вапплет должен быть остановлен.

Должен присутствовать один из атрибутов code или object . Если даны оба атрибута code и object , и в них указаны разные имена классов, это является ошибкой.

width = длина [CI] Этот атрибут определяет начальную ширину области отображения апплета (не включая окна и диалоги, создаваемые апплетом). height = длина [CI] Этот атрибут определяет начальную высоту области отображения апплета (не включая окна и диалоги, создаваемые апплетом).

Этот элемент, поддерживаемый всеми программами просмотра с поддержкой Java, позволяет дизайнерам внедрять апплеты Java в документы HTML. Он является нежелательным, и вместо него следует использовать элемент OBJECT .

Содержимое элемента APPLET служит альтернативной информацией для агентов пользователей, не поддерживающих этот элемент или не сконфигурированных для поддержки апплетов. В противном случае агенты пользователей должны игнорировать содержимое.

ПРИМЕР НЕЖЕЛАТЕЛЬНОГО ИСПОЛЬЗОВАНИЯ:
В следующем примере элемент APPLET включает в документ апплет на языке Java. Поскольку атрибут codebase не установлен, предполагается, что апплет находится в том же каталоге, что и сам документ.

Этот пример можно переписать с использованием элемента OBJECT следующим образом:

Задать для апплета исходные значения можно с помощью элемента PARAM .

ПРИМЕР НЕЖЕЛАТЕЛЬНОГО ИСПОЛЬЗОВАНИЯ:
Следующий апплет на языке Java:

можно определить с использованием элемента OBJECT следующим образом:

13.5 Замечания о внедренных документах

Внедренный документ полностью независим от документа, в который он внедрен. Например, относительные адреса URI во внедренном документе разрешаются в соответствии с базовым адресом URI, указанным во внедренном документе, а не в основном документе. Внедренный документ только генерируется в другом документе (например, во вложенном окне); it во всех остальных отношениях он остается независимым.

Например, следующая строка внедряет содержимое файла embed_me.html в то место документа, в котором встречено определение OBJECT .

Вспомните, что содержимое элемента OBJECT должно генерироваться, только если файл, задаваемый атрибутом data , невозможно загрузить.

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

13.6 Навигационные карты

Навигационная карта создается путем назначения объекта с указанием соответствующих геометрических областей.

Имеется два типа навигационных карт:

  • Когда пользователь активизирует область клиентской навигационной карты с помощью мыши, координаты точки интерпретируются агентом пользователя. Агент пользователя выбирает ссылку, указанную для активизированной области, и выполняет ее.
  • Когда пользователь активизирует область серверной навигационной карты с помощью мыши, координаты точки щелчка передаются агенту на сервере, определенному с помощью атрибута href элемента A . Агент на сервере интерпретирует координаты и выполняет соответствующие действия.

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

13.6.1 Клиентские навигационные карты: элементы MAP и AREA

Начальный тег: обязателен, Конечный тег: обязателен

Начальный тег: обязателен, Конечный тег: запрещен

Определения атрибутов элемента MAP name = cdata [CI] Этот атрибут назначает имя навигационной карты, определяемой элементом MAP .

Определения атрибутов элемента AREAshape = default|rect|circle|poly [CI] Этот атрибут определяет форму области. Возможные значения:

  • default: Задает всю область.
  • rect: Определяет прямоугольную область.
  • circle: Определяет круглую область.
  • poly: Определяет многоугольную область.

coords = координаты[CN] Этот атрибут определяет положение формы на экране. Число и порядок значений зависят от определенной формы. Возможные комбинации:

  • rect: x левой границы, y верхней границы, x правой границы, y нижней границы.
  • circle: x центра, y центра, радиус. Примечание. Если радиус указан в процентах, агенты пользователя должны вычислять окончательное значение радиуса в зависимости от назначенных объекту ширины и высоты. Радиус должен быть наименьшим из этих двух значений.
  • poly: x1, y1, x2, y2, . xN, yN.

Координаты задаются относительно верхнего левого угла объекта. Все значения являются длинами. Все значения отделяются друг от друга запятыми. nohref [CI] Если этот логический атрибут установлен, он указывает, что с этой областью ссылка не связана.

Атрибут для установления связи навигационной карты с элементом usemap = uri [CT] Этот атрибут связывает навигационную карту с элементом. Навигационная карта определяется с помощью элемента MAP . Значение атрибута usemap должно совпадать со значением атрибута name связанного элемента MAP .

Элемент MAP определяет клиентскую навигационную карту, которая может быть связана с одним или несколькими элементами ( IMG , OBJECT или INPUT ). Навигационная карта связывается с элементом с помощью атрибута usemap этого элемента.

Наличие атрибута usemap в элементе OBJECT подразумевает, что объект включается в виде изображения. Более того , если с элементом OBJECT связана клиентская навигационная карта, агенты пользователей могут интерпретировать взаимодействие пользователя с элементом OBJECT исключительно в терминах клиентской навигационной карты. Это позволяет агентам пользователей (например, звуковым браузерам или роботам) взаимодействовать с элементом OBJECT , не обрабатывая его; агент пользователя может даже не загружать (или не обрабатывать) объект. Если с элементом OBJECT связана навигационная карта, авторы не могут быть уверены, что этот объект будет загружаться и обрабатываться всеми агентами пользователей.

Каждый элемент MAP может содержать следующее:

  1. Один или несколько элементов AREA . Эти элементы не имеют содержимого, но определяют геометрические области навигационной карты и ссылки, связанные с каждой областью. Обратите внимание, что при использовании этого метода элемент MAP не имеет генерируемого содержимого. Таким образом, авторы должны изменять текст для каждого элемента AREA с помощью атрибута alt (см. далее информацию о том, как указать альтернативный текст).
  2. Содержимое уровня блока. Сюда должны включаться элементы A , определяющие геометрические области навигационной карты, и ссылки, связанные с каждой областью. Обратите внимание, что при использовании этого метода содержимое элемента MAP может генерироваться агентом пользователя. Для создания более доступных документов авторам следует использовать этот способ.

Если несколько определенных регионов перекрываются, приоритет имеет элемент, указанный в документе первым (т.е. на ввод пользователя отвечает именно этот элемент).

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

Примечание. Элемент MAP не совместим с агентами пользователей для языка HTML версии 2.0.

Примеры клиентских навигационных карт

В следующем примере мы создаем клиентскую навигационную карту для элемента OBJECT . Сы не хотим генерировать содержимое карты при генерации элемента OBJECT , поэтому мы «скроем» элемент MAP в содержимом элемента OBJECT . Затем содержимое элемента MAP будет генерироваться, только если нельзя сегенировать содержимое элемента OBJECT .

Если агент пользователя не поддерживает формат PNG, он пытается сгенерировать изображение в формате GIF. Если он не поддерживает GIF (например, это речевой агент пользователя), он воспроизводит текстовое описание, указанное в содержимсом внутреннего элемента OBJECT . Если элементы OBJECT вложены таким образом, авторы могут обеспечивать совместное использование этими элементами навигационных карт:

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

Точно так же атрибут nohref элемента AREA объявляет, что с геометрической областью не связана ссылка.

13.6.2 Серверные навигационные карты

Серверные навигационные карты представляют интерес в случаях, когда карта слишком сложна.

Определить серверную навигационную карту можно только для элементов IMG и INPUT . В случае элемента IMG этот элемент должен быть включен в элемент A . В случае элемента INPUT он должен иметь тип «image». В обоих случаях для элемента должен быть установлен логический атрибут ismap [CI].

Когда пользователь активизирует ссылку, щелкнув на изображении, экранные координаты отправляются непосредственно на сервер, на котором располагается документ. Экранные координаты выражаются в виде пикселов относительно изображения. Нормативную информацию об определении пикселов и об их масштабировании см. в [CSS1].

В следующем примере активная область определяет серверную ссылку. Таким образом щелчок в любой точке изображения вызовет передачу координат на сервер.

Координаты области, в которой произошел щелчок, передаются на сервер следующим образом. Агент пользователя получает новый адрес URI из адреса URI, указанного в атрибуте href элемента A , добавляя `?’, за которым следуют координаты x и y, разделенные запятой. Затем происходит переход по ссылке с использованием нового адреса URI. Например, в данном примере, если пользователь щелкает в точке с координатами x=10, y=27, то новый адрес URI — «http://www.acme.com/cgi-bin/competition?10,27».

Агенты пользователей, не предлагающие пользователям средств выбора определенных координат (например, неграфические агенты пользователей, зависящие от ввода с клавиатуры, речевые агенты пользователей и т.д.) должны при активизации ссылки передавать на сервер координаты «0,0».

13.7 Визуальное представление изображений, объектов и апплетов

Определения атрибутов width = длина [CN] Переопределение ширины изображения и объекта. height = длина [CN] Переопределение для изображения и объекта.

Если указаны атрибуты width и height , они сообщают агентам пользователя о необходимости переопределения исходного размера изображения или объекта этими значениями.

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

Атрибуты height и width дают агентам пользователей представление о размере изображения или объекта, чтобы они могли зарезервировать соответствующее пространство и продолжать генерацию документа, ожидая данных об изображении.

Атрибуты vspace и hspace определяют свободное пространство слева и справа (hspace) и над и под (vspace) IMG , APPLET , OBJECT . По умолчанию значение этого атрибута не определено, но обычно это небольшое ненулевое значение. Оба атрибута имеют значение типа длина.

Изображение или объект может окружать граница (например, если она указана пользователем или изображение имеет содержимое элемента A ).

Определения атрибутов border = пикселы Нежелателен. Атрибут border определяет ширину границы в пикселах. Значение этого атрибута, используемое по умолчанию, зависит от агента пользователя.

13.7.4 Выравнивание

Атрибут align определяет положение IMG , OBJECT или APPLET относительно его содержимого.

Следующие значения атрибута align относятся к положению объекта относительно окружающего текста:

  • bottom: означает, что окно объекта должно быть вертикально выровнено относительно текущей базовой линии. Это значение используется по умолчанию.
  • middle: означает, что центр объекта должен быть выровнен вертикально относительно текущей базовой линии.
  • top: означает, что верх объекта должен быть вертикально выровнен относительно верха текущей текстовой строки.

Два других значения, left и right , приводят к перемещению изображения к текущему левому или правому полю. Они обсуждаются в разделе о плавающих объектах.

Различие интерпретаций атрибута align. Агенты пользователей по-разному интерпретируют атрибут align . Некоторые принимают в расчет только текстовую строку, находящуюся перед элементом, некоторые учитывают текст по обеим сторонам элемента.

13.8 Как указать альтернативный текст

Определения атрибутов alt = текст [CS] Для агентов пользователей, не имеющих возможности вывести изображения, формы или апплеты, этот атрибут определяет альтернативный текст. Язык альтернативного текста определяется атрибутом lang .

Для некоторых нетекстовых элементов ( IMG , AREA , APPLET и INPUT ) авторы должны указывать альтернативный текст, служащий содержимым, если элемент нельзя нормально сгенерировать. Задание альтернативного текста помогает пользователям, не имеющих графических дисплеев, пользователям, браузеры которых не поддерживают формы, visually impaired users, пользователям синтезаторов речи, пользователям, графический агент которых сконфигурирован так, чтобы не выводить изображения и т.д.

Атрибут alt должен быть указан для элементов IMG и AREA . Он не является обязательным для элементов INPUT и APPLET .

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

  • Не указывайте несоответствующий альтернативный текст, включая изображения, предназначенные для форматирования страницы, например, alt=»red ball» не соответствует изображению, определяющему красный круг для отметки заголовка абзаца. В этих случаях в качестве альтернативного текста следует указать пустую строку («»). Авторам в любом случае рекомендуется не использовать изображения для форматирования страниц; вместо этого следует использовать таблицы стилей.
  • Не указывайте бессмысленный альтернативный текст (например, «dummy text»). Он не только будет frustrate пользователей, но также будет замедлять агенты пользователей, преобразующие текст в речь или текст Бройля.

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

Примечание. Подробнее о создании доступных документов HTML см. [WAIGUIDE].

Как скрыть параметры апплета, встроенного на страницу

абстрактные рассуждения:
апплет выполняется Java Virtual Machine на компьютере клиента.

JVM осуществляет запуск (выполнение) загруженного апплета с параметрами.

исходя из этого параметры должны присутсвовать в явном виде в HTML-коде.

Дмитрий Горяинов /Gorynych/:
> два из них мне нужно скрыть от посетителей (там прописаны ID и Password).
не рулез
может хитро явоскриптом генерить хтмл? или передавать данные яваскриптом?

stocknavigator@narod.ru:
если аплету нужны закрытые данные, наверняка в нем есть способ их скрытно получить .
описание к аплету есть?

Дмитрий Горяинов /Gorynych: параметры должны присутсвовать в явном виде в HTML -коде.

Согласен, но, если:
1 страница загружена,
2 погружается инфо с id psw,
3 формируется код апплета и вставляется в страницу.
(в этом случае доступны id psw для просмотра пользователем?)

или:
1 создать java-контейнер для апплета,
2 контейнер принимает обычные параметры,
добавляет постоянные id psw (они не меняются) и все передает апплету.
(в этом случае доступны id psw для просмотра пользователем?)

Kukoyasnei Ruslan: если аплету нужны закрытые данные, наверняка в нем есть способ их скрытно получить .
описание к аплету есть?

Описания на эту часть нет.

Сергей Сирик: А чего апплет-то делает?

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

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

По хорошему Ваш сервер должен использоваться как сервер-авторизатор. Клиент после загрузки апплета получает с Вашего сервера некий разовый ИД и ИД/ИП сервера. После этого апплет коннекттся к серверу графиков и просит авторизовать этот самый разовый ключ. Сервер графиков обращается к Вашему севреру и прверяет валидность этого самого ключа. Ну и в зависисмости от ответа сервер графиков открывает сессию передачи реальных данных или перенаправляет запрос на какой-нить ххх.com :)

Да, так должно быть.

Сергей Сирик: Сервер графиков обращается к Вашему севреру и прверяет валидность этого самого ключа

эта возможность не предусмотрена.
Получается, скрыть ИД нельзя?

1 страница загружена,
2 погружается инфо с id psw,
3 формируется код апплета и вставляется в страницу.
(в этом случае доступны id psw для просмотра пользователем?)

угу, доступны, как и при любой попытке сформировать динамический контент java-script’ом . в итоге ВСЕ равно формируется HTML -код отдаваемый клиенту-браузеру. Значит — может быть просмотрен :-)

или:
1 создать java-контейнер для апплета,
а вот это не ко мне.. это в конференцию по java :-)

ИМХО:
А в чем на само деле проблема? Вы используете «свой личный» логин и пароль к другому серверу а хочется показывать эти данные своим посетителям? Я угадал?

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

Честно говоря мне кажется единственным решением выполнить ваш апплет на сервере и передать результат его работы дальше, клиенту.

Но как это сделать лучше, наверное, узнавать в ява конференции.

Дмитрий Горяинов /Gorynych/: Вы используете «свой личный» логин и пароль к другому серверу а хочется показывать эти данные своим посетителям? Я угадал?

Не совсем, логин является «общественным»: другой сервер просит личный логин и показывает свою страницу с нужным апплетом и другую инфо. А у апплета есть еще свой логин — «общественный», т.к. он доступен.
Получено разрешение на использование апплета на личном сайте, но «общественный» логин делает затею бессмысленной.

Илон Маск рекомендует:  Поиск по ftp (настройка cnsearch)
Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL