Устанавливать информацию о регионе.· Объекты HTTP-ответа HttpServletResponse имеют поля, отображающие такие заголовки HTTP какo Коды статуса (Status codes), используются для обозначения причины, по которой не был удовлетворен запрос.o Файлы сookie (Cookies), используются для сохранения у клиента информации, связанной с приложением. Иногда файлы cookie используются для сохранения идентификатора сессии пользователя.1.6 Технология Java Server PagesТехнология JSP-страниц (JavaServer Pages - JSP) позволяет без труда создавать web-содержимое, у которого есть как статическая, так и динамическая компоненты. JSP-технология воплощает все динамические возможности Java Servlet-технологии, однако обеспечивает при этом более естественный подход к созданию постоянного содержимого. Основными характеристиками JSP-технологии являются:· Язык разработки JSP-страниц, являющихся текстовыми документами, которые описывают процесс обработки запроса и конструирование ответа.· Конструкции для получения доступа к объектам на стороне сервера.· Механизмы, определяющие расширения для JSP-языка.JSP-страницей является документ с текстовой основой, содержащий два типа текста: статические шаблонные данные, выражаемые при помощи любого формата на текстовой основе, такого как HTML, SVG, WML, и XML, а также JSP-элементы, которые создают динамическое содержимое. Статическое содержимое создается в JSP-странице так же, как если бы это была обычная страница, содержащая только текстовый формат данных. Статическое содержимое может быть выражено в любом формате, предназначенном для форматирования текстов, к примеру, HTML, WML и XML. Форматом, определенным по-умолчанию, является HTML. При желании можно использовать и другой формат текста. Для этого включите в начало вашей JSP-страницы директиву page с атрибутом contentType, которому в качестве значения следует установить тип формата.Динамическое содержимое создается путем обращения к объектам языка программирования Java из элементов сценариев.Из JSP-страницы можно получить доступ к различным объектам, включая корпоративные компоненты и JavaBean-компоненты. JSP-технология автоматически организует доступ к определенным объектам так, что можно создавать объекты-приложения и обращаться к ним из JSP-страницы.По возможности, режим работы приложения следует инкапсулировать в объекты так, чтобы создатели страниц могли сфокусироваться на аспектах представления. Объекты могут создаваться разработчиками, которые являются профессионалами в программировании Java и в получении доступа к базам данных и другим службам. Существует четыре способа для создания и использования объектов в JSP-странице.· Переменные экземпляра и класса, относящиеся к классу сервлета JSP-страницы, создаются в объявлениях и доступны в скриптлетах и выражениях.· Локальные переменные класса сервлета JSP-страницы создаются и используются в скриптлетах и выражениях.· Атрибуты объектов области действия создаются и используются в скриптлетах и выражениях.· JavaBean-компоненты могут создаваться и быть доступными при помощи модернизированных JSP-элементов.Вы также можете создавать JavaBean-компонент в объявлении или скриптлете и вызывать методы JavaBean-компонента в скриптлете или выражении. JSP-скриптлет используется для хранения какого-либо фрагмента кода, действительного для языка сценариев, используемого в данной странице. Синтаксис для скриптлета выглядит следующим образом:<%scripting language statements%>Когда языком сценариев является java, скриптлет трансформируется во фрагмент выражения языка Java и вставляется в метод service сервлета JSP-страницы. Переменная языка программирования, созданная в скриптлете, доступна из любой точки JSP-страницы. JSP-выражение используется для вставки в поток данных, возвращаемый клиенту, значения выражения языка сценариев, конвертированного в строку. Когда языком написания сценариев является Java, выражение преобразовывается в оператор, конвертирующий значение выражения в объект String и вставляющий его в неявный объект out. Синтаксис такого выражения выглядит следующим образом:<%= scripting language expression %>Использование точки с запятой в JSP-выражениях запрещено, даже в тех случаях, когда у такого же выражения, используемого в скриптлете, она присутствует. 1.7 Технология JavaBeansJavaBean-компоненты - это Java-классы многократного использования, которые можно объединять в приложения. Любой Java-класс, который удовлетворяет определенным правилам создания, можно считать JavaBean-компонентом.Технология страниц JavaServer поддерживает использование JavaBean-компонентов с элементами языка JSP. Вы можете легко создавать и инициализировать компоненты, а также получать и устанавливать значения их свойств. Правила создания JavaBean-компонентов управляют свойствами класса и методами public, которые дают доступ к свойствам.В качестве свойств JavaBean-компонентов могут быть:· Чтение/запись, только чтение или только запись· Простой (JavaBean-компонент), в этом случае он содержит одно значение или индексированный, то есть представляющий массив значенийРеализация свойства при помощи переменной экземпляра не является необходимым. К свойству просто должен осуществляться доступ с помощью методов public, удовлетворяющих определенным условиям:· Для каждого читаемого свойства у компонента должен быть метод, вида: PropertyClass getProperty() { ... }· Для каждого записываемого свойства у компонента должен быть метод, вида: setProperty(PropertyClass pc) { ... }Кроме методов свойств, JavaBean-компонент должен определять конструктор, у которого нет параметров.Элемент jsp:useBean объявляет, что в странице будет использован компонент, который хранится, и к которому есть доступ из определенной области действия. Такой областью действия может быть приложение, сессия, запрос или страница. Если такого компонента не существует, выражение само создает компонент и хранит его как атрибут объекта области действия. Значение атрибута id определяет имя компонента в области действия и идентификатор, используемый для того, чтобы ссылаться на компонент из других JSP-элементов и скриптлетов.2 Проект программного продукта2.1 Документация проекта2.1.1 Общая функциональность программного продуктаПри разработке данного программного продукта была избрана концепция визуального моделирование проекта, реализованная при помощи языка моделирования UML. В качестве среды проектирования была выбрана Ration Rose. Сначала была создана диаграмма вариантов использования, описывающая общую функциональность данного программного продукта.Рис 2.1 Диаграмма вариантов использования На данной диаграмме отображено взаимодействие программы с различными актерами. Существует три типа пользователей: администратор, преподаватель, студент. Администратору доступны такие функции, как создание, изменение и удаление пользователей разных уровней. Преподавателю не доступны функции администратора, но доступны функции администрирования тестов и просмотра статистики их прохождения студентами. Студенту доступны лишь функции прохождения тестов и получения личной статистики. 2.1.2 Модель данныхДалее были разработаны модели данных о пользователях, тестах и статистики которые были описаны в DTD файлах Users.dtd, Tests.dtd и Stats.dtd. Users.dtd <!ELEMENT User (User_ID, FirstName, SecondName, Group, Position, Rank, Login, Password, Type, Date)> <!ELEMENT User_ID (#PCDATA)> <!ELEMENT FirstName (#PCDATA)> <!ELEMENT SecondName (#PCDATA)> <!ELEMENT Group (#PCDATA)> <!ELEMENT Position (#PCDATA)> <!ELEMENT Rank (#PCDATA)> <!ELEMENT Login (#PCDATA)> <!ELEMENT Password (#PCDATA)> <!ELEMENT Type (#PCDATA)> <!ELEMENT Date (#PCDATA)> <!ELEMENT Users (User+)> Корневым элементом данной структуры является Users, который представляет информацию о всех пользователях. Информация о конкретном пользователе находиться в элементе User, который в свою очередь содержит поля User_ID, FirstName, SecondName, Group, Position, Rank, Login, Password, Type, Date. Все элементы отображают различные характеристики пользователя, и являются обычными текстовыми полями. Tests.dtd <!ELEMENT Test (Test_ID, Subject, Teacher, Questions, Time_Limit)> <!ELEMENT Test_ID (#PCDATA)> <!ELEMENT Subject (#PCDATA)> <!ELEMENT Teacher (#PCDATA)> <!ELEMENT Question (Quest_ID, Text,Quont_ Ans,Answers, Right_Ans_ID)> <!ELEMENT Time_Limit (#PCDATA)> <!ELEMENT Quest_ID (#PCDATA)> <!ELEMENT Text (#PCDATA)> <!ELEMENT Quont_Ans (#PCDATA)> <!ELEMENT Answer (Ans_ID, Ans_Text, Correctness)> <!ELEMENT Right_Ans_ID (#PCDATA)> <!ELEMENT Ans_ID (#PCDATA)> <!ELEMENT Ans_Text (#PCDATA)> <!ELEMENT Correctness (#PCDATA)> <!ELEMENT Answers (Answer+)> <!ELEMENT Questions (Question+)> <!ELEMENT Tests (Test+)> Поле Tests является корневым и содержит информацию о всех тестах. Информация о конкретном тесте содержится в элементе Test, он включает в себя атрибуты Test_ID, Subject, Teacher, Time_Limit, а также вложенный элемент Questions, который содержит информацию о вопросах. Информация о конкретном вопросе содержится в элементе Question, он включает в себя атрибуты Quest_ID, Text,Quont_ Ans, Right_Ans_ID, а также вложенный элемент Answers, содержащий информацию о ответах на данный вопрос. Информация о конкретном ответа содержится в элементе Answer, который характеризуется полями Ans_ID, Ans_Text, Correctness. Stats.dtd <!ELEMENT Stat (S_Stat_ID,S_User_ID,S_Test_ID,S_Questions)> <!ELEMENT S_Stat_ID (#PCDATA)> <!ELEMENT S_User_ID (#PCDATA)> <!ELEMENT S_Test_ID (#PCDATA)> <!ELEMENT S_Question (S_Quest_ID,S_Correctness)> <!ELEMENT S_Quest_ID (#PCDATA)> <!ELEMENT S_Correctness (#PCDATA)> <!ELEMENT S_Questions (S_Question+)> <!ELEMENT Stats (Stat+)> Поле Stats является корневым и содержит информацию о всех пройденных тестах. Статистика прохождения конкретного теста содержится в элементе Stat, он включает в себя атрибуты S_Stat_ID,S_User_ID,S_Test_ID, а также вложенный элемент S_Questions, который содержит информацию о корректности ответов, которые давал студент при ответах на вопросы. 2.1.3 Объектная модель приложенияДиаграммы классов изображенные на рисунках 2.2, 2.3, 2.4 отображают объектную модель части приложения для работы с пользователями, тестами и статистикой соответственно. Класс XMLLogin отвечает за работу с XML файлом, в котором хранятся данные о пользователях. Данный класс реализует основную функциональность администратора . Функция addUser() добавляет нового пользователя, в качестве параметров получает данные, отображающие все его характеристики (User_ID, FirstName, SecondName, Group, Position, Rank, Login, Password, Type, Date). Функция removeUser() удаляет пользователя, номер которого передается в качестве параметра. Функция modifyUser() изменяет данные о конкретном пользователе, в качестве параметров получает номер пользователя и значение характеристик. Функция readData() читает данные из файла, имя которого храниться в поле fileName и записывает их в поле Users, которое является контейнером для хранения данных. Классы User_ID, FirstName, SecondName, Group, Position, Rank, Login, Password, Type, Date были сгенерированы автоматически при помощи среды разработки Jbuilder 8.0 на основе модели данных и используются для хранения и удобной работы с данными. Каждый класс хранит информацию о соответствующем элементе. Функция newUser() является private-функцией и используется для создания объекта типа User. рис 2.1 Диаграмма классов XMLLogin и TypeBean Класс XMLTests отвечает за работу с данными о тестах. Данный класс реализует основную функциональность преподавателя. Функция addTest() добавляет новый тест, в качестве параметров получает данные, отображающие все его характеристики (Test_ID, Subject, Teacher, Questions, Time_Limit). Функция removeTest() удаляет тест, номер которого передается в качестве параметра. Функция readData() читает данные из файла, имя которого храниться в поле fileName и записывает их в поле Tests, которое является контейнером для хранения данных. Классы Test_ID, Subject, Teacher, Questions, Time_Limit были сгенерированы автоматически при помощи среды разработки Jbuilder 8.0 на основе модели данных и используются для хранения и удобной работы с данными. Каждый класс хранит информацию о соответствующем элементе. Функция newTest() является private-функцией и используется для создания объекта типа Test. рис 2.2 Диаграмма классов XMLTests и TestsBean рис 2.3 Диаграмма классов XMLStats и StatsBean 2.1.4 Архитектура программного обеспечениярис 2.5 Архитектура программного обеспечения Программное обеспечение имеет двухуровневую структуру. На верхнем уровне находиться программное обеспечение реализованное в виде сервлета или JSP-страницы. Нижний уровень представляет собой ПК клиента на котором установлен Web-браузер. Данные на сервере хранятся в XML-файлах. При обращении к серверу работа с данными на JSP-страницах осуществляется через классы JavaBeans (TypeBean, TestsBean, StatsBean), которые в свою очередь обращаются к классам XMLLogin, XMLTests и XMLStats. Таким образом достигается большая независимость уровня данных от уровня приложений. Т.к. классы JavaBeans, находящиеся на внешнем уровне не взаимодействуют непосредственно с файлами данных, то при изменении способа хранения данных будут затронуты только классы XMLLogin, XMLTests и XMLStats, которые отвечают за хранение и изменение данных. Таким образом программное обеспечение становиться более «гибким» и легко изменяемым. Пользователь взаимодействует только со внешним уровнем ПО, представленного JSP-страницами. 2.1.5 Структура прикладной программыПеред непосредственным созданием JSP страниц необходимо уяснить общую структуру программы и взаимодействие между страницами.рис 2.6. Диаграмма навигацийРабота с программой начинается со страницы login.jsp. рис 2.7. Начальная страница программы login.jspПри правильном вводе логина и пароля пользователь попадает на страницу main.jsp, которая направляет в зависимости от его прав на страницы admin.jsp, teacher.jsp и testspassing.jsp. Страница администратора admin.jsp позволяет создавать, редактировать и удалять пользователей. Страница преподавателя teacher.jsp позволяет создавать, редактировать и удалять тесты, вопросы и ответы к ним, просматривать статистику проведения тестового контроля. Страница студента testspassign.jsp позволяет студенту выбрать тест для прохождения и просматривать информацию о пройденных им тестах.2.1.6 Проектирование интерфейса пользователяИнтерфейс проектируется исходя из диаграммы навигаций. На странице login.jsp необходимо реализовать форму с полями для ввода логина и пароля (рис 2.7). Т.к. с главной страницы возможен переход на все остальные, а со всех страниц возможен возврат на главную страницу, то целесообразно реализовать меню навигации по сайту на каждой странице (см. рис 2.8). На страница admin.jsp, teacher.jsp и testpassing.jsp необходимо реализовать таблицы просмотра информации и формы для добавления, редактирования и удаления различных данных .рис 2.8. Страница admin.jsp (меню - слево, таблица и форма - справа)3 разработка и тестирование проекта3.1 Разработка классов для работы с даннымиВ начале были разработаны классы, которые служат для хранения, удобного доступа и редактирования данных. Среда разработки Borland JBuilder 8.0, на которой разрабатывался данный программный продукт, позволяет автоматически генерировать классы для хранения и доступа к информации. Таким образом были сгенерированы классы описанные в п.2 данной записки, каждый из которых отвечает за хранение соответствующего элемента файлов Users.xml, Tests.xml и Stats.xml. Для удобного добавления, удаления и редактирования данных были разработаны классы XMLLogin, XMLTests и XMLStats реализующие данные функции, описание данных класса приводиться в разделе 2.1.3. Работа данных классов была протестирована при помощи стандартной консоли. 3.2 Разработка JSP-страниц и классов JavaBeansJSP страницы и классы JavaBeans отвечают за хранение и выведение данных. Данные классы так же отвечают за обработку сообщений пользователя, т.е. обеспечивают непосредственные взаимодействие пользователя с программным продуктом. При разработке данных классов необходимо обращать внимание на обработку исключительных ситуаций. Информация об ошибках на сервере не должна быть доступна пользователю. Поэтому необходимо учитывать возможность некорректности ввода данных, а так же случаи, когда страницы, обрабатывающие запросы какой-либо формы вызываться непосредственно. Таким образом при работе с переменными, которые передаются в запросе формы, необходимо делать проверку на их существование.3.3 Интерфейс программного продуктаИнтерфейс пользователя был разработан с учетом всех пунктов, описанных в пункте 2.1.6. В зависимости от прав пользователя интерфейс видоизменяется. Неизменным остается лишь навигационное меню в левой части страницы. При попытке обращения пользователя, на страницу с ограниченным для него доступом произойдет переадресация на начальную страницу с выводом информации о некорректном доступе. На странице администратора расположена информация о всех пользователях приложения. Для изменения информации о конкретном пользователи необходимо нажать на ссылку с его идентификационным номером в таблице. Для удаления пользователя следует нажать на кнопку «-» в соответствующей пользователю строке таблицы. Для добавления реализована форма расположенная справа от таблицы.Логика интерфейса пользователя для администратора используется и на страницах преподавателя и студента. Исключение составляет страница студента, на которой вместо формы добавления данных существует таблица личной статистики. Прохождение тестов для студента реализовано в виде последовательной смены вопросов (рис 3.1). По окончанию тестирования пользователь получает информацию в виде таблицы о правильности ответов на каждый из поставленных вопросом и получает оценку.рис 3.1. Страница прохождения тестированияВЫВОДЫВ рамках данной курсовой работы было спроектировано и реализовано Web-ориентированное приложение, предназначенное для проведения тестового контроля знаний студентов. При разработке использовались технологии сервлетов и JSP. Для хранения данных был избран язык разметки XML.Основной особенностью Web-службы является способность участников взаимодействовать друг с другом даже при использовании ими различных информационных систем. XML обеспечивает легкую переносимость данных, что является ключевой технологией, предназначенной для обеспечения такой способности. Также Web-службы зависят от способности предприятий использовать различные вычислительные платформы для взаимодействия друг с другом. Это требование делает платформу Java™, программы в которой являются переносимыми, естественным выбором для разработки Web-служб. При разработке была разработана двухуровневая структура программного обеспечения. На верхнем уровне находиться программное обеспечение реализованное в виде сервлета или JSP-страницы. Нижний уровень представляет собой ПК клиента на котором установлен Web-браузер. Что качается серверной части приложения, то ее структуру также можно разбить на несколько слоев. Уровень данных представлен XML-файлами. С уровнем данных работают непосредственно только классы XMLLogin, XMLTests и XMLStats. Классы, которые отвечают за конечное представление информации на JSP страницах не работают с данными непосредственно, а только через методы классов XMLLogin, XMLTests и XMLStats. Таким образом изменение на уровне данных не повлияет на уровень представления информации, что делает программный продукт более гибким и легко изменяемым.СПИСОК использованных источников1. Эккель Б. Философия Java. Библиотека программиста. - СПб.: Питер, 2001. - 880 с.: ил.2. Буч Г. Объектно-ориентированный анализ и проектирование. 2-е изд. Пер. с англ. - М.: «Издательство Бином», 1998 - 560с.: ил.3. Хабибуллин И. Ш. Создание распределённых приложений на Java 2. - СПб.: БХВ-Петербург, 2001 г. - 688с.: ил.4. Хантер. Д. Введение в XML. - СПб.: Лори, 2001. - 656с.:ил.5. Х.М. Дейтел, П.Дж. Дейтел, Т.Р. Нието, Т.М. Лин, П. Садху. Как программировать на XML. Пер. с англ. -- М.: ЗАО «Издательство БИНОМ», 2001 г. - 944 с.: ил.
Страницы: 1, 2, 3
|