Помощь в написании студенческих работ
Антистрессовый сервис

Аплеты

МетодичкаПомощь в написанииУзнать стоимостьмоей работы

Кроме методов init () и destroy () в классе Applet присутствуют еще два пустых метода, выполняющихся автоматически. Браузер должен обращаться к методу start () при каждом появлении аплета на экране и обращаться к методу stop (), когда аплет уходит с экрана. В методе stop () можно определить действия, приостанавливающие работу аплета, в методе start () — возобновляющие ее. Надо сразу же заметить… Читать ещё >

Аплеты (реферат, курсовая, диплом, контрольная)

Факультет «Информатика и системы управления»

Методические указания к лабораторной работе

по курсу «Распределенные системы обработки информации»

Аплеты

Москва 2004 г.

Цель работы

Задание для домашней подготовки

Задание к лабораторной работе

Содержание отчета

Контрольные вопросы.

Приложение. Аплеты.

Передача параметров

Параметры тега

Сведения об окружении аплета

Защита от аплета

Цель работы

1. Познакомиться с библиотекой java. applet и классом java.applet.Applet

2. Научится обрабатывать события в аплетах.

3. Освоить работу с управляющими компонентами и менеджерами размещения.

4. Применить полученные знания на практике

Задание для домашней подготовки

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

Задание к лабораторной работе

o На основе оконного приложения, созданного в лабораторной работе № 5 «Программирование графики и обработка событий», разработать аплет — калькулятор

Содержание отчета

Отчет должен содержать:

Постановку задачи, решаемой отлаженной программой.

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

Листинг программы с необходимыми комментариями.

Контрольные вопросы.

1. В случае, если программа — аплет состоит из нескольких классов и после компиляции сгенерировано несколько файлов *.class, как внутри контейнера html — файла это необходимо указать?

2. Сколько классов в пакете java. applet?

3. Как изменится работа программы, если внутри блока switch (){} не записывать операторы break.

4. Модифицируйте аплет так, чтобы коэффициент, на который умножается результат, был случайным числом (метод random () класса java.lang.Math)

5. Добавьте текстовым полям слушателей и обработчики событий ActionEvent (). Обработчики также должны вызывать метод вывода результата.

Официальные источники:

1. Кен Арнольд, Джеймс Гослинг, Дэвид Холмс. Язык программирования Java™.

2. Официальный сайт Java — http://java.sun.com/ (есть раздел на русском языке с учебником).

3. Java™ 2 SDK, Standard Edition Documentation —

4. Джеймс Гослинг, Билл Джой, Гай Стил. Спецификация языка Java (The Java Language Specification. Перевод на русский язык — http://www.uni-vologda.ac.ru/java/jls/index.html

5. Официальный сайт проекта Eclipse — http://www.eclipse.org/.

Другое:

1. Дмитрий Рамодин. Начинаем программировать на языке Java.

2. Николай Смирнов. Java 2: Учебное пособие.

3. Картузов А. В. Программирование на языке Java.

4. Вязовик Н. А. Программирование на Java.

5. Алексей Литвинюк.

Введение

в интегрированную среду разработки Eclipse.

Приложение. Аплеты.

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

С точки зрения языка Java, аплет — это всякое расширение класса Applet, который, в свою очередь, расширяет класс panel. Таким образом, аплет — это панель специального вида, контейнер для размещения компонентов с дополнительными свойствами и методами. Менеджером размещения компонентов по умолчанию, как и в классе Panel, служит FlowLayout. Класс Applet находится в пакете java. applet, в котором кроме него есть только три интерфейса, реализованные в браузере. Надо заметить, что не все браузеры реализуют эти интерфейсы полностью.

Поскольку JVM не запускает аплет, отпадает необходимость в методе main (), его нет в аплетах.

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

Начальные действия, обычно выполняемые в конструкторе и методе main (), в аплете записываются в метод init () класса Applet. Этот метод автоматически запускается исполняющей системой Java браузера сразу же после загрузки аплета. Вот как он выглядит:

public void init (){}

Метод init () не имеет аргументов, не возвращает значения и должен переопределяться в каждом аплете — подклассе класса Applet. Обратные действия — завершение работы, освобождение ресурсов — записываются при необходимости в метод destroy (), тоже выполняющийся автоматически при выгрузке аплета. В классе Applet есть пустая реализация этого метода.

Кроме методов init () и destroy () в классе Applet присутствуют еще два пустых метода, выполняющихся автоматически. Браузер должен обращаться к методу start () при каждом появлении аплета на экране и обращаться к методу stop (), когда аплет уходит с экрана. В методе stop () можно определить действия, приостанавливающие работу аплета, в методе start () — возобновляющие ее. Надо сразу же заметить, что не все браузеры обращаются к этим методам как должно. Работу указанных методов можно пояснить простым житейским примером.

Приехав весной на дачный участок, вы прокладываете водопроводные трубы, прикручиваете краны, протягиваете шланги — выполняете метод init () для своей оросительной системы. После этого, приходя на участок, включаете краны — запускаете метод start (), а уходя, выключаете их — выполняете метод stop (). Наконец, осенью вы разбираете оросительную систему, отвинчиваете краны, просушиваете и укладываете водопроводные трубы — выполняете метод destroy ().

Все эти методы в аплете необязательны. В примере 1 записан простейший аплет, выполняющий программу HelloWorld.

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

import java.awt.*;

import java.applet.*;

public class HelloWorld extends Applet{

public void paint (Graphics g){

g.drawstring («Hello, XXI century World!», 10, 30);

}

}

Эта программа записывается в файл HelloWorld. java и компилируется как обычное приложение:

Компилятор создает файл HelloWorld. class, но воспользоваться для его выполнения интерпретатором java теперь нельзя — нет метода main (). Вместо интерпретации надо дать указание браузеру для запуска аплета.

Указание браузеру на запуск аплета дается в теге . В нем обязательно задаются:

имя файла с классом аплета параметром code;

ширина width и высота height панели аплета в пикселах. Полностью текст HTML для нашего аплета приведен в примере 2.

Пример 2. Файл HTML для загрузки аплета HelloWorld

Ниже выполняется аплет.

Этот текст заносится в файл с расширением html или htm, например, HelloWorld.html. Имя файла произвольно, никак не связано с аплетом или классом аплета.

Оба файла — HelloWorld. html и HelloWorld. class — помещаются в один каталог на сервере, и файл HelloWorld. html загружается в браузер, который может находиться в любом месте сервера. Браузер, просматривая HTML-файл, выполнит тег и загрузит аплет. После загрузки аплет появится в окне браузера, как показано на рисунке 1.

Рисунок 1. Аплет HelloWorld в окне Internet Explorer

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

Во-вторых, как видно на рис. 1, у аплета серый фон. Такой фон был в первых браузерах, и аплет не выделялся из текста в окне браузера. Теперь в браузерах принят белый фон, его можно установить обычным для компонентов методом setBackground (Color.white), обратившись к нему в методе init ().

В состав JDK любой версии входит программа appietviewer. Это простейший браузер, предназначенный для запуска аплетов в целях отладки.

На рисунке 2 appletviewer показывает аплет HelloWorld.

Рисунок 2. Аплет HelloWorld в окне программы appletviewer

Замечание по отладке

Браузеры помещают загруженные аплеты в свой кэш, поэтому после щелчка кнопкой мыши по кнопке Refresh или Reload запускается старая копия аплета из кэша Для загрузки новой копии надо при щелчке по кнопке Refresh в IE (Internet Explorer) держать нажатой клавишу, а при щелчке по кнопке Reload в NC (Netscape Communicator) — клавишу Иногда и это не помогает. Не спасает даже перезапуск браузера. Тогда следует очистить оба КЭШа — и дисковый, и кэш в памяти. В IE это выполняется кнопкой Delete Files в окне, вызываемом выбором команды Tools | Internet Options. B NC необходимо открыть окно Cache командой Edit | Preferences | Advanced.

При запуске приложения интерпретатором java из командной строки в него можно передать параметры в виде аргумента метода main (string [] args). В аплеты также передаются параметры, но другим путем.

Передача параметров

Передача параметров в аплет производится с помощью тегов, располагаемых между открывающим тегом и закрывающим тегом в HTML-файле. В тегах указывается название параметра name и его значение value.

В аплете для приема каждого параметра надо воспользоваться методом getParameter (String name) класса Applet, Возвращающим строку типа String. В качестве аргумента этого метода задается значение параметра name в виде строки, причем здесь не различается регистр букв, а метод возвращает, значение параметра value тоже в виде строки.

Надеясь на то, что параметры будут заданы в HTML-файле, все-таки присвойте начальные значения переменным в аплете.

Замечание по отладке

Операторы System.out.println (), обычно записываемые в аплет для отладки, выводят указанные в них аргументы в специальное окно браузера Java Console. Сначала надо установить возможность показа этого окна. В Internet Explorer это делается установкой флажка Java Console enabled выбором команды Tools | Internet Options | Advanced. После перезапуска IE в меню View появляется команда Java Console.

Параметры тега

Обязательные параметры:

· code — URL-адрес файла с классом аплета или архивного файла;

· width и height — ширина и высота аплета в пикселах.

Необязательные параметры:

· codebase — URL-адрес каталога, в котором расположен файл класса аплета. Если этот параметр отсутствует, браузер будет искать файл в том же каталоге, где размещен соответствующий HTML-файл;

· archive — файлы всех классов, составляющих аплет, могут быть упакованы архиватором ZIP или специальным архиватором JAR в один или несколько архивных файлов. Параметр задает URL-адреса этих файлов через запятую;

· align — выравнивание аплета в окне браузера. Этот параметр имеет одно из следующих значений: ABSBOTTOM, ABSMIDDLE, BASELINE, BOTTOM, CENTER, LEFT, MIDDLE, RIGHT, TEXTTOP, TOP;

· hspace и vspace — горизонтальные и вертикальные поля, отделяющие аплет от других объектов в окне браузера в пикселах;

· download — задает порядок загрузки изображений аплетом. Имена изображений перечисляются через запятую в порядке загрузки;

· name — имя аплета. Параметр нужен, если загружаются несколько аплетов с одинаковыми значениями code и codebase;

· style — информация о стиле CSS (Cascading Style Sheet); title — текст, отображаемый в процессе выполнения аплета;

· alt — текст, выводимый вместо аплета, если браузер не может загрузить его;

· mayscript — не имеет значения. Это слово указывает на то, что аплет будет обращаться к тексту JavaScript.

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

archive = «anapplet.zip, myclasses. zip»

codebase = «

width = «300» height = «200» align = «TOP»

vspace = «5» hspace = «5» mayscript

alt = «If you have a Java-enabled browser,

you would see an applet here." >


If your browser recognized the applet tag,

you would see an applet here.


Обязательно упаковывайте все классы аплета в zipи jar-архивы и указывайте их в параметре archive в HTML-файле. Это значительно ускорит загрузку аплета.

Следует еще сказать, что, начиная с версии HTML 4.0, есть тег , предназначенный для загрузки и аплетов, и других объектов, например, ActiveX. Кроме того, некоторые браузеры могут использовать для загрузки аплетов тег .

Сведения об окружении аплета

Метод getCodeBase () возвращает URL-адрес каталога, в котором лежит файл класса аплета.

Метод getDocumentBase () возвращает URL-адрес каталога, в котором лежит HTML-файл, вызвавший аплет.

Браузер реализует интерфейс AppletContext, находящийся в пакете java.applet. Аплет может получить ссылку на этот интерфейс методом getAppletContext ().

С помощью методов getApplet (String name) и getApplets () интерфейса AppletСontext можно получить ссылку на указанный аргументом name аплет или на все аплеты, загруженные в браузер.

Метод showDocument (URL address) загружает в браузер HTML-файл с адреса address.

Метод showDocument (URL address, String target) загружает файл во фрейм, указанный вторым аргументом target. Этот аргумент может принимать следующие значения:

· _seif — то же окно и тот же фрейм, в котором работает аплет;

· _parent — родительский фрейм аплета;

· _top — фрейм верхнего уровня окна аплета;

· _biank — новое окно верхнего уровня;

· name — фрейм или окно с именем name, если оно не существует, то будет создано.

Защита от аплета

Браузер может вообще отказаться от загрузки аплетов. В Netscape Communicator это делается с помощью флажка Enable Java в окне, вызываемом командой Edit | Preferences | Advanced, в Internet Explorer — в окне после выбора команды Tools | Internet Options | Security.

Если браузер загружает аплет, то создает ему ограничения, так называемую " ящик для песка" (sandbox), в которой резвится аплет, но выйти из которой не может. Каждый браузер создает свои ограничения, но обычно они заключаются в том, что аплет:

· не может обращаться к файловой системе машины, на которой он выполняется, даже для чтения файлов или просмотра каталогов;

· может связаться по сети только с тем сайтом, с которого он был загружен;

· не может прочитать системные свойства;

· не может печатать на принтере, подключенном к тому компьютеру, на котором он выполняется;

· не может воспользоваться буфером обмена (clipboard); не может запустить приложение методом ехес ();

· не может использовать «родные» методы или загрузить библиотеку методом load ();

· не может остановить JVM методом exit ();

· не может создавать классы в пакетах java.*, а классы пакетов sun.* не может даже загружать.

Браузеры могут усилить или ослабить эти ограничения, например, разрешить локальным аплетам, загруженным с той же машины, где они выполняются, доступ к файловой системе. Наименьшие ограничения имеют доверенные (trusted) аплеты, снабженные электронной подписью с помощью классов из пакетов java.security.*.

При создании приложения, загружающего аплеты, необходимо обеспечить средства проверки аплета и задать ограничения. Их предоставляет класс SecurityManager. Экземпляр этого класса или его наследника устанавливается в JVM при запуске виртуальной машины статическим методом setSecurityManager (SecurityManager sm) класса System. Обычные приложения не могут использовать данный метод.

Каждый браузер расширяет класс SecurityManager по-своему, устанавливая те или иные ограничения. Единственный экземпляр этого класса создается при запуске JVM в браузере и не может быть изменен.

Показать весь текст
Заполнить форму текущей работой