на тему рефераты Информационно-образоательный портал
Рефераты, курсовые, дипломы, научные работы,
на тему рефераты
на тему рефераты
МЕНЮ|
на тему рефераты
поиск
Разработка прикладной программы тестового контроля с использованием технологий JSP и сервлетов
Устанавливать информацию о регионе.

· Объекты 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 Технология JavaBeans

JavaBean-компоненты - это 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-страниц и классов JavaBeans

JSP страницы и классы 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



© 2003-2013
Рефераты бесплатно, курсовые, рефераты биология, большая бибилиотека рефератов, дипломы, научные работы, рефераты право, рефераты, рефераты скачать, рефераты литература, курсовые работы, реферат, доклады, рефераты медицина, рефераты на тему, сочинения, реферат бесплатно, рефераты авиация, рефераты психология, рефераты математика, рефераты кулинария, рефераты логистика, рефераты анатомия, рефераты маркетинг, рефераты релиния, рефераты социология, рефераты менеджемент.