Материал: Основные типы приложений на языке Java

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Конфигурация CLDC успешно используется в большинстве современных мобильных телефонов и портативных органайзеров. По данным компании SunMicrosystems к концу 2004 года в мире было выпущено более 579 миллионов мобильных устройств с поддержкой этой конфигурации Java. Это делает Java ME доминирующей технологией Java в мире.ME также определяет несколько так называемых профилей, которые дополняют и расширяют упомянутые выше конфигурации, в частности определяют модель приложения, возможности графического интерфейса, а также коммуникационные функции (например, доступ к Интернету) и другие.

В настоящее время самой распространённой конфигурацией является CLDC, для которого разработан профиль MIDP (MobileInformationDeviceProfile - профиль для мобильного устройства с информационными функциями). Приложения, написанные для этого профиля, называются мидлетами. Другим популярным профилем для CLDC является DoJa, разработанный фирмой NTT DoCoMo для её собственного сервиса iMode. iMode весьма распространён в Японии, и в меньшей степени в Европе и на Дальнем Востоке.

2. ПОСТАНОВКА ЗАДАЧИ

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

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

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

2.1 Апплеты

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

Спустя несколько лет мир снова взглянул на апплеты, как на программы, встраиваемые в браузер. Разработчики снова стали использовать решения, базирующиеся на апплетах, так как JavaPlug-in от Sun позволяет обновлять старую версию виртуальной машины, встроенную в InternetExplorer, до последней - JavaRuntimeEnvironment (JRE) - посредством Технологии GetJava.апплет - прикладная программа, чаще всего написанная на языке программирования Java в форме байт-кода. Java-апплеты выполняются в веб-обозревателе с использованием виртуальной Java машины (JVM), или в Sun's AppletViewer, автономном средстве для испытания апплетов. Java-апплеты были внедрены в первой версии языка Java в 1995 году. Java-апплеты обычно пишутся на языке программирования Java, но могут быть написаны и на других языках, которые компилируются в байт‐код Java, таких, как Jython.

Апплеты используются для предоставления интерактивных возможностей веб-приложений, которые не могут быть предоставлены HTML. Так как байт-код Javaплатформо-независим, то Java-апплеты могут выполняться с помощью плагинов браузерами многих платформ, включая MicrosoftWindows, UNIX, AppleMac OS и GNU/Linux. Такие программы с открытым исходным кодом, как applet2app, могут быть использованы для преобразования апплета в самостоятельные программы на Java или исполняемые файлы Linux и Windows.иногда неофициально сравнивают с серверным апплетом, но он отличается своим языком, функциями и каждой из описанных здесь характеристик апплетов.апплеты в большинстве браузеров выполняются в «песочнице», предотвращая их доступ к локальным данным. Код апплета загружается с веб-сервера, и браузер либо вставляет апплет в веб-страницу, либо открывает новое окно с собственным пользовательским интерфейсом апплета. Апплет может быть отображен на веб-странице путем использования устаревшего HTML элемента applet, или рекомендуемого элемента object. Этим определяется месторасположение и источник апплета.

Главный класс апплета расширяет класс java.applet.Applet <#"865413.files/image001.gif">

Рисунок 2.1 - Работа сервлета

Сервлеты можно внедрять в различные сервера, так как API сервлета, который вы используете для его написания, ничего не «знает» ни о среде сервера, ни о его протоколе. Все чаще стало встречаться использование сервлетов на HTTP серверах. Множество Web-серверов поддерживает технологию JavaServlet.

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

Итак, можно использовать сервлеты для обработки клиентских HTTP запросов. К примеру, сервлет, обрабатывающий данные, отправленные через HTTPS, где использована форма HTML, включающая бланк заказа или данные банковской кредитной карточки. Такой сервлет может являться частью запросной и обрабатывающей системы, работающей с базами данных товаров и инвентаря, и возможно онлайновой системы платежей.

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

2.3 GUI-приложения

Экранной формой называется область, которая видна на экране в виде окна с различнымиэлементами - кнопками, текстом, выпадающими списками и т.п. А сами эти элементы называются компонентами. Среды, позволяющие в процессе разработки приложения в интерактивном режиме размещать на формы компоненты и задавать их параметры, называются RAD-средами. RAD расшифровывается как RapidApplicationDevelopment - быстрая разработка приложений. В NetBeans и других современных средах разработки такой процесс основан на объектной модели компонентов, поэтому он называется Объектно-Ориентированным Дизайном (OOD - Object-OrientedDesign).является RAD-средой и позволяет быстро и удобно создавать приложения с развитым графическим пользовательским интерфейсом (GUI - GraphicUserInterface). Чтобы создать приложение с графическим интерфейсом в NetBeans достаточно выбрать заготовку JavaDesktopApplication при создании проекта.

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

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

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

Существуют и другие компоненты форм, их конкретный набор зависит от используемой библиотеки компонентов. Современные комплектации Java предоставляют как минимум два набора компонентов AWT и Swing (хотя в современных приложениях имеется возможность совместно использовать эти наборы).

Библиотекуназвали AWT - Abstract Window Toolkit. Слово «абстрактный» в названии указывает на то, что все стандартные компоненты не являются самостоятельными, а работают в связке с соответствующими элементами операционной системы.

Поскольку Java-приложения предназначены для работы на разнообразных платформах, реализация графического пользовательского интерфейса (GUI) должна быть либо одинаковой для любой платформы, либо, напротив, программа должна иметь вид, типичный для данной операционной системы. В силу ряда причин, для основной библиотеки AWT по созданию GUI был выбран второй подход. Во-первых, это лишний раз показывало гибкость Java - действительно, пользователи разных платформ могли работать с одним и тем же Java-приложением, не меняя своих привычек. Во-вторых, такая реализация обеспечивала большую производительность, поскольку была основана на возможностях операционной системы. В частности, это означало и более компактный, простой, а значит, и более надежный код.

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

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

Кроме свойств у каждого компонента графического интерфейса есть и набор связанных с ним действий. Например, при нажатии кнопки возникает событие, к которым мы можем привязать какое-то действие (например, при нажатии кнопки может изменяться текст написанный на ней или вычисляться сумма чисел, введенных в два текстовых поля, и выводится в третье текстовое поле - при этом изменить текст, содержащийся в текстовом поле очень просто, надо просто присвоить новое значение нужному свойству компонента).


3. РАЗРАБОТКА ПРОГРАММНОГО КОДА

.1 Разработка консольного приложения

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

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

В качестве стандартного потока вывода консольное приложение использует поток java.lang.System.out, а в качестве стандартного потока ввода - java.lang.System.in.

В нашем примере мы определили класс ConsoleApp, разместив его исходный текст в файле с именем ConsoleApp.java. Файл должен называться именно так, в противном случае компилятор выдаст сообщение об ошибке.

Статический метод main не возвращает никакого значения и потому имеет тип void. В качестве единственного аргумента этому методу передается массив строк параметров запуска приложения.

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

System.out.print ("Enter your name: ");

Для того, чтобы считывать данные из консоли будем использовать класс Scanner. Для того, чтобы применить данный класс необходимо подключить importjava.util.Scanner.

Scanner in = new Scanner(System.in);

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

3.2 Разработка апплета

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

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

Источник: https://www.bibliofond.ru/view.aspx?id=865413