Основные типы приложений на языке Java
Кратка историческая справка развития языка Java. Анализ предметной области. Java platform, enterprise and standart edition. Апплеты, сервлеты, gui-приложения. Розработка программного кода, консольное приложение. Результаты работы апплета, сервлета.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 23.12.2015 |
Размер файла | 549,2 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
ВВЕДЕНИЕ
В конце 1995 года язык программирования Java вырвался на арену Интернета и моментально завоевал популярность. Технология Java обещала стать универсальным связующим звеном, соединяющим пользователей с информацией, откуда бы эта информация не поступала - от веб-серверов, из баз данных, поставщиков информации или любого другого источника, который только можно было себе вообразить. Java - весьма основательно сконструированный язык, получивший признание всех основных участников рынка за исключением компании Microsoft. Его встроенные средства защиты и безопасности обнадежили как программистов, так и пользователей программ на Java. Язык изначально обладал встроенной поддержкой для решения таких сложных задач, как сетевое программирование, взаимодействие с базами данных и многопоточная обработка.
С 1995 года было выпущено восемь главных версий комплекта JavaDevelopmentKit. За последние 17 лет прикладной программный интерфейс (API) увеличился от 200 до 3 тысяч классов. Теперь прикладной интерфейс охватывает самые разные предметные области, включая конструирование пользовательских интерфейсов, управление базами данных, интернационализацию, безопасность и обработку данных в формате XML.
Java никогда не был только языком программирования. Хорошие языки - не редкость, а появление некоторых из них вызвало настоящую сенсацию в области вычислительной техники. В отличие от них, Java - это программная платформа, включающая в себя мощную библиотеку, большой объем кода, пригодного для повторного использования, а также среду для выполнения программ, которая обеспечивает безопасность, независимость от операционной системы и автоматическую “сборку мусора”.
Программистам нужны языки с четкими синтаксическими правилами и понятной семантикой. Такому требованию, помимо Java, отвечают десятки языков. Некоторые из них даже обеспечивают переносимость и “сборку мусора”, но их библиотеки оставляют желать лучшего. В итоге программисты вынуждены самостоятельно реализовывать графические операции, доступ к сети и базе данных и другие часто встречающиеся процедуры. Java объединяет в себе прекрасный язык, высококачественную среду выполнения программ и обширную библиотеку. В результате многие программисты остановили свой выбор именно на Java.
Данный курсовой проект имеет за цель подробно рассмотреть основные типы приложений на языке Java.
1. АНАЛИЗ ПРЕДМЕТНОЙ ОБЛАСТИ
Java является основой практически для всех типов сетевых приложений и всеобщим стандартом для разработки и распространения встроенных и мобильных приложений, игр, веб-контента и корпоративного программного обеспечения. В мире насчитывается более 9 миллионов специалистов, разрабатывающих приложения на Java, которая позволяет эффективно разрабатывать, внедрять и использовать превосходные приложения и услуги.
Технология Java протестирована, усовершенствована, расширена и проверена участниками сообщества разработчиков Java, архитекторов и энтузиастов. Java позволяет разрабатывать высокопроизводительные портативные приложения практически на всех компьютерных платформах. Доступность приложений в разнородных средах позволяет компаниям предоставлять более широкий спектр услуг, способствует повышению производительности, уровня взаимодействия и совместной работы конечных пользователей и существенному снижению стоимости совместного владения корпоративными и потребительскими приложениями. Java стала незаменимым инструментом для разработчиков и открыла для них следующие возможности:
написание программного обеспечения на одной платформе и его запуск практически на любой другой платформе;
создание программ, работающих в веб-браузере и имеющих доступ к веб-службам;
разработка приложений на стороне сервера для форумов в Интернете, магазинов, опросов, обработки форм HTML и много другого;
объединение приложений или служб с использованием языка Java для создания высокоспециализированных приложений или служб;
создание многофункциональных и эффективных приложений для мобильных телефонов, удаленных процессоров, микроконтроллеров, беспроводных модулей, датчиков, шлюзов, потребительских продуктов и практически любых других категорий электронных устройств.
Кроме стандартной редакции набора инструментальных средств для разработки программного обеспечения на Java - StandardEdition -, были предложены еще два варианта: MicroEdition (“микроредакция”) для портативных устройств, например для мобильных телефонов, и EnterpriseEdition (редакция для корпоративных приложений).
1.1 JavaPlatform, EnterpriseEdition
JavaPlatform, EnterpriseEdition, сокращенно Java EE (до версии 5.0 -- Java 2 EnterpriseEdition или J2EE) -- набор спецификаций и соответствующей документации для языка Java, описывающей архитектуру серверной платформы для задач средних и крупных предприятий.
Спецификации детализированы настолько, чтобы обеспечить переносимость программ с одной реализации платформы на другую. Основная цель спецификаций -- обеспечить масштабируемость приложений и целостность данных во время работы системы. JEE во многом ориентирована на использование её через веб как в интернете, так и в локальных сетях. Вся спецификация создаётся и утверждается через JCP (JavaCommunityProcess) в рамках инициативы SunMicrosystemsInc.
JEE является промышленной технологией и в основном используется в высокопроизводительных проектах, в которых необходима надежность, масштабируемость, гибкость.
Популярности JEE также способствует то, что Sun предлагает бесплатный комплект разработки, SDK, позволяющий предприятиям разрабатывать свои системы, не тратя больших средств. В этот комплект входит сервер приложений GlassFish с лицензией для разработки.
Технологии J2EE ориентированы на разработку серверной стороны приложения и облегчают, в первую очередь, процесс эффективной реализации среднего уровня (Middletier), содержащего бизнес-логику. Базовыми технологиями для платформы J2EE являются ранее разработанные технологии J2SE, поэтому обязательным условием для разработчиков реализации платформы J2EE является полная поддержка спецификации J2SE.
Различные версии J2EE поддерживают разные спецификации технологий, например EJB, Servlets и т.д. В данном практическом пособии мы ориентируемся на спецификацию J2EE 1.3, поддерживающую спецификации EJB 2.0, Servlets 2.3, JSP 1.2. Каждая конкретная реализация платформы J2EE, удовлетворяющая спецификации J2EE версии 1.3, должна предоставлять пользователю перечисленные ниже технологии и соответствующие программные интерфейсы.
Java Remote Method Invocation (RMI) и RMI / IIOP. JavaRemoteMethodInvocation представляет собой Java-ориентированный метод реализации взаимодействиями между распределенными объектами информационной системы. RMI - это технология построения распределенных приложений на основе спецификации языка Java. Типичным примером является организация связи между двумя объектами, запущенными на выполнение на разных компьютерах. RMI / IIOP является расширением RMI с целью интеграции с технологией CORBA. Вообще-то говоря, официальным API в технологии J2EE является не RMI, а именно RMI / IIOP.
Java Naming and Directory Interface, JNDI. JavaNamingandDirectoryInterface (Интерфейс наименований и каталогов) используется для доступа из кода приложения к системам наименований и каталогов. Так, например, JNDI применяется для связи EJB-компонентов через Интернет с другими ресурсами распределенной системы.
JavaMessagingService, JMS. JavaMessagingService (Сервис сообщений Java) используется для взаимодействия J2EE-приложения с помощью сообщений как между отдельными компонентами внутри приложения, так и с внешними системами сообщений среднего уровня - Message-OrientedMiddleware (MOM). К таким системам относятся, например, IBM MQSeries и MicrosoftMessageQueue (MSMQ). Технология сообщений Java выступает альтернативой методу организации связи с помощью протокола RMI/IIOP.
JavaServlets. Технология Java-сервлетов. Servlet (Сервлет) является сетевой технологией, расширяющей функциональные возможности Web-сервера. Сервлеты - это сетевые компоненты, работающий в режиме запрос/ответ. Запрос, получаемый от клиента через Web-браузер, обрабатывается сервлетом, после чего клиенту отсылается ответ. Функционирование сервлетов не требует управления сервером приложения.
JavaServerPages (JSP). JavaServerPages (Страницы JSP) разрабатываются на основе страниц HTML с помощью JavaScript, языка сценариев, созданного на основе языка Java. Страницы JSP похожи на сервлеты: скрипты страниц JSP компилируются в сервлеты. В отличие от сервлетов, страницы JSP используются для визуального представления приложений и не требуют Java-компилятора. Их удобно применять для отделения визуального представления приложения от его содержательной части.
Java Database Connectivity, JDBC. JavaDatabaseConnectivity - это средство организации доступа к базам данных в сети. Интерфейс JDBC является API для доступа к любым реляционным базам данных.
Java Transaction API, JTA и Java Transaction Service, JTS. Java Transaction API (Программныйинтерфейс Java транзакций) и Java Transaction Service (Сервис Java-транзакций) используются для поддержки механизма транзакцийв J2EE.
EnterpriseJavaBeans, EJB. EnterpriseJavaBeans - это самая главная технология, которая определяет основные свойства и назначение платформы J2EE. Версия 1.3 платформы J2EE включает поддержку спецификации EJB 2.0, которая дает описание стандартных компонентов серверного приложения и путей их реализации (свойства компонентов, методика написания их программного кода, принципы использования компонентов в многоуровневых приложениях и пр.). В спецификации EJB 2.0 представлены также стандартные соглашения, связывающие компоненты EJB и серверы приложений (applicationservers), управляющие компонентами. Технология EJB опирается на другие технологии J2EE.
Java Interface Definition Language, Java IDL. Java Interface Definition Language (Языкопределенияинтерфейсов Java) реализуеттехнологиюCORBA на основе Java, что позволяет интегрировать CORBA в J2EE-приложения.
Java Mail и JavaBeans Activation Framework. JavaMail предоставляет пользователю возможность отправлять сообщения электронной почты непосредственно из программного приложения, что особенно важно при реализации задач электронной коммерции. При этом поддерживается независимость от платформы и протокола связи. Технология JavaMail базируется на технологии JavaBeansActivationFramework, JAF (Структура активации JavaBeans).
JavaConnectorArchitecture. JavaConnectorArchitecture (Архитектура соединителей J2EE) - это технология, позволяющая интегрировать приложение J2EE с существующими корпоративными информационными системами.
Java API for XML Parsing. Java API for XML Parsing, JAXP (Интерфейс Java для XML-разбора) - технология, позволяющая пользователю работать с документами XML, входящими в состав программного приложения.
Java Authentication and Authorization Service. JavaAuthenticationandAuthorizationService, JAAS (Идентификация и авторизация Java) - технология для поддержания защиты информации, предоставляющая пользователю соответствующий API.
1.2 JavaPlatform, StandardEdition
java апплет сервлет код
JavaPlatform, StandardEdition, сокращенно Java SE (ранее Java 2 StandardEdition или J2SE) -- стандартная версия платформы Java 2, предназначенная для создания и исполнения апплетов и приложений, рассчитанных на индивидуальное пользование или на использование в масштабах малого предприятия. Не включает в себя многие возможности, предоставляемые более мощной и расширенной платформой Java 2 EnterpriseEdition (J2EE), рассчитанной на создание коммерческих приложений масштаба крупных и средних предприятий.
Корпорация Oracle представила в августе 2011 года JavaPlatform, StandardEdition 7 (Java SE 7), первую версию платформы Java, выпущенную под руководством Oracle.
Новая версия Java SE 7 стала результатом объединенных усилий разработчиков по всей отрасли, включавших открытое обсуждение, еженедельные встречи и широкое сотрудничество инженеров Oracle и участников мировой экосистемы JavaOpenJDKCommunity и JavaCommunityProcess (JCP).
Java SE 7 предлагает:
языковые изменения, которые помогают повысить эффективность труда разработчиков и облегчают решение стандартных задач программирования благодаря уменьшению необходимого объема программного кода, упрощению синтаксиса и улучшению читабельности программ;
оптимизированную поддержку динамических языков (включая Ruby, Python и JavaScript), обеспечивающую значительное повышение производительности виртуальной машины Java;
новый интерфейс прикладного программирования (API), ориентированный на многоядерные системы и облегчающий разработчикам процедуру разбиения задач на фрагменты, которые могут затем выполняться параллельно с использованием произвольного числа процессорных ядер;
развитый интерфейс ввода-вывода для работы с файловыми системами, позволяющий обращаться к более широкому набору файловых атрибутов и предоставляющий больше сведений об ошибках;
новые сетевые функции и средства защиты;
расширенную поддержку локализации, включая поддержку стандарта Unicode 6.0;
обновленные версии большого числа библиотек.
Высокая степень совместимости Java SE 7 с более ранними версиями платформы делает возможным использование существующего опыта разработчиков на платформе Java и сохранение инвестиций в Java-технологии.
1.3 JavaPlatform, MicroEdition
JavaPlatform, MicroEdition (Java ME, ранее - Java 2 MicroEdition, J2ME) - подмножество платформы Java для устройств, ограниченных в ресурсах, например: сотовых телефонов, карманных персональных компьютеров, ресиверов цифрового телевидения, проигрывателей дисков Blu-ray.
Java ME разработана под руководством SunMicrosystems и является заменой похожей технологии -- PersonalJava. Sun предоставляет образец реализации (англ. referenceimplementation) спецификации, но до недавнего времени не предоставляла бесплатной реализации среды выполнения Java ME для мобильных устройств.
Отличительными особенностями устройств с ограниченными ресурсами являются ограниченная вычислительная мощность, ограниченный объём памяти, малый размер дисплея, питание от портативной батареи, а также низкоскоростные и недостаточно надёжные коммуникационные возможности.
Java ME специфицирует две базовые конфигурации, которые определяют требования к виртуальной машине (ограничение набора допустимых инструкций и др.), а также минимальный набор базовых классов: CLDC (ConnectedLimitedDeviceConfiguration -- конфигурация устройства с ограниченными ресурсами и коммуникационными возможностями) и CDC (ConnectedDeviceConfiguration -- конфигурация устройства с нормальными ресурсами и коммуникационными возможностями).
Конфигурация CLDC успешно используется в большинстве современных мобильных телефонов и портативных органайзеров. По данным компании SunMicrosystems к концу 2004 года в мире было выпущено более 579 миллионов мобильных устройств с поддержкой этой конфигурации Java. Это делает Java ME доминирующей технологией Java в мире.
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-апплеты выполняются в веб-обозревателе с использованием виртуальной 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.
JavaServlet иногда неофициально сравнивают с серверным апплетом, но он отличается своим языком, функциями и каждой из описанных здесь характеристик апплетов.
Java-апплеты в большинстве браузеров выполняются в «песочнице», предотвращая их доступ к локальным данным. Код апплета загружается с веб-сервера, и браузер либо вставляет апплет в веб-страницу, либо открывает новое окно с собственным пользовательским интерфейсом апплета. Апплет может быть отображен на веб-странице путем использования устаревшего HTML элемента applet, или рекомендуемого элемента object. Этим определяется месторасположение и источник апплета.
Главный класс апплета расширяет класс java.applet.Applet или, если создаётся Swing апплет, javax.swing.JApplet. Класс должен переопределить методы создания пользовательского интерфейса внутри себя.
Преимущества использования Java-апплетов:
кроссплатформенность;
апплет может работать на «всех» установленных к этому времени версиях Java, а не только с последней версией; однако, если апплет требует последнюю версию JRE, то клиент будет вынужден ждать более длительной загрузки;
апплет поддерживается большинством браузеров;
он кэшируется в большинстве браузеров, а потому будет быстро загружаться при возвращении на веб-страницу; но апплет может сохраняться в кэше и создавать проблемы после выхода новых версий;
он может иметь полный доступ к машине, на которой выполняется, если пользователь согласен на это;
апплет может улучшить использование: после первого запуска апплета, когда JVM уже выполняется и быстро запускается, преимущественно у постоянных пользователей Java, однако JVM придется перезапускать каждый раз, когда запускается новый браузер;
он может запуститься с сопоставимой (но обычно медленнее) скоростью на других компилируемых языках, таких как C++, но во много раз быстрее, чем JavaScript;
он может перенести работу с сервера к клиенту, делая Интернет-решение с, большим числом пользователей / клиентов.
Java-апплет обладает следующими недостатками:
он требует установки Java-расширения (plug-in), которое не во всех браузерах доступно по умолчанию;
он не может запуститься до тех пор, пока не запустится виртуальная Java-машина, и это может занять значительное время при первом запуске;
создание и дизайн хорошего пользовательского интерфейса с использованием апплетов считается более сложной задачей, чем с помощью технологии, основанной на HTML;
некоторые организации допускают только программное обеспечение, установленное администраторами. В результате многие пользователи не могут видеть апплеты по умолчанию;
апплеты могут потребовать использования определенного JRE.
Существуют альтернативные технологии (например, DHTML, MicrosoftSilverlight и AdobeFlash), которые реализуют некоторые возможности апплетов.
Ещё одной альтернативой апплетов для клиента Java является JavaWebStart, который запускается вне браузера. В дополнение к функциям, доступным в апплете, простой доступ к полям предоставляет программам JavaWebStart доступ по чтению и/или записи определенных файлов, хранящихся у клиента, а также к буферу обмена клиента.
2.2 Сервлеты
Как ни полезны аплеты, они -- всего лишь половина системы клиент/сервер. Вскоре после появления языка Java стало очевидно, что он может пригодиться и на серверах. В результате появились сервлеты (servlet). Сервлет -- это небольшая программа, выполняемая на сервере. Подобно тому как аплеты динамически расширяют функциональные возможности Web-браузера, сервлеты динамически расширяют функциональные возможности Web-сервера. Таким образом, с появлением сервлетов язык Java распространился на оба конца соединения клиент/сервер.
Поскольку сервлеты предоставляют великолепное решение для программной поддержки на стороне сервера, они являются одним из наиболее популярных причин перехода на Java. Не только потому, что они предоставляют рабочую среду, которая заменяет CGI программирование (и снижает количество throny CGI проблем), но весь ваш код приобретает портируемость между платформами, получаемую от использования Java, и вы приобретаете доступ ко всему Java API (за исключением, конечно, того, которое производит GUI, такого, как Swing).
Сервлеты служат для создания динамически генерируемого содержимого, которое затем обслуживает клиента. Например, интерактивный склад может использовать сервлет для поиска стоимости товара в базе данных. Затем информация о цене используется для динамической генерации Web-страницы, отправляемой браузеру. Хотя динамически генерируемое содержимое доступно также посредством таких механизмов, как CGI (CommonGatewayInterface -- общий шлюзовой интерфейс), сервлет обеспечивает ряд преимуществ, в том числе -- повышение производительности.
Поскольку сервлеты (подобно всем Java-программам) компилируются в байт-код и выполняются машиной JVM, они в высшей степени переносимы. Следовательно, один и тот же сервлет может применяться в различных серверных средах. Единственные необходимые условия для этого -- поддержка сервером машины JVM и контейнера сервлета.
Сервлеты - это модули, которые расширяют сервера, ориентированные на системы запрос-ответ, такие, как web-сервера Java. Например, сервлет может отвечать за получение данных в формате HTML и применение бизнес логики, используемой для обновления базы данных компании. Сервлеты являются для серверов тем же, что и апплеты для браузеров. Но в отличие от апплетов, у сервлетов нет графического интерфейса.
Рисунок 2.1 - Работа сервлета
Сервлеты можно внедрять в различные сервера, так как API сервлета, который вы используете для его написания, ничего не «знает» ни о среде сервера, ни о его протоколе. Все чаще стало встречаться использование сервлетов на HTTP серверах. Множество Web-серверов поддерживает технологию JavaServlet.
Сервлеты эффективно заменяют CGI скрипты. Они позволяют генерировать динамические документы гораздо проще и быстрее. Сервлеты так же решают проблему программирования на стороне сервера при использовании специальных API, характерных только для определенных платформ. Сервлеты разрабатываются с JavaServer API, стандартным Java расширением.
Итак, можно использовать сервлеты для обработки клиентских HTTP запросов. К примеру, сервлет, обрабатывающий данные, отправленные через HTTPS, где использована форма HTML, включающая бланк заказа или данные банковской кредитной карточки. Такой сервлет может являться частью запросной и обрабатывающей системы, работающей с базами данных товаров и инвентаря, и возможно онлайновой системы платежей.
Сервлет одновременно обрабатывает большое количество запросов, а также может синхронизировать их. Это позволяет сервлетам поддерживать такие системы, как онлайновая конференция. Сервлеты могут пересылать запросы другим серверам и сервлетам. Таким образом, сервлеты можно применять для балансирования нагрузки между несколькими серверами, которые отражают одинаковое содержание, а также для распределения одного логического сервиса по нескольким серверам, в соответствии с типом поставленной задачи или организационными границами.
2.3 GUI-приложения
Экранной формой называется область, которая видна на экране в виде окна с различнымиэлементами -- кнопками, текстом, выпадающими списками и т.п. А сами эти элементы называются компонентами. Среды, позволяющие в процессе разработки приложения в интерактивном режиме размещать на формы компоненты и задавать их параметры, называются RAD-средами. RAD расшифровывается как RapidApplicationDevelopment -- быстрая разработка приложений. В NetBeans и других современных средах разработки такой процесс основан на объектной модели компонентов, поэтому он называется Объектно-Ориентированным Дизайном (OOD -- Object-OrientedDesign).
NetBeans является RAD-средой и позволяет быстро и удобно создавать приложения с развитым графическим пользовательским интерфейсом (GUI -- GraphicUserInterface). Чтобы создать приложение с графическим интерфейсом в NetBeans достаточно выбрать заготовку JavaDesktopApplication при создании проекта.
В проекте созданном на основе шаблона уже будет присутствовать экранная форма и среда предоставит два режима работы с ней: режим работы с исходным кодом (тот же, что используется для создания классов и целых консольных приложений) и режим дизайна (также этот режим часто называется конструктором форм в других средах разработки).
Удобство режима дизайна заключается в том, что используя набор предопределенных элементов пользовательского графического интерфейса разработчик может наполнять форму необходимыми элементами просто перетаскивая их на форму из библиотеки, размещая их нужным образом, задавая их основные свойства. Это не позволяет создавать полноценных приложений, но освобождает от написания рутинного кода, необходимого для создания стандартных элементов интерфейса. При желании можно переключится в режим исходного кода и описать каждый компонент формы вручную.
Типичный набор компонентов формы:
Button -- кнопка;
Radiobutton -- группа переключателей, из которых может быть выбран только один;
Checkbox -- «флажок», активирующий или деактивирующий какую-то опцию.
List -- выпадающий список;
Label -- текстовая надпись;
TextField -- поле для ввода текста;
Textarea -- многострочное поле для ввода текста.
Существуют и другие компоненты форм, их конкретный набор зависит от используемой библиотеки компонентов. Современные комплектации Java предоставляют как минимум два набора компонентов AWT и Swing (хотя в современных приложениях имеется возможность совместно использовать эти наборы).
Библиотекуназвали AWT -- Abstract Window Toolkit. Слово «абстрактный» в названии указывает на то, что все стандартные компоненты не являются самостоятельными, а работают в связке с соответствующими элементами операционной системы.
Поскольку Java-приложения предназначены для работы на разнообразных платформах, реализация графического пользовательского интерфейса (GUI) должна быть либо одинаковой для любой платформы, либо, напротив, программа должна иметь вид, типичный для данной операционной системы. В силу ряда причин, для основной библиотеки AWT по созданию GUI был выбран второй подход. Во-первых, это лишний раз показывало гибкость Java - действительно, пользователи разных платформ могли работать с одним и тем же Java-приложением, не меняя своих привычек. Во-вторых, такая реализация обеспечивала большую производительность, поскольку была основана на возможностях операционной системы. В частности, это означало и более компактный, простой, а значит, и более надежный код.
Любое приложение с GUI является расширением (наследником) определенного компонента из библиотеки, как правило это заготовка для формы, на которую в дальнейшем попадут другие компоненты интерфейса (надписи, поля, кнопки и пр.).
У каждого созданного компонента имеется предопределенный набор свойств. Например, для самой простой кнопки это координаты на форме, текст на кнопке, цвет фона кнопки, цвет текста и ещё десятки свойств. Все эти свойства могут задаваться также в режиме дизайна, но могут быть описаны и программным кодом. Вообще все параметры в программе, разумеется, хранятся в виде программного кода, но вот быстро создавать и редактировать этот код можно с помощью режима дизайна.
Кроме свойств у каждого компонента графического интерфейса есть и набор связанных с ним действий. Например, при нажатии кнопки возникает событие, к которым мы можем привязать какое-то действие (например, при нажатии кнопки может изменяться текст написанный на ней или вычисляться сумма чисел, введенных в два текстовых поля, и выводится в третье текстовое поле -- при этом изменить текст, содержащийся в текстовом поле очень просто, надо просто присвоить новое значение нужному свойству компонента).
Для каждого компонента существует свой набор событий: выделение, нажатие, перетаскивание, редактирование, активация и прочее. В ответ на каждое из этих событий может быть произведено какое-то действие, например, вызван какой-то метод. Какие именно действия будут происходить в ответ на определенные события можно описать уже только программным кодом (режим дизайна тут бессилен).
3. РАЗРАБОТКА ПРОГРАММНОГО КОДА
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. Эти пять ключевых методов работают следующим образом:
init - вызывается при загрузке браузером основного класса Applet. Обычно у апплетов нет конструктора. Вместо этого используется код их единовременной инициализации.
start - вызывается в начале выполнения апплета при посещении пользователем страницы.
stop - вызывается для остановки выполнения апплета, когда пользователь покидает страницу, содержащую данный апплет.
destroy - вызывается в случае, если браузер должен завершить работу апплета. При этом ресурсы можно восстановить, однако у вас не будет над ними контроля.
paint - вызывается, когда браузер определяет, что область отображения апплета является неверной.
Апплет компилируется так же, как и любой другой исходный файл:
javacAppletApp.java
Если в файле не будет ошибок, будет создан класс AppletApp.class.
Загрузка апплетов несколько отличается от загрузки автономных программ. Вместо обеспечения основного метода, исполняемого один раз при загрузке файла, загрузка апплета требует наличия HTML-файла. Именно в нем размещается тег <APPLET>. Для апплета, файл-загрузчик должен выглядеть так, как представлено ниже, и располагаться в той же директории, что и файл .class:
<APPLET
code=FirstApplet
height=200
width=200>
</APPLET>
Атрибут code указывает имя загружаемого класса. Значение атрибутов width и height очевидно - при их помощи выставляется желаемый размер отображения апплета. Если файл класса апплета использует базовую директорию отличную от директории файла-загрузчика HTML, вам потребуется задать CODEBASE, позволяющий указать броузеру расположение базовой директории. Необходимо поместить данный тег в любой HTML-файл и загрузить его в браузере.
Разработанный апплет позволяет вводить в текстовую форму имя пользователя, и при нажатии на кнопку выводит текстовое приветствие. Код разработанной программы полностью приведен в приложении А, результат работы - в приложении Б.
3.3 Разработка сервлета
Сервлеты пишут с помощью пакета javax. Этот пакет следует скопировать из дистрибутива Tomcat в корневой каталог Java.
Сервлет обрабатывает строки запросов от браузеров типа InternetExplorer. Браузер передает на сервер запрос, содержащий данные сайта (HTML-документ). Далее считаем, что Web-cepвep и клиент расположены на одном и том же компьютере.
Сначала импортируются дополнительные библиотеки классов для сервлетов. Эти библиотеки находятся в архиве servlet.jar, расположенном в каталоге LIB сервера Tomсat.
Любой сервлет является производным от класса HttpServlet. Обычно в нем переопределяется метод doGet, или doPost, или оба эти метода (можно переопределить один из них и вызвать его из другого). Эти методы могут получать параметры запроса (с помощью своего первого параметра - объекта request), а затем формируют ответ сервера (с помощью второго параметра - объекта response).
Первой строкой ответа должно быть формирование заголовка Content-Type:
response.setContentType("text/html");
Затем получаем ссылку на выходной поток сервлета:
PrintWriterout = response.getWriter();
и выводим любую информацию в этот выходной поток (в данном случае - простой HTML-код). Теперь сервлет нужно откомпилировать. Полученный файл *.class следует поместить в специальный каталог Tomсat для сервлетов. УнасэтоC:\Tomcat\webapps\ex3\WEB-INF\classes.
На форме в HTML-документе расположены кнопка и текстовое поле. Кнопка имеет тип Submit. Кнопка этого типа используется для соединения с сервлетом.
В HTML-документе необходимо в теге <action> указать адрес программы сервлета, которому будет передан сам документ при нажатии на кнопку типа submit. Соответствующая строка в тексте документа такова:
<FORM id="contactForm" action="http://127.0.0.1:8080/ex3/c" method=Get>
Для создания класса сервлета следует подготовить исходный Java-файл сервлета. Этот файл нужно скомпилировать обычным образом и получить класс сервлета. Файл с классом сервлета следует поместить, как это принято в Tomcat, в каталог …//Tomcat/webapps/ex3/WEB-INF/classes. Однако все же следует самостоятельно проверить, откуда Web-сервер выполняет запуск сервлетов. Для этого активизируйте окно программы InternetExplorer и введите следующий адрес: http://localhost. До выполнения этих действий Tomcat уже должен быть запущен. После нажатия кнопки <Enter> откроется домашняя страница Tomcat . Выберите на ней ссылку ServletExamples и откройте текст HTML-документа из меню браузера (ViewSource). Найдите в тексте документа ссылку на сервлет.
Сервлет не только должен прочитать переданные ему браузером данные документа, но и вернуть результаты своей работы обратно на сторону клиента и, как правило, в форме HTML-документа. Строка:
<!DOCTYPEHTMLPUBLIC "-//W3C//DTDHTML 4.0 Transitional//EN">
используется для указания браузеру того, что требования к правильности написания тегов не являются жесткими (параметр -- Transitional).
Значения переменных формы получаем с помощью команды наподобие следующей:
String s=request.getParameter("tf");
Здесь переменная класса httpServletRequestrequest позволяет прочитать все данные формы, переданные браузером, используя команду getParameter (). Операндом команды является имя текстового поля, объявленное в HTML-документе:
<input type=text size=20 name=name id="name" class="form-poshytip" title="Введитеимя"/>
Таким образом, можно получить значения всех визуальных элементов формы. Другая объектная переменная класса httpServletResponseresp позволяет вернуть информацию обратно клиенту. С помощью этой переменной можно вернуть клиенту обычный HTML-документ:
PrintWriterpw = resp.getWriter();
где как раз и используется данная объектная переменная: на ее основе создается потоковая переменная для вывода out, которая затем выполняет прямой вывод в формате HTML.
В тексте сервлета используется метод обработки формы doGet (). Это наиболее быстрый способ, ориентированный на передачу серверу небольших сайтов. Альтернативным способом является метод doPost (), который не рассматривается.
Перед выполнением сервлета необходимо запустить Web-сервер Tomcat. Запуск и настройка сервера Tomcat являются важной составной частью настоящей работы.
Для запуска сервлета в адресной строке браузера необходимо набрать http://127.0.0.1:8080/ex3/c.
Данный севлет позволяет ввести имя пользователя, затем при нажатии кнопки выводит приветствие. Код разработанной программы польностью приведен в приложении А, результат работы - в приложении Б.
ВЫВОДЫ
В результате выполнения курсовой работы рассматривались основные типы приложений на языке Java.
Были описаны способы создания апплетов, сервлетов, консольныхприложений и приведены конкретные примеры.
В процессе выполнения курсового проекта были достигнуты следующие цели:
обобщение, закрепление и углубление существующих теоретических и практических знаний по конкретной дисциплине;
использование этих знаний для обоснованного принятия проектных решений и для решения конкретных задач;
практическое закрепление навыков комплексной разработки компьютерных и информационных систем в целом и их базовых компонентов: аппаратного, программного, информационного обеспечения;
приобретение опыта в разработке, проектировании и оформлении проектной документации, пояснительных записок.
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
1. Хабрахабр. - Москва, 2006. - [Цыт. 2012, 14 мая]. - Дocтyпныйпо: <http://habrahabr.ru/>.
2. Википедия - свободнаяэнциклопедия. - Москва, 2006. - [Цыт. 2014, 2 декабря]. - Дocтyпный по: <https://ru.wikipedia.org>.
3. Java. Экспресс-курс. - Москва, 2010. - [Цыт. 2014, 2 мая]. - Дocтyпный по: <http://developer.alexanderklimov.ru/android/java/java.php>.
4. The Java™ Tutorials. - 1995. - [Cited 2014, 10September]. - Availablefrom: <https://docs.oracle.com/javase/tutorial/java/>.
5. WikiJava - избранные викифицированные ресурсы по Java. - Москва, 1998. - [Цыт. 2014, 5ноября]. - Дocтyпный по: <http://wikijava.org.ua/>.
ПРИЛОЖЕНИЕ А
А.1 - СonsoleApp.java
import java.io.*;
importjava.util.*;
public class ConsoleApp
{
public static void main(String args[])
{
System.out.print("Enteryourname: "); //выведем строку и перевод на следующую строку
Scanner in = new Scanner(System.in);
StringStr = in.next(); //считываем строку до первого пробела
System.out.println("\nHello, " + Str);
}
}
А.2 - AppletApp.java
import java.awt.*;
importjava.applet.Applet;
public class AppletApp extends Applet {
public String myString;
TextFieldmyField;
public void init() {
setLayout(new BorderLayout());
myField = new TextField();
myField.setEditable(false);
add("Center", myField);
}
public void setString(String s) {
myField.setText("Hello, "+s+" !");
}
}
А.3 - Applet.html
<html>
<head>
<meta charset="utf-8"/>
<title>Applet</title>
<link rel="stylesheet" media="all" href="css/style.css"/>
</head>
<body>
<div id="main">
<div class="wrapper clearfix">
<h2 class="page-heading"><span>Введитесвоеимя:</span></h2>
<div id="page-content" class="clearfix">
<FORM id="contactForm">
<fieldset>
<div>
<input TYPE="text" NAME=mytext id="name" class="form-poshytip" title="Введитесвоеимя" />
</div>
<p><input TYPE="button" VALUE="Получитьприветствие" onClick="document.applets[0].setString(this.form.mytext.value)"type="button" value="Send" name="submit" id="submit" /></p>
<APPLET CODE=AppletApp.class WIDTH=150 HEIGHT=25></APPLET>
</fieldset>
</FORM>
</div>
</div>
</div>
</body>
</html>
А.4 - ServletApp.java
import java.io.*;
importjavax.servlet.*;
importjavax.servlet.http.*;
importjava.lang.Math.*;
public class Example extends HttpServlet {
public void doGet(HttpServletRequestreq, HttpServletResponseresp) throws ServletException, IOException {
String Name=req.getParameter("name");
resp.setContentType("text/html");
PrintWriter pw = resp.getWriter();
pw.println("<html><head><title>Servlet");
pw.println("</title><link rel='stylesheet' media='all' href='css/style.css'/></head><body>");
pw.println("<div id='main'><div class='wrapper clearfix'><h2 class='page-heading'>");
pw.println("<span>Hello, "+Name+" !</span></h2>");
pw.println("</div></div></body></html>");
pw.close();
}
}
А.5 - Servlet.html
<html>
<head>
<meta charset="utf-8"/>
<title>Servlet</title>
<link rel="stylesheet" media="all" href="css/style.css"/>
</head>
<body>
<div id="main">
<div class="wrapper clearfix">
<h2 class="page-heading"><span>Введитесвоеимя:</span></h2>
<div id="page-content" class="clearfix">
<FORM id="contactForm" action="http://127.0.0.1:8080/ex3/c" method=Get>
<fieldset>
<div>
<input type=text size=20 name=name id="name" class="form-poshytip" title="Введитеимя"/>
</div>
<p><input TYPE=submit id="submit" /></p>
</fieldset>
</FORM>
</div>
</div>
</div>
</body>
</html>
А.6 - web.xml
<!DOCTYPE web-app PUBLIC '-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN' 'http://java.sun.com/dtd/web-app_2_3.dtd'>
<web-app>
<display-name>Servlet</display-name>
<description>Hello servlet</description>
<servlet>
<servlet-name>Example</servlet-name>
<servlet-class>Example</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Example</servlet-name>
<url-pattern>/c</url-pattern>
</servlet-mapping>
</web-app>
ПРИЛОЖЕНИЕ Б
Рисунок Б.1 - Результаты работы консольного приложения
Рисунок Б.2 - Результаты работы апплета
Рисунок Б.3 - Результаты работы апплета
Рисунок Б.4 - Результаты работы сервлета
Рисунок Б.5 - Результаты работы сервлета
Размещено на Allbest.ru
Подобные документы
Архитектура Java и Java RMI, их основные свойства, базовая система и элементы. Безопасность и виртуальная Java-машина. Интерфейс Java API. Пример использования приложения RMI. Работа с программой "Calculator". Универсальность, портативность платформ.
курсовая работа [208,6 K], добавлен 03.12.2013История создания языка Java. Основные принципы объектно-ориентированного программирования. Структура, особенности синтаксиса и примеры прикладных возможностей использования языка Java, его преимущества. Перспективы работы программистом на языке Java.
курсовая работа [795,9 K], добавлен 14.12.2012Java Runtime Environment - минимальная реализация виртуальной машины, необходимая для исполнения приложений, без компилятора и других средств разработки. Компиляция исходного кода через командную строку. Основные моменты создания игрового 2d-приложения.
курсовая работа [2,1 M], добавлен 26.04.2014Особенности архитектуры Java. Технология Java Database Connectivity. Кроссплатформенность Java-приложений. Преимущества языка программирования. Логическая структура базы данных. Структура программного комплекса. Верификация программных средств.
курсовая работа [962,8 K], добавлен 13.01.2016Трансляция как процесс перевода программного кода из текстовой формы в машинные коды. Основные категории программ Java. Основные управляющие операторы. Объявление и инициализация переменных. Основные средства разработки приложений, написанных на Java.
презентация [938,2 K], добавлен 26.10.2013Создание языка программирования с помощью приложения "Java". История названия и эмблемы Java. Обзор многообразия современных текстовых редакторов. Обработка строки. Методы в классе String. Java: задачи по обработке текста. Примеры программирования.
курсовая работа [276,1 K], добавлен 19.07.2014Архитектура уровня команд платформы Java, формат файла класса Java. Компилятор ассемблероподобного языка, позволяющий создавать файлы классов, корректно обрабатываемые реальной JVM, поддерживающий все команды байт-кода Java и важнейшие возможности JVM.
курсовая работа [292,6 K], добавлен 17.09.2008Преимущество использования программ, написанных на Java, требования к ним и настройки на клиентском ПК. Развертывание и последующее "автоматическое" обновление версий GUI клиента с помощью использования технологии Java Web Start в среде Windows.
реферат [33,2 K], добавлен 16.05.2011Изучение объектно-ориентированного языка программирования Java, его функциональные возможности. Создание программного кода. Описание классов и методов, использованных в программе. Руководство пользователя, запуск сервера и клиентского приложения.
курсовая работа [1,8 M], добавлен 16.09.2015История развития языка программирования Java. История тетриса - культовой компьютерной игры, изобретённой в СССР. Правила проведения игры, особенности начисления очков. Создание интерфейса программы, ее реализация в среде Java, кодирование, тестирование.
курсовая работа [168,1 K], добавлен 27.09.2013