Реферат по предмету "Информатика, программирование"


Разработка прикладной программы тестового контроля с использованием технологий JSP и сервлетов

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ ТЕХНІЧНИЙ УНІВЕРСИТЕТ
“ХАРКІВСЬКИЙ ПОЛІТЕХНІЧНИЙ ІНСТИТУТ”
Кафедра “Автоматизовані системи управління”
Курсовий проект
“Розробкаприкладної програми тестового контролю з використанням технологій JSP та сервлетів”.
 
Керівник роботи:
асистент кафедри АСУ /xxxxxx/
Виконавець:
студент групи xxxxxxx
Харків – 2004

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ ТЕХНІЧНИЙ УНІВЕРСИТЕТ
“ХАРКІВСЬКИЙ ПОЛІТЕХНІЧНИЙ ІНСТИТУТ”
Кафедра “Автоматизовані системи управління”
Оцінка
_____________________
голова комісії
_____________________
«___»_________2004р.
Курсовий проект
Тема:“Розробка прикладноїпрограми тестового контролю з використанням технологій JSP та сервлетів”.
Керівник роботи:
асистент кафедри АСУ / xxxxxx./
“____”______________2004р.
Виконавець:
студент групи xxxxxxx
“____”______________2004р.
Харків – 2004

Національний технічний університет «Харківський політехнічнийінститут»
Кафедра автоматизованих систем управління
Студент xxxxxxx. Група xxxxxx в Курс 2
З А В Д А Н Н Я
на науково-дослідну курсову роботу
з курсу «Технологія програмування»
Тема:
Розробка прикладноїпрограми тестового контролю з використанням технологій JSP та сервлетів
Постановка задачі:
Під час виконання курсовоїроботи необхідно спроектувати та реалізувати програму, яка в залежності відправ користувача (адміністратор / викладач / студент) дозволяє:
1.        додавати, редагувати та видаляти дані прокористувачів різних рівнів (адміністратор);
2.        додавати, редагувати та видаляти тести, запитаннята відповіді, переглядати статистику проходження тестування студентів(викладач);
3.        проходити тести та переглядати особисту статистикуїх проходження (студент).
Доступ до програми повиненздійснюватися за допомогою web-броузеру. Засоби роботи з файлами та обробки даних повинні бути розташовані на web-сервері. Для розміщення сервернихкомпонентів застосувати контейнер сервлетів Tomcat, а для збереженняданих про користувачів, тести та статистику – файли XML.
Короткий зміст роботи:
а) реферативна частина
Вивченняпредметної області. Вивчення засобів мови Java для роботи з XML-файлами.Вивчення технологій JSP та сервлетів. Вивчення можливостей контейнеру сервлетівTomcat.
б) теоретична частина
Проектуванняпрограмного забезпечення. Визначення вимог щодо програмного забезпечення.Розробка діаграм варіантів використання, класів, послідовності. Проектуванняінтерфейсу користувача.
в) програмна частина
Реалізація консольноїпрограми для тестування роботи з XML-файлами. Реалізація та тестування програмиз використанням технологій JSP та сервлетів. Документуванняпрограмного продукту.
Термін демонстраціїпрограмного забезпечення 12.05.2004
Термін захисту курсовоїроботи 22.05.2004
Керівник курсової роботи _________________________(xxxxxxx.)

Отзыв
накурсовойпроект
студентагруппы xxxxxxxxx
Данный курсовой проект посвященразработке и реализации прикладной программы тестового контроля сиспользованием технологии JSP и сервлетов. При выполнении курсовой работы былиизучены методы работы с XML-файлами, технологии сервлетов, JSP, JavaBeans. Вовремя выполнения работы были закреплены знания о методах проектирования, обунифицированном языке моделирования (UML). Программный продукт разрабатывался врамках интегрированной среды разработки Borland JBuilder.
Студенту удалось реализоватьудобный и понятный интерфейс, разделить права пользователей, обеспечить защитупрограммы от несанкционированного доступа.
При выполнении даннойработы, студент Уманский А.Г. продемонстрировал инициативность исамостоятельность, освоил методы разработки web-ориентированныхприложений, выполнял отдельные этапы своей работы в рамках установленных сроков.
Курсовая работа полностьюотвечает поставленным требованиям и заслуживает оценки «____________»
Руководитель курсовой работы:              ____________асс. xxxxxxxx

АНОТАЦІЯ
Розробкаприкладної програми тестового контролю з використанням технологій JSP та сервлетів.
Курсовий проект по курсу «Технологіяпрограмування» за спеціальністю «Програмнезабезпечення автоматизованих систем», Національний Технічний Університет«Харківський Політехнічний Інститут», Харків 2004.
Даний курсовий проект присвячений розробці програмногозабезпечення створення тестів та їх проведення. Використовується технологіяJSP та сервлети. Для збереження даних використовується XML. На цій основірозроблено програмне забезпечення мовою Java у середовищі Borland JBuilder8.0.

АННОТАЦИЯ
Разработкаприкладной программы тестового контроля с использованием технологий JSP исервлетов.
Курсовойпроект по курсу «Технология программирования» специальности«Программное обеспечение автоматизированных систем», Национальный ТехническийУниверситет «Харьковский Политехнический Институт», Харьков 2004.
Данный курсовой проект посвященразработке программного обеспечения создания тестов и их проведения.Используется технология JSP и сервлетов. Для хранения данных используется XML.На этой основе разработано программное обеспечение на языке Java в средеBorland JBuilder 8.0.

ABSTRACT
Elaboration ofthe program of test control by means of JSP technologies and servlets.
An academicyear project in “Technology of programming” course; specialization “Software ofAutomatized Systems”, National Technical University “Kharkov PolytechnicalInstitute”, Kharkov 2004.
This academicyear project is devoted to elaboration of the software of test creation and theircarrying out. Technology JSP and servlets are used. XML is used for the datastorage. The software was developed by means of Java language in BorlandJBuilder environment.

СОДЕРЖАНИЕ
 
Введение
1   ОБЗОР СРЕДСТВ РАЗРАБОТКИПРОГРАММНОГО ПРОДУКТА
1.1                  Расширяемый язык разметки XML
1.2                  Описание типа документа DTD
1.3                  Значение XML и платформы Java
1.4                  Обзор стандартных анализаторов DOM и SAX
1.5                  Технология Java Servlet
1.6                  Технология Java Server Pages (JSP)
1.7                  Технология JavaBeans
2     Проект программногопродукта. Документация
2.1                  Общая функциональность программного продукта
2.2                  Модель данных
2.3                  Объектная модель приложения
2.4                  Архитектура программного обеспечения
2.5                  Структура прикладной программы
2.6                  Проектирование интерфейса пользователя
3    Разработка и тестированиепроекта
3.1                  Разработка классов для работы с данными
3.2                  Разработка JSP-страниц и классов JavaBeans
3.3                  Интерфейс программного продукта
Выводы
СПИСОК использованныхисточников
ВВЕДЕНИЕ
Задачей данного курсовогопроекта является разработка Web-ориентированногоприложения тестового контроля знаний студентов. Основной особенностью Web-приложений является использование их большим количествомпользователей, которые могут использовать различные операционные системы. Такимобразом должна обеспечивается независимость от платформы. Java,являясь многоплатформенным языком отлично справляется с данной задачей.
Тестовый контроль являетсянеотъемлемой частью современного учебного процесса. Программа создана дляавтоматизации данного процесса, получения расширенных возможностей сохранениярезультатов и ведения статистики тестирования. Процесс создания иадминистрирования тестами имеет иерархическую(или вложенную структуру), чтосделало его наглядным и простым. Работа проектировалась с учетом разделенияправ пользователей, что позволило оградить программу от несанкционированныхдоступов.
Все вышеизложенное говорит отом, что созданная прикладная программа в среде JBuilder 8.0 значительноускорит производительность труда преподавателей, сократит временные затратыстудентов на прохождение контроля, создаст предпосылки для достоверностиполученных оценок.
1         обзор средств разработки программного продукта
 1.1     Расширяемый язык разметки данных XML
XML (Extensible Markup Language)- это язык разметки, описывающий целый класс объектов данных, называемых XML-документами. Этот язык используется в качестве средства для описания грамматикидругих языков и контроля за правильностью составления документов. Т.е. сам посебе XML не содержит никаких тэгов, предназначенных для разметки, он простоопределяет порядок их создания. Набор тэгов может быть легко расширен. Cам процесс создания XML документа очень прост и требует отразработчика лишь базовых знаний HTML и понимания тех задач, которые необходимовыполнить, используя XML в качестве языка разметки. Таким образом, уразработчиков появляется уникальная возможность определять собственные команды,позволяющие им наиболее эффективно определять данные, содержащиеся в документе.Автор документа создает его структуру, строит необходимые связи междуэлементами, используя те команды, которые удовлетворяют его требованиям идобивается такого типа разметки, которое необходимо ему для выполнения операцийпросмотра, поиска, анализа документа.
Еще одним из очевидныхдостоинств XML является возможность использования его в качестве универсальногоязыка запросов к хранилищам информации. Кроме того, XML-документы могутвыступать в качестве уникального способа хранения данных, который включает всебя одновременно средства для разбора информации и представления ее на сторонеклиента. В этой области одним из перспективных направлений является интеграцияJava и XML — технологий, позволяющая использовать мощь обеих технологий припостроении машинно-независимых приложений, использующих, кроме того,универсальный формат данных при обмене информации.
XML позволяет также осуществлятьконтроль за корректностью данных, хранящихся в документах, производить проверкииерархических соотношений внутри документа и устанавливать единый стандарт наструктуру документов, содержимым которых могут быть самые различные данные. Этоозначает, что его можно использовать при построении сложных информационныхсистем, в которых очень важным является вопрос обмена информацией междуразличными приложениями, работающими в одной системе. Создавая структурумеханизма обмена информации в самом начале работы над проектом, менеджер можетизбавить себя в будущем от многих проблем, связанных с несовместимостьюиспользуемых различными компонентами системы форматов данных.
Тело документа XML состоит изэлементов разметки (markup) и непосредственно содержимого документа — данных(content). XML — тэги предназначены для определения элементов документа, ихатрибутов и других конструкций языка. 1.2     Описание типа документа DTD
В XML-документах DTD определяетнабор действительных элементов, идентифицирует элементы, которые могутнаходиться в других элементах, и определяет действительные атрибуты для каждогоиз них. Синтаксис DTD весьма своеобразен и от автора-разработчика требуютсядополнительные усилия при создании таких документов (сложность DTD являетсяодной из причин того, что использование SGML, требующего определение DTD длялюбого документа, не получило столь широкого распространения как, например,HTML). Как уже отмечалось, в XML использовать DTD не обязательно — документы,созданные без этих правил, будут правильно обрабатыватьсяпрограммой-анализатором, если они удовлетворяют основным требованиям синтаксисаXML. Однако контроль за типами элементов и корректностью отношений между ними вэтом случае будет полностью возлагаться на автора документа. До тех пор, покаграмматика XML-документа не описана, с ним не могутработать универсальные программы-анализаторы.
В DTD для XML используютсяследующие типы правил: правила для элементов и их атрибутов, описаниякатегорий(макроопределений), описание форматов бинарных данных. Все ониописывают основные конструкции языка — элементы, атрибуты, символьные константывнешние файлы бинарных данных.
Для того, чтобы использовать DTDв документе, необходимо или описать его во внешнем файле и при описании DTD простоуказать ссылку на этот файл или же непосредственно внутри самого документавыделить область, в которой определить нужные правила. В первом случае вдокументе указывается имя файла, содержащего DTD- описания:


...
Внутри же документа DTD-декларации включаются следующим образом:
...


...
]>
...
В том случае, если используютсяодновременно внутренние и внешние описания, то программой-анализатором будутсначала рассматриваться внутренние, т.е. их приоритет выше. При проверкедокумента XML- процессор в первую очередь ищет DTD внутри документа. Еслиправила внутри документа не определены и не задан атрибут standalone=«yes», то программа загрузит указанный внешний файл и правила,находящиеся в нем, будут считаны оттуда. Если же атрибут standalone имеетзначение «yes», то использование внешних DTD описаний будетзапрещено.
Элемент в DTD определяется спомощью дескриптора !ELEMENT, в котором указывается название элемента иструктура его содержимого.
Ключевое слово ELEMENTуказывает, что данной инструкцией будет описываться элемент XML. Внутри этойинструкции задается название элемента и тип его содержимого.
В определении элемента мыуказываем сначала название элемента, а затем его модель содержимого — определяем, какие другие элементы или типы данных могут встречаться внутринего. Последовательность дочерних для текущего элемента объектов задается ввиде списка разделенных запятыми названий элементов. При этом для того, чтобыуказать количество повторений включений этих элементов могут использоватьсясимволы +,*,?:
Списки атрибутов элементаопределяются с помощью ключевого слова !ATTLIST. Внутри него задаются названияатрибутов, типы их значений и дополнительные параметры.
Всего существует шесть возможныхтипов значений атрибута:
·         CDATA — содержимым документа могут быть любые символьные данные;
·         ID — определяет уникальный идентификатор элемента в документе;
·         IDREF( IDREFS )- указывает, что значением атрибута должновыступать название(или несколько таких названий, разделенных пробелами вовтором случае) уникального идентификатора определенного в этом документеэлемента;
·         ENTITY (ENTITIES) — значение атрибута должно быть названием (илисписком названий, если используется ENTITIES) компонента (макроопределения),определенного в документе;
·         NMTOKEN (NMTOKENS) — содержимым элемента может быть только одноотдельное слово (т.е. этот параметр является ограниченным вариантом CDATA);
Список допустимых значений — определяется список значений, которые может иметь данный атрибут.
Также в определении атрибутаможно использовать следующие параметры:
·         #REQUIRED — определяет обязательный атрибут, который должен бытьзадан во всех элементах данного типа;
·         #IMPLIED — атрибут не является обязательным;
·         #FIXED «значение» — указывает, что атрибут должен иметьтолько указанное значение, однако само определение атрибута не являетсяобязательным, но в процессе разбора его значение в любом случае будет переданопрограмме-анализатору;
·         Значение — задает значение атрибута по умолчанию; 1.3     Значение XML и платформы Java
Web-службызависят от способности участников взаимодействовать друг с другом даже прииспользовании ими различных информационных систем. XML(Extensible Markup Language), язык разметки, делающийданные переносимыми, является ключевой технологией, предназначенной дляобеспечения такой способности. Корпоративные пользователи увидели преимуществаиспользования XML дляинтеграции данных как для совместного использования существующих данных междуподразделениями, так и для использования их совместно с другими предприятиями.В результате XML все больше используется вкорпоративных интегрированных приложениях, как в сильносвязанных, так и вслабосвязанных системах. Из-за такой способности к интеграции данных XML стал фундаментом Web-вычислений. Web-службы зависят также от способности предприятийиспользовать различные вычислительные платформы для взаимодействия друг с другом.Это требование делает платформу Java™, программы вкоторой являются переносимыми, естественным выбором для разработки Web-служб. Этот выбор стал еще более привлекательным послепоявления
новых Java API для XML,что сделало более легким использование XML в языкепрограммирования Java. Кроме переносимости кода иданных Web-службы должны быть масштабируемыми,безопасными и эффективными. Java™ 2 Platform,Enterprise Edition(J2EE™), специально разработанадля удовлетворения этих потребностей. Она облегчает в действительности труднуючасть разработки Web-служб, а именно программированиеинфраструктуры. Эта инфраструктура включает в себя такие функции какбезопасность, управление распределенными транзакциями и управление пуломсоединений, которые имеют важнейшее значение для производительности Web-служб. А поскольку компоненты являются повторноиспользуемыми, время разработки существенно уменьшается. Поскольку XML и платформа Java хорошо работаютвместе, они стали играть центральную роль в Web-службах.Фактически, преимущества, предлагаемые Java API для XMLи платформой J2EE, делают ихидеальной комбинацией для размещения Web-служб. Эти API дают возможность сообществу Java,разработчикам и поставщикам сервисных программ и контейнеров начать разработкуприложений Web-служб и использование стандартных Java API,составляющих основу принципа технологии Java — Write Once, Run Anywhere™(пишется один раз, используется везде). Java Web Services Developer Pack (Java WSDP) собирает все эти API в один пакет. Примеры в Java WSDP должны запускаться в контейнереTomcat (входящим в пакет Java WSDP).
1.4     Обзор стандартных анализаторов DOMи SAX
 
Java API for XML Processing (JAXP)предназначен для обработки XML-данных в приложениях,написанных на языке программирования Java. JAXP использует стандартыанализаторов SAX (Simple API for XML Parsing) и DOM (Document Object Model),так что вы можете выбирать между анализом данных как потока событий илипостроением их объектного представления. JAXP поддерживает также стандарт XSLT(XML Stylesheet Language Transformations), предоставляющий вам контроль надпредставлением данных и позволяющий преобразование данных в другиеXML-документы или в другие форматы, такие как HTML. JAXP обеспечивает такжеподдержку пространства имен, позволяя вам работать с DTD, которые могли бы впротивном случае вызвать конфликт имен.
JAXP позволяет вам использоватьлюбой XML-совместимый анализатор в вашем приложении. Это обеспечивается припомощи так называемого уровня подключений, который разрешает подключатьреализации SAX или DOM API. Уровень подключений позволяет также подключитьXSL-процессор, дающий вам контроль над способом отображения ваших XML-данных.
«Simple API» for XML(SAX) представляет собой основанный на событиях механизм последовательногодоступа, осуществляющий обработку «элемент-за-элементом». API этогоуровня читает и записывает XML в хранилище данных или Web. Для серверных ивысокопроизводительных приложений вы должны полностью понимать этот уровень. Нодля многих приложений достаточно минимальных знаний.
DOM API обычно легче виспользовании. Он обеспечивает относительно знакомую древовидную структуруобъектов. Вы можете использовать DOM API для управления иерархией объектовприложения, которые он объединяет. DOM API является идеальным для интерактивныхприложений, поскольку в памяти присутствует полная модель объектов, к ней можнополучить доступ и пользователь может управлять ею.
Document Object Model (объектнаямодель документа) является искусственной древовидной структурой, в которойкаждый узел содержит один из компонентов XML-структуры. Двумя наиболее общимитипами узлов являются узлы элементов и текстовые узлы. Использование функцийDOM позволяет вам создавать узлы, удалять узлы, изменять их содержимое ипроходить по иерархии узлов.
С самого начала DOMразрабатывался нейтральным к языку. Поскольку он был предназначался дляиспользования с языками, подобными С или Perl, DOM не использует преимуществобъектно-ориентированных особенностей Java.
С другой стороны, создание DOMтребует чтения полной XML-структуры и хранения дерева объектов в памяти, тоесть этот метод использует значительно больше ресурсов CPU и памяти. По этойпричине SAX API более предпочтителен для серверных приложений и фильтровданных, которые не требуют наличия данных в памяти.
Однако SAX-протокол требуетгораздо большего объема программирования, чем Document Object Model (DOM). Этоуправляемая событиями модель (вы обеспечиваете методы обратного вызова, аанализатор вызывает их по мере чтения XML-данных), которая затрудняетвизуализацию данных. И, наконец, вы не можете вернуться к предыдущей частидокумента или реорганизовать его, точно также, как не можете вернуться кпредыдущим данным в последовательном потоке данных, или реорганизовать символы,прочитанные из потока. По этим причинам разработчики, создающие ориентированноена пользователя приложение, которое отображает XML-документ и, возможно,модифицирует его, будут, вероятно, использовать DOM-механизм,
Когда необходимо изменитьXML-структуру, особенно если это нужно сделать в интерактивном режиме, большийсмысл имеет применение структуры, находящейся в памяти, такой как DOM. Однако,в то время как DOM предоставляет много мощных возможностей для большихдокументов (таких как книги и статьи), он также требует много сложногокодирования.
Так как данная курсовая работыпредставляет собой приложение для работы с небольшими объемами данных, нокоторые необходимо часто менять, то целесообразно использовать DOM-механизм работы с XML-файлами.1.5     Технология Java Servlet
Сервлет является Java-классом,используемым для расширения функциональных возможностей серверов, на которыхразмещаются приложения, доступ к которым осуществляется посредством программноймодели запрос-ответ. Несмотря на то, что сервлеты могут отвечать на любой типзапроса, они используются для расширения приложений, находящихся наWeb-серверах. Для таких приложений технология Java Servlet определяетхарактерные для HTTP классы сервлетов.
Пакеты javax.servlet иjavax.servlet.http обеспечивают интерфейсы и классы для написания сервлетов.Все сервлеты должны реализовывать интерфейс Servlet, который определяет методыжизненного цикла. При реализации службы generic, можно использовать илирасширять класс GenericServlet, поставляемый с интерфейсом API для JavaServlet. Класс HttpServlet обеспечивает для обработки служб HTTP такие методы,как doGet и doPost. Служба, обеспеченная сервлетом, реализована в методеservice сервлета GenericServlet, методе doMethod (где Method может принимать значения Get, Delete, Options, Post,Put, Trace) сервлета HttpServlet или любых других,определенных протоколом методов, которые определены классом, реализующиминтерфейс Servlet. В конце данного раздела, термин метод службы будетиспользован для любого метода класса сервлета, обеспечивающего службу клиенту.
Общим принципом действия методаслужбы является извлечение информации из запроса, доступ к внешним ресурсам ипоследующее заполнение ответа, базирующегося на данной информации. Длясервлетов HTTP, корректной процедурой заполнения ответа будет следующаяпоследовательность действий: заполнение заголовков ответа, получение входящегопотока из ответа и запись содержимого тела в исходящий поток. Заголовки ответоввсегда должны устанавливаться перед получением PrintWriter илиServletOutputStream. Это необходимо по причине того, что HTTP-протокол ожидаетполучения всех заголовков перед перед получением содержимого тела.
Запрос содержит данные,передаваемые между клиентом и сервлетом. Все запросы реализуют интерфейсServletRequest. Данный интерфейс определяет методы для доступа к следующейинформации:
·         Параметрам, которые обычно используются для передачи информациимежду клиентами и сервлетами.
·         Объектно-значимым атрибутам, которые обычно используются дляпередачи.
·         информации между контейнером сервлета и сервлетом, или междувзаимодействующими сервлетами.
·         Информации о протоколе, использованном для соединения, а также оклиенте и о сервере, которые вовлечены в запрос.
·         Информации, относящейся к локализации.
 Ответ содержит данные,передаваемые между сервером и клиентом. Все ответы реализуют интерфейсServletResponse. Данный интерфейс определяет методы, которые позволяют вамвыполнять следующие действия:
·         Получать исходящий поток, используемый в отправке данных клиенту.Для отправки данных в текстовом виде используйте PrintWriter, возвращенныйметодом ответа getWriter. Для отправки бинарных данных в теле MIME ответа,используйте ServletOutputStream, возвращенный getOutputStream. Для совмещениябинарных и текстовых данных, к примеру, при создании ответа, сотоящего изнескольких частей, используйте ServletOutputStream, управляя секциями символоввручную.
·         Обозначать тип содержимого (к примеру, text/html), возвращаемогов данном ответе.
·         Указывать, осуществляется ли вывод в буфер. По-умолчанию, любоесодержимое, записываемое в исходящий поток, немедленно отправляется клиенту.Буферизация позволяет записывать содержимое перед отправкой клиенту. Такимобразом, сервлету предоставляется больше времени для установки соответствующихкодов статуса и заголовков, а также переотправки содержимого другомуWeb-ресурсу.
·         Устанавливать информацию о регионе.
·         Объекты 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. Синтаксис такоговыражения выглядит следующим образом:

Использование точки с запятой в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












Корневым элементомданной структуры является Users, который представляет информацию о всехпользователях. Информация о конкретном пользователе находиться в элементе User, который в свою очередь содержит поля User_ID, FirstName, SecondName,Group, Position, Rank, Login, Password,Type, Date. Все элементыотображают различные характеристики пользователя, и являются обычнымитекстовыми полями.
Tests.dtd

















Поле 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









Поле 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 и StatsBean2.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.        Хабибуллин И. Ш. Создание распределённых приложений на Java2. – СПб.: БХВ-Петербург, 2001 г. – 688с.: ил.
4.        Хантер. Д. Введение в XML. – СПб.: Лори, 2001. –656с.: ил.
5. Х.М. Дейтел, П.Дж. Дейтел, Т.Р. Нието, Т.М. Лин, П.Садху. Как программировать на XML. Пер. с англ. — М.: ЗАО «Издательство БИНОМ»,2001 г. — 944 с.: ил.


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

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем реферат самостоятельно:
! Как писать рефераты
Практические рекомендации по написанию студенческих рефератов.
! План реферата Краткий список разделов, отражающий структура и порядок работы над будующим рефератом.
! Введение реферата Вводная часть работы, в которой отражается цель и обозначается список задач.
! Заключение реферата В заключении подводятся итоги, описывается была ли достигнута поставленная цель, каковы результаты.
! Оформление рефератов Методические рекомендации по грамотному оформлению работы по ГОСТ.

Читайте также:
Виды рефератов Какими бывают рефераты по своему назначению и структуре.