Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
java1_2013_2014 / java7.pptx
Скачиваний:
134
Добавлен:
16.04.2015
Размер:
135.51 Кб
Скачать

JAVA-ТЕХНОЛОГИЯ

Сафонов Владимир Олегович

Профессор кафедры информатики, руководитель лаборатории Java- технологии (http://polyhimnie.math.spbu.ru/jtl)

Email: vosafonov@gmail.com

Лекция 7

Апплеты

Апплет (applet) – (клиентское) Java-приложение специального вида, связанное с HTML-страницей и исполняемое на клиентской машине в процессе интерпретации (rendering) этой HTML-страницы с помощью браузера

Инструменты для исполнения апплетов:

-браузеры: Netscape, Microsoft Internet Explorer, HotJava и др.

-appletviewer – утилита, входящая в состав JDK

Основная функция апплетов - анимация Web-страниц

Особенности организации апплетов:

-applet ~ puppet (“марионетка”, управляемая браузером)

-Реализуется по методологии программирования, управляемого событиями (event-driven programming)

-Не использует метод main (так как запускается и управляется браузером)

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

(C) В.О. Сафонов. 2013

Пример простейшего апплета

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

public class FirstApplet extends Applet {

public void paint(Graphics g)

{

g.drawString(”First applet”, 10, 10);

}

} // FirstApplet

(C) В.О. Сафонов. 2013

HTML-файл FirstApplet.html

<html>

<head>

<title> This is my first applet </title> </head>

<body>

<applet codebase=”.” code=FirstApplet.class width=200 height=200>

</applet>

</body>

</html>

(C) В.О. Сафонов. 2013

Пояснения к примеру FirstApplet

java.applet – базовый API (пакет) для работы с апплетами;

Applet – класс пакета java.applet

java.awt – Abstract Windowing Toolkit: базовый API (пакет) для организации GUI; класс Applet – потомок java.awt.Panel

Graphics – класс из пакета java.awt: набор операций двумерной растровой графики. Задает графический контекст апплета

paint – метод, с помощью которого апплет рисует

информацию о себе в своем графическом контексте (области экрана);

остальные базовые методы – init(), start(), stop(),

destroy()

(C) В.О. Сафонов.

2013 наследуются от класса Applet

Пояснения к HTML-файлу FirstApplet.html

title – заголовок, изображаемый в строке для заголовка при просмотре HTML-файла браузером

applet – специальный HTML-тег, введенный для обращения к Java-апплетам; содержит ссылку на код и параметры апплета

браузер, поддерживающий Java (Java enabled browser) – браузер, способный обрабатывать тег applet, либо с помощью встроенной JVM, либо с помощью Java Runtime Environment (JRE), входящей в JDK и подключаемой к браузеру через механизм “plug-in”

Запуск апплета (Solaris) :

netscape FirstApplet.html &

- с помощью браузера

appletviewer FirstApplet.html &

- утилитой appletviewer

(заголовок не отображается)

 

(C) В.О. Сафонов.

 

2013

 

Архитектура апплета

Определяется как потомок класса java.applet.Applet

потомка java.awt.Panel (графического объекта-

контейнера)

Основные методы апплета (исполняются

браузером) :

-public void init() – запускается в момент загрузки

HTML-страницы, содержащей тег applet (инициализация апплета)

-public void start() – запускается при первоначальной или повторной активизации HTML-

страницы (апплета)

-public void stop() – запускается при переходе HTML-

страницы в пассивное состояние для приостановки выполнения апплета

-public void destroy() – запускается при завершении

(C)В.Оапплета. Сафонов. для освобождения занимаемых им ресурсов

2013 - public void paint(Graphics g) – унаследован из

Общение апплета с внешней средой. Безопасность (security) – sandbox model

Написать вирус или сетевого червя в виде Java-апплета невозможно, ввиду ограничений sandbox model (“песочницы”), в которой исполняется апплет

Код апплета и другие его ресурсы (графические образы, звук и др.) размещаются на Web-сервере, предоставляющем набор HTML-страниц

При просмотре HTML-страницы браузером ресурсы апплета по http-протоколу (методом GET) считываются на клиентскую машину. Никаких других ресурсов, рабочих файлов и др. апплет иметь не может (например, ему запрещено читать или изменять локальные клиентские файлы или директории).

Ограничения security для апплета проверяются объектом класса SecurityManager, который в различных браузерах может быть реализован по-разному (с более сильными или более слабыми ограничениями безопасности)

Апплет может устанавливать сетевые соединения только со “своим” сервером:

String host = getCodeBase().getHost();

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

Апплет не может загружать библиотеки или определять native-методы

Апплет не имеет права читать ряд системных свойств. Разрешено, например:

String newline = System.getProperty("os.name");

но, например, свойство java.class.path апплет читать не может

Методы апплета, вызываемые браузером, параметров не имеют

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

Signed (trusted) applets – апплеты, подписываемые цифровой подписью, которая генерируется и верифицируется утилитой JDK jarsigner (подписывание jar-архива). Для них ограничений security нет, либо они ослаблены. В конечном счете, ограничения безопасности в Java 2 определяются конфигурируемой политикой безопасности и наличием цифровой подписи у кода апплета

(C)В.О. Сафонов.

2013

Структура тега applet и параметры апплета

codebase=URL - базовый URL-адрес директории, содержащей код апплета (по умолчанию URL текущего HTML-документа)

documentbase=URL – базовый URL-адрес директории, содержащей HTML-документ апплета

code=FileName.class - имя файла кода апплета по

адресу codebase

width=mmm height=nnn – размер области показа (графического контекста) апплета в пикселах (pixels)

Параметры апплета (только строковые) :

<applet … >

<param name=N value=V> … </applet>

(C) ВОбращение.О. С фонов. к параметру: getParameter(”N”) – выдает

2013

строку ”V”

Методы вывода информации апплетом

Обычный ввод-вывод не используется: вывод в System.out игнорируется; вывод в локальные файлы запрещен

Вывод выполняется в графический контекст апплета (Graphics g)

Вывод строки в графический контекст:

g.drawString(message, x, y)

Вывод текстового сообщения в строку статуса браузера (внизу) : showStatus(“This is the status of my applet”);

Двумерная графика в графическом контексте апплета:

-установка цвета фона и основного цвета:

setBackground(Color.yellow); setForeground(Color.red);

-fillRect(x1, y1, x2, y2); - заполнение прямоугольника,

ит.д. – см. документацию по java.awt.Graphics

Воспроизведение документа – методом showDocument интерфейса

AppletContext:

AppletContext ac = getAppletContext(); // браузер ac.showDocument (myURL);

(C) В.О. Сафонов. 2013

Соседние файлы в папке java1_2013_2014