на тему рефераты Информационно-образоательный портал
Рефераты, курсовые, дипломы, научные работы,
на тему рефераты
на тему рефераты
МЕНЮ|
на тему рефераты
поиск
Разработка прикладной программы тестового контроля с использованием технологий JSP и сервлетов
p align="left">Для того, чтобы использовать DTD в документе, необходимо или описать его во внешнем файле и при описании DTD просто указать ссылку на этот файл или же непосредственно внутри самого документа выделить область, в которой определить нужные правила. В первом случае в документе указывается имя файла, содержащего DTD- описания:

<?xml version="1.0" standalone="yes" ?>

<! DOCTYPE journal SYSTEM "journal.dtd">

...

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

...

<! DOCTYPE journal [

<!ELEMENT journal (contacts, issues, authors)>

...

]>

...

В том случае, если используются одновременно внутренние и внешние описания, то программой-анализатором будут сначала рассматриваться внутренние, т.е. их приоритет выше. При проверке документа 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 для Java Servlet. Класс 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-ресурсу.

Страницы: 1, 2, 3



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