Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Королев Лабораторая работа применение современных опен-соурце

.pdf
Скачиваний:
2
Добавлен:
12.11.2022
Размер:
1.43 Mб
Скачать

Задание 2. Программные компоненты для внесения анкетных данных в БД

Страница AnketsMenu.xhtml выдает пользователю окно формы, соответствующее представленному на рис. 3.4 в разделе «Разработка пользовательского интерфейса» настоящего учебного пособия. При помощи этой формы пользователь может выбрать дисциплину и конкретное занятие по ней для введения анкетных данных. Страница AnketsMenu.xhtml работает с классами Student,

DisciplineBean, Zanyatie, ZanyatieBean, AnketaForZan (см. рис. 5.3).

Класс Student должен осуществлять поддержку хранения профильных данных по студенту в течение всей сессии пользователя и отображение их на экран.

Страница AnketsMenu.xhtml должна связываться с классом DisciplineBean, брать от него данные по дисциплинам и выводить их на экран в виде выпадающего списка.

Класс DisciplineBean представляет собой ManagedBean с

видимостью SessionScoped и осуществляет выбор всех дисциплин,

имеющихся в БД в таблице disciplines, возвращая их в виде списка

SelectItem.

После выбора дисциплины на интерфейс пользователю должны выводиться все проведенные занятия по этой дисциплине в двух таблицах – отдельно для лекций и для семинаров. Для каждого занятия должна быть представлена его тема и дата проведения. Также у каждого занятия должна стоять ссылка на анкету для этого типа занятия. При этом система должна видеть, заполнял ли уже данный пользователь анкету по конкретному занятию, и если заполнял, то не выдавать ссылки на анкету, а вместо этого писать серым цветом (аналог погашенной ссылки) строку «Анкета заполнена».

Данные о лекциях и о семинарах целесообразно отобразить на интерфейсе в виде структуры DataTable. За выдачу данных о занятиях отвечает класс ZanyatieBean, являющийся ManagedBean с видимостью SessionScoped. Данный класс осуществляет выбор всех занятий для указанной пользователем дисциплины по первичному ключу этой дисциплины и возвращает результат в виде списка занятий.

41

Определение статуса заполнения анкеты должно осуществляться с помощью метода anketaStatus класса ZanyatieBean. Данный метод соединяется с БД и осуществляет поиск в таблице lections_ankets на предмет наличия записи с ID занятия и ID студента. Если такой записи не обнаружено, то метод возвращает 0, если запись есть – 1.

При получении значения 0 программа AnketsMenu.xhtml отрисовывает у занятия ссылку «Заполнить анкету». Ссылка переводит на метод fillLecAnketa класса AnketaForZan, передавая ему в качестве параметров ID занятия, тему занятия и название дисциплины. При получении значения 1 программа AnketsMenu.xhtml не прорисовывает у занятия ссылку на анкету, выводя надпись «Анкета заполнена».

При нажатии на ссылку «Заполнить анкету» срабатывает метод fillLecAnketa класса AnketaForZan, который возвращает либо значение «blankLec», при работе с лекциями, либо «blankSem», при работе с семинарами. Данный метод призван только обеспечить управление навигацией, которая при значении «blankLec» осуществляется на страницу AnketaForLec.xhtml, а при значении

«blankSem» – на AnketaForSem.xhtml.

После перехода на страницу AnketaForLec.xhtml пользователю выдается анкета для выбранной им лекции. В анкете присутствуют вопросы, полностью описанные в разделе «Разработка пользовательского интерфейса» настоящего учебного пособия и оценочная шкала от 1 до 5 для выбора соответствующей оценки. То же самое верно для семинаров.

AnketaForLec.xhtml взаимодействует с классом AnketaLecData, который является ManagedBean с видимостью RequestScoped. Этот класс собирает все оценки и заносит их в БД в таблицу lections_ankets (для лекций) или seminar_ankets (для семи-

наров) при помощи метода insertIntoDB. При успешном внесении информации в БД метод возвращает значение «insertOK», по которому осуществляется навигация обратно на страницу AnketsMenu.xhtml, на которой пользователь может либо продолжить заполнение анкет по другим занятиям, либо выйти из системы.

42

Задание 3. Программные компоненты обработки анкетных данных и вывода результатов

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

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

Также пропишите навигацию между интерфейсными окнами, представленными на рис. 3.6, 3.7, 3.8.

Задание 4. Отладка созданных программ

Проверьте созданный код на наличие ошибок и скомпилируйте его. Тестирование кода нужно провести после того, как разработчик БД предоставит свой результат в виде файла БД под управлением соответствующей СУБД.

43

ЛАБОРАТОРНАЯ РАБОТА № 6

РАЗВЕРТЫВАНИЕ И ТЕСТИРОВАНИЕ ПРОГРАММНОЙ СИСТЕМЫ

6.1. Цель работы

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

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

6.2. Теоретические сведения, необходимые для выполнения работы

Разработанная по результатам выполнения предыдущих за-

даний система является веб-приложением, которое имеет типовую структуру. В среде разработки Eclipse эта структура видна слева, в

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

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

структурой разрабатываемого веб-приложения осуществлялось автоматизировано – среда Eclipse сама размещала файлы по нужным каталогам, загружала исполняемые модули в ApacheTomcat и т.д.

Внастоящей работе необходимо взять готовое приложение,

вкаком-то смысле «отсоединив» его от среды разработки, и самостоятельно развернуть его в контейнере ApacheTomcat. Эта задача

является неотъемлемой частью процесса разработки вебприложений, так как все они обычно разворачиваются на веб-

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

сборку веб-приложения в архив .war. Этот архив содержит все каталоги веб-приложения и управлять им намного легче.

Так как наше веб-приложение содержит еще БД, то, по идее, ее тоже нужно «отсоединить» от СУБД на машине разработ-

44

чика и перенести на сервер. На сервере должна стоять аналогичная СУБД, которая могла бы «подхватить» разработанную БД и начать управлять ею. В данной работе мы не будем заниматься процессом переноса БД. Это не должно вызвать особых трудностей, так как БД, в большинстве случаев, представляет собой один файл, и процесс его «отсоединения – присоединения» по отношению к СУБД обычно хорошо отработан.

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

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

Eclipse ApacheTomcat.

ApacheTomcat является контейнером сервлетов, их средой исполнения. Он осуществляет функции обработки пользовательских запросов, приходящих по протоколу HTTP, и направления их на соответствующие сервлеты. Кроме этого, он осуществляет дополнительные функции поддержки функционирования сервлетов.

На рис. 6.1 представлено архитектурное описание деятельности по развертыванию и тестированию программной системы.

Рис. 6.1. Деятельность по развертыванию и тестированию программной системы

45

6.3.Рабочее задание

1.Выполните редактирование конфигурационного файла web.xml, находящегося в каталоге Web Pages вашего проекта (см.

рис. 5.3), указав необходимый путь запуска веб-приложения. Если оставляете путь по умолчанию, то он будет следующим: к ip-адресу

сервера http://localhost:8080 будет приписан адрес индексного фай-

ла приложения – /Anketa/faces/index.jsp.

2. Осуществите сборку веб-приложения в архив .jar или .war при помощи Eclipse.

Для этого нужно зайти в выпадающее меню, нажав на проекте в окне проводника Eclipse правой кнопкой мыши. В выпадающем меню выбрать Export -> WAR File. Откроется окно экспорта

проекта в архивный файл .war. В нем нужно ввести путь, по которому будет записан файл, и нажать на кнопку Finish.

3.Загрузите файл архива с веб-приложением в «чистый», не привязанный к среде Eclipse, контейнер сервлетов ApacheTomcat, в каталог webapps. Путь к этому каталогу, к примеру, может быть таким: C:\Program Files\Java\apache-tomcat-7.0.14\webapps.

4.Загрузите бинарный файл БД в СУБД PostgreSQL, развернутую на сервере. Для этого в PostgreSQL нужно сначала создать новую БД с именем anketa, затем кликнуть по ней правой

кнопкой мыши и выбрать в контекстном меню «Восстановить».

После этого указать путь к бинарному файлу БД.

5. Запустите ApacheTomcat (исполняемый файл находится в директории bin).

6. Откройте интернет-браузер и введите в строке адреса путь к index-файлу веб-приложения. Проверьте работоспособность веб-приложения.

Если тестировать веб-приложение с того же компьютера,

на котором оно развернуто, то в браузере можно вводить путь http://localhost:8080/Anketa/faces/index.jsp, если тестировать с дру-

гих компьютеров локальной сети, то путь изменится на http://[ip- адрес компьютера, на котором развернуто веб-

приложение]:8080/Anketa_v3/faces/index.jsp.

46

КОНТРОЛЬНЫЕ ВОПРОСЫ

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

2.Опишите основные шаги построения архитектур при помощи Archi.

3.Как управлять форматом элементов диаграммы в Archi (изменение цвета фона, шрифта для отображения объектов, вида связей и т.п.)?

4.В каком виде можно создавать отчет по построенным диаграммам в Archi?

5.Опишите структуру и интерфейс СУБД PostgreSQL

9.x. Как создать в указанной СУБД новую БД?

6.Что такое модель данных? Назовите основные структуры данных реляционной модели данных.

7.Опишите структуру таблиц в реляционной модели.

Как создавать таблицы и устанавливать их свойства при помощи плагина Eclipse ERMaster?

8.Дайте определение и укажите назначение ключей. Какие бывают виды ключей. Как создавать ключи в Eclipse ERMaster?

9.Дайте определение связи. Приведите примеры типов

связей. Как создать связь и определить ее свойства при помощи

Eclipse ERMaster? Приведите пример.

10. Дайте определение и укажите назначение представле-

ний (View). Как создать отображение и провести его настройку при помощи Eclipse ERMaster? Приведите пример.

11.Приведите структуру типового веб-приложения.

12.Что из себя представляет и для чего используется программное средство ApacheTomcat?

47

СПИСОК ЛИТЕРАТУРЫ

Основной

1.Фаулер М. Архитектура корпоративных программных при-

ложений. – М.: Вильямс, 2006.

2. ISO/IEC 15288 (IEEE Std 15288-2008) Systems and software engineering System life cycle processes («Системная и программная инженерия. – Практики жизненного цикла системы»).

3.ArchiMate 1.0 Specification. – The Open Group, 2009.

4.Сайт, посвященный изучению HTML: http://htmlbook.ru/

5.Прохоренок Н.А. HTML, javascript, PHP и MySQL.

Джентльменский набор Web-мастера. – БХВ-Петербург, 2011.

6.Лоусон Б., Шарп Р. Изучаем HTML5. – СПб.: Питер,

2011.

7.Кренке Д. Теория и практика построения баз данных. – СПб.: Питер, 2003.

8.Селко Джо. Стиль программирования Джо Селко на SQL. – СПб.: Питер, 2006.

9.Когаловский М.Р. Энциклопедия технологий баз данных. – М.: Финансы и статистика, 2002.

Дополнительный

10. Курняван Б. Создание WEB-приложений на языке Java с помощью сервлетов, JSP и EJB – М.: Лори, 2009

11.Мюллер Р. Дж. Базы данных и UML. – М.: Лори, 2002.

12.Гранд М. Шаблоны проектирования в Java. – М.: Новое издание, 2004.

13.Коберн А. Современные методы описания функциональных требований к системам. – М.: Лори, 2002.

14.Фаулер М., Скотт К. UML. Основы. – СПб.: Символ Плюс, 2002.

15.Ларман, Крэг. Применение UML и шаблонов проектирования. – М.: Вильямс, 2004.

48

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]