admin / 11.08.2018

Что такое сервлет

Спасибо большое Sun за предоставленную информацию

Вопрос: Что такое сервлеты (Servlets)?

Ответ:

Сервлет — это Java программа, которая выполняется WEB-сервром или сервером приложений (Application Server) и реализует интерфейс javax.servlet.Servlet. Сервлеты подобны CGI-приложениям и предназначены для обработки запросов Internet-клиентов или броузеров и ответов на эти запросы. Как и в случае с CGI-приложениями, взаимодействие с сервлетами происходит через HTTP или защищенный HTTPS протоколы.

Сервлеты могут принимать запросы отосланние как методом GET так и POST. Для обработки запросов полученных через эти методы используются прегруженные методы интерфейса Servlet
doPost(HttpServletRequest request,HttpServletResponse response)
и
doGet(HttpServletRequest request,HttpServletResponse response)
соответственно.

Параметр request используется для получения параметров переданных сервлету, а response используется для формирования ответа клиенту. Приведем простой пример реализации метода doGet:

Для написания сервлета с поддержкой HTTP-протокола следут наследовать класс HttpServlet, который реализует интерфейс Servlet. Напишем простейший сервлет:

Код

В этом сервлете в методе doGet мы получаем объект response, который возвращает нам объект PrintWriter, который мы используем для формирования HTML-страницы, которая будет возвращаться клиенту. Как вы видите, перед выводом мы установили MIME-тип "text/html". С тем же успехом мы можем использовать любой другой тип выводимых данных, которые поддерживаются HTTP-протоколом.

Для получения параметров из запроса переданных клиентом сервлету используется объект request. Для этого следует использовать метод request.getParameter("param_name"), где "param_name" — имя параметра.

Для запуска сервлетов WEB-сервером используется Servlet Engine или, согласно новой спецификации, контейнер сервлетов. Наиболее популярными контейнерами сервлетов являются Tomcat (от проекта Apache Jakarta) и Resin. Способ регистрации сервлета в контейнере и запуск контейнера зависит от конкретного контейнера и описан в документации поставляемой вместе с ним.

Документацию по сервлетам можно найти тут Java Servlet Technology

Содержание

Устранение неполадок администрирования


Приведенная в этом разделе информация поможет вам исправить существующие неполадки, связанные с WebSphere Portal, а также предотвратить их появление в будущем. Информацию об отдельных компонентах можно найти в соответствующих разделах, посвященных устранению неполадок.

Устранение неполадок, возникающих при работе с порталом

В этом разделе описаны неполадки, которые могут возникнуть во время работы с порталом или во время администрирования портала.

Неполадка: В портале не отображаются страницы (системы Unix с DB2)

Если во время установки портала была выбрана опция развертывания основных портлетов (административных портлетов и портлетов настройки, применяемых порталом), однако при открытии портала ни одна страница не была показана, а файлы протокола установки базы данных содержат следующие сообщения об ошибках, значит возникла ошибка общей памяти в источниках данных DB2 и WebSphere Application Server:

com.ibm.wps.util.DataBackendException: Error during database access! Nested Exception is com.ibm.websphere.ce.cm.StaleConnectionException: [IBM][CLI Driver] SQL1224N A database agent could not be started to service a request, or was terminated as a result of a database system shutdown or a force command. SQLSTATE=55032

Исправление: В системах Unix базу данных WebSphere Portal нельзя использовать напрямую. Нужно определить локальный псевдоним базы данных. Этот псевдоним подключается к базе данных WebSphere Portal по соединению TCP/IP. Необходимые инструкции приведены в WebSphere Portal Information Center. Найдите инструкции по настройке DB2.

Неполадка: Когда несколько пользователей входят в систему с одного клиента, браузер переключается на другой сеанс

Если пользователь войдет в портал, а затем откроет другой экземпляр браузера и еще раз войдет в портал под именем другого пользователя, то второй экземпляр браузера может переключиться на первый сеанс пользователя. Не исключены и другие неполадки.

Исправление: В тех случаях, когда в портал нужно войти под именем другого пользователя, используя тот же клиент, следует выполнить одну из следующих процедур:

  • Если сеанс первого пользователя сохранять не нужно, закройте этот сеанс, а затем войдите в систему от имени другого пользователя.
  • Если одновременно должны быть открыты сеансы двух пользователей, откройте сеанс второго пользователя в браузере другого типа. Например, откройте первый сеанс в Netscape Navigator, а второй сеанс — в Microsoft Internet Explorer.

Неполадка: Изменение информации о пользователе в WebSphere Portal приводит к непредвиденным результатам

Если при изменении информации о пользователе в WebSphere Portal было выдано сообщение об ошибке «Сбой базовой системы хранения данных. Повторите попытку позже» или атрибуты пользователя не были изменены в LDAP, то, возможно, необходимо изменить параметры настройки производительности DB2 и IBM Tivoli Directory Server.

Исправление: По умолчанию применяются следующие параметры DB2:

APP_CTL_HEAP_SZ 128 APPLHEAP_SZ 128

Этих значений недостаточно для системы IBM Tivoli Directory Server WebSphere Portal AIX с 2000 записей о пользователях.

Размер кучи UDB применяется при вставке и обновлении данных.

WebSphere Portal запускает сложные транзакции на сервере LDAP при выполнении любых операций, в частности, при изменении атрибутов пользователей, которое требует выполнения нескольких операций обновления и вставки. Для устранения этой неполадки рекомендуется настроить производительность WebSphere Portal следующим образом:

su -ldapdb2 db2 -c update db cfg for ldap using APP_CTL_HEAP_SZ 1024 db2 -c update db cfg for ldap using APPLHEAP_SZ 1024

Неполадка: Ошибка приложения Изменить макет и информационное наполнение

После выбора задачи Изменить страницу может возникнуть ошибка приложения. Эта ошибка возникает после выполнения следующей последовательности действий:

  1. В портале регистрируется новый пользователь.
  2. Пользователь входит в систему.
  3. Пользователь выбирает страницу, с которой он планирует работать.
  4. Пользователь выбирает задачу Изменить страницу.
  5. Пользователь выбирает портлет на странице и щелкает на значке Изменить портлет.

    Открывается окно Изменить портлет.

  6. Пользователь изменяет портлет и нажимает кнопку OK. Окно Изменить портлет закрывается.
  7. Пользователь снова щелкает на значке Изменить портлет. Открывается окно Изменить портлет с сообщением .

Исправление: При возникновении такой ошибки пользователь должен выйти из системы, а затем снова войти в систему. В следующий раз ошибка не возникнет.

Неполадка: Портлет не показан в портале

Исправление: Убедитесь в том, что:

  • У вас есть права доступа к портлету.
  • Портлет был добавлен на страницу портала.
  • Открыта страница, содержащая портлет.
  • Устройство, применяемое для просмотра портала, поддерживает язык описаний портлета.

Неполадка: Пустое окно портлета

Если Web-приложение с портлетами недоступно, например, остановлено сервером приложений, то соответствующие портлеты не покажут сообщение об ошибке, а просто покажут пустое окно. В этом случае в файл протокола будет занесено одно из следующих сообщений:

  • PEPC0001E: ServletContext, относящийся к сервлету XX, не найден.
  • PEPC0003E: Поиск ServletContext для XX вернул контекст портала. Ожидался другой контекст.

Исправление: С помощью Административной консоли сервера приложений убедитесь, что приложение запущено.

Неполадка: Портлет стал недоступен после обновления его приложения

Исправление: В течение некоторого времени после обновления приложения с портлетами обновленные портлеты могут быть недоступны. Выйдите из системы, а затем снова войдите в систему.

Неполадка: После возникновения тайм-аута LTPA и последующего тайм-аута сеанса появилось сообщение об ошибке

После возникновения тайм-аута LTPA и последующего тайм-аута сеанса может быть выдано сообщение об ошибке . В этом случае необходимо снова войти в систему.

Исправление: Обновите содержимое окна браузера одним из следующих способов:

  • В Netscape щелкните на значке Обновить, удерживая нажатой клавишу Shift.
  • В Internet Explorer щелкните на значке Обновить, удерживая нажатой клавишу Shift.

Неполадка: При поиске пользователей и групп происходит тайм-аут или возвращается слишком много результатов

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

Исправление: Вы можете настроить функцию поиска, ограничив максимальное число результатов или время выполнения операции. Подробные инструкции приведены в разделе Управление пользователями и группами.

Неполадка: Обновление окна браузера приводит к выполнению операции портлета

В портлетах, использующих операции со строками, обновление окна браузера может привести к повторному выполнению операции портлетом, что может привести к неправильной работе некоторых портлетов. Например, обновив окно браузера, пользователь может обнаружить, что изменилось количество помещенных в корзину товаров.

Исправление: Измените портлет, добавив следующий параметр конфигурации:

com.ibm.wps.portlet.action.redirect = true

Этот параметр позволяет перезагружать страницу и портлет без параметров действий в URL. Для добавления и настройки параметров конфигурации выберите опцию Администрирование,Портлеты,Управление портлетами. Выберите портлет для изменения и нажмите кнопку Изменить параметры.

Неполадка: Сообщение о тайм-ауте сеанса

Когда пользователь входит в защищенную область WebSphere Portal (например, myportal) с другого экземпляра сервера приложений домена единого входа в систему WebSphere Portal, используя cookie сеанса с именем JSESSIONID и путем, совпадающим с URL портала (например, со значением по умолчанию /), то будет показано сообщение о тайм-ауте сеанса. Причина этого состоит в том, что WebSphere Portal не может определить, был ли cookie браузера создан им самим или другим экземпляром сервера приложений.

Исправление: Если возникает эта неполадка, следует исправить путь cookie так, чтобы можно было различать URL WebSphere Portal в различных экземплярах сервера приложений, входящих в один домен единого входа в систему. Задайте уникальный путь для cookie с именем JSESSIONID в параметрах управления сеансом на странице Администрирование WebSphere Application Server.

Примечание: Если вы укажете путь cookie с помощью опции «заменить» в параметрах управления сеансом на уровне, отличном от уровня Web-контейнера, то вам потребуется еще раз задать параметры распределенного сеанса на этом уровне, даже если они уже были заданы на уровне Web-контейнера.

Неполадка: После входа в систему двух пользователей в браузере Mozilla показан только один пользователь

Браузеры Mozilla, подключающиеся к порталу с одного и того же IP-адреса, используют один сеанс WebSphere Portal. Если пользователь войдет в систему портала сразу под двумя именами, то браузер продолжит применять лишь одно из имен, причем сообщение о том, какой именно пользователь работает с WebSphere Portal, не будет выдано. Например, если в одном окне браузера пользователь вошел в систему под именем UserA, а в другом окне — под именем UserB, то оба окна будут обрабатываться как открытые пользователем UserB, т.е. вся показанная информация и параметры будут относиться к пользователю UserB.

Исправление: Для входа в систему под другим именем пользователя с помощью браузера Mozilla необходимо предварительно закрыть все экземпляры браузера.

Неполадка: При отсутствии администратора заданий не выполняется параллельное отображение портлетов

Если во время установки портала не был создан администратор заданий, то портал выдает следующее сообщение об ошибке:

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

  • Не установлен компонент PME (расширения модели программирования)
  • При установке PME не были выбраны асинхронные компоненты JavaBean

В результате не работает функция параллельного отображения портлетов (PPR). Компонент PPR заносит в протокол указанное выше сообщение об ошибке PEEX0100E. Данное сообщение может также указывать на тот факт, что не выполнена инициализация процесса параллельного отображения. В этом случае параллельное отображение автоматически выключается. Портал продолжает нормальную работу без применения этой функции. Все портлеты отображаются последовательно.

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

Собеседование по Java EE — JEE Servlet API (вопросы и ответы)

Ниже перечислены требования, которые должны быть выполнены:

  1. Должен быть установлен сервер приложений с PME.
  2. В состав PME входят JavaBean асинхронной связи, необходимые для создания диспетчера нагрузки.
  3. Во время установки портала должен быть создан диспетчер нагрузки .

Неполадка: Портлет Поиск документов не работает на анонимной странице

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

Исправление: Следует разрешить общедоступные сеансы работы с порталом.

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

Для того чтобы включить общедоступные сеансы, откройте файл и присвойте параметру значение . Перезапустите WebSphere Application Server и WebSphere Portal, чтобы изменения вступили в силу.

Неполадка: Портлеты поиска не работают после замены локальной службы на удаленную или наоборот

Если в конфигурации портлетов поиска заменить локальную службу поиска на удаленную службу, или наоборот, то портлеты перестанут работать. Это относится к административному портлету Управление наборами документов и к портлету пользовательскому портлету Поиск документов.

Причина: Встроенный компонент поиска можно настроить для работы с локальной службой поиска, либо с удаленной службой поиска посредством интерфейса SOAP (Web-службы). Портлет, настроенный на использование локальной или удаленной службы поиска, нельзя настроить на использование другого типа службы поиска. При попытке сделать это портлет перестанет работать.

Исправление: Портлет можно переключить на использование другого типа службы поиска (например, удаленной вместо локальной) только вручную. Для этого следует создать другую копию портлета и настроить ее на использование другого типа службы поиска. Для использования локальной службы поиска параметр URL SOAP следует оставить пустым, а для использования удаленной службы — указать его значение.

Устранение неполадок, связанных с поддержкой национальных языков

В этом разделе описаны ошибки, которые могут возникать при просмотре информации на различных языках в WebSphere Portal.

Неполадка: Неполадки Netscape в системе AIX с турецкой локалью

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

Исправление: При возникновении подобных неполадок рекомендуется воспользоваться другим браузером или браузером, установленным в другой операционной системе.

Неполадка: Неполадке при просмотре информации DBCS на различных языках

Если браузер работает в локали или , то текст на трех остальных языках может не отображаться.

Исправление: Выполните следующие действия:

  1. Войдите в систему портала.
  2. Выберите Администрирование > Параметры портала > Поддерживаемые языки описания.
  3. Выберите HTML.
  4. Выберите Изменить язык описания.
  5. Выберите Параметры, зависящие от локали.
  6. Выберите требуемый язык.
  7. Выберите Изменить параметр для выбранного языка.
  8. Задайте в поле Кодировка.
  9. Нажимая OK, подтвердите свой выбор и вернитесь в главное окно портлета Управление языками описания.

Неполадка: Ошибки отображения двухбайтовых символов в полях выбора в браузере

Данная информация относится к языкам с набором двухбайтовых символов (DBCS). Если поля выбора содержат информацию DBCS (например, поле для выбора страницы), то в некоторых случаях все символы отображаются в виде прямоугольников. Эта неполадка возникает случайным образом, поэтому невозможно указать, для каких версий браузеров и операционных систем она характерна.

Исправление: Исправление в настоящее время не предусмотрено.

Неполадка: Неполадки функции поиска в Information Center и справке по порталу

Если вы открыли WebSphere Portal Information Center или справку по порталу в Microsoft Internet Explorer 6.x, а затем воспользовались функцией поиска, то результаты поиска могут содержать искаженные символы.

Исправление: Список других поддерживаемых Web-браузеров приведен в разделе Требования справочной системы Information Center.

Неполадка: Неполадки Microsoft Internet Explorer в системе с японской локалью

Исправление:

  • При обращении к порталу с японской локалью с помощью Microsoft Internet Explorer при нажатии клавиши с символом японской йены в полях ввода портала может отображаться символ обратной косой черты. Это связано с особенностями поддержки кодировки UTF-8 в Microsoft Internet Explorer. Для устранения этой неполадки используйте другие браузеры, например, Netscape или Mozilla, либо смените набор символов портала с UTF-8 на Shift_JIS. Дополнительная информация приведена в разделе Изменение набора символов языка.
  • Компонент текстового редактора из набора инструментальных компонентов WebSphere Portal позволяет изменять обычный формат на формат заголовка и обратно. При обращении к порталу с японской локалью с помощью Microsoft Internet Explorer эта функция может не работать. Используйте другие браузеры, например, Mozilla.

Устранение неполадок администрирования портала

Неполадка: Невозможно использовать интерфейс конфигурации XML, если применяется внешняя функция защиты

Если виртуальный ресурс , представляющий доступ к интерфейсу конфигурации XML, перевести под защиту внешнего администратора защиты, дальнейшее использование интерфейса конфигурации XML станет невозможно.

Исправление: Если управление доступом к WebSphere Portal передается внешнему администратору защиты, такому как Tivoli Access Manager, то следует проследить за тем, чтобы виртуальный ресурс интерфейса конфигурации XML не был передан под управление внешнего администратора.

Неполадка: Исчезает ссылка на режим редактирования портлета

Во время изменения страницы с помощью портлета Редактирование макета эта страница деактивируется, а ссылка для перехода в режим редактирования портлета, расположенного на этой странице, удаляется.

Причина: Страница деактивируется в момент выполнения любого действия в портлете Редактирование информационного наполнения и макета, например при добавлении портлета или перемещении портлета или контейнера.

Исправление: Если страница была деактивирована в результате выполнения какого-либо действия, нажмите Готово, чтобы выйти из страницы. Страница будет активирована повторно. Щелкните на ссылке Редактировать страницу, чтобы была показана ссылка Редактировать портлет.

Неполадка: Не загружается Административная консоль

WebSphere Portal устанавливает на сервере WebSphere Application Server приложение административной консоли WebSphere Portal Application Server, с помощью которого можно управлять сервером приложений, не настраивая и не запуская второй экземпляр сервера приложений (по умолчанию это server1). По умолчанию номер порта равен 9081.

Исправление: В системах Windows 2000 для запуска Административной консоли создается пункт меню Пуск. Если при выборе этого пункта меню консоль не загружается и выдается сообщение об ошибке HTTP 404, значит для сервера приложений задан порт администрирования, отличный от указанного в ярлыке для пункта меню Пуск.

Измените свойство Административной консоли WebSphere Application Server в меню Пуск Windows 2000 (Пуск > Программы > IBM WebSphere > Application Server Version 5.0 > Административная консоль). Например, измените

на

Связанная информация


Library | Support | Terms of use | Feedback
Information Center last updated: Friday, November 19, 2004
IBM WebSphere Portal for Multiplatforms 5.1 | (c) Copyright IBM Corporation 2000, 2004

2011. PayDox реализовал виджеты для корпоративных порталов


Web-система электронного документооборота и совместной работы PayDox получила новый функционал под названием PayDox Portal.

Он позволяет встраивать информационные блоки и элементы управления в любые корпоративные сайты. Это реализуется простой вставкой HTML-кода виджета на страницу сайта. Например, можно отображать на корпоративном сайте списки документов для согласования или ознакомления текущим пользователем, папки и файлы виртуального каталога PayDox, актуальные задачи и поручения для данного пользователя, активные бизнес-процессы. В любой сайт можно также включить списки задач из PayDox Case Management, что позволит сотрудникам контролировать исполнение поручений, обсуждать любые размещенные материалы и документы, публиковать комментарии и сообщения непосредственно на своем корпоративном сайте.

2007. JBoss Portal поддерживает Google Gadgets

В инструментарии построения порталов с открытым кодом JBoss Portal версии 2.6 появилась поддержка размещения на страницах Google Gadgets — миниприложений, таких как календарь, метеоглобус, мультимедиа-плейер и т. п. Усовершенствования JBoss Portal 2.6 также затронули области персонализации, управления идентификацией и потоков работ. Отныне пользователи могут персонализировать индивидуальные портлеты, — выбирая для них темы оформления, макеты и содержание. Обновлены функции администрирования: стало проще создавать пользователей, появился поиск. Портальная система интегрируется с LDAP-серверами Red Hat Director Server, OpenDS и OpenLDAP. Поддерживается возможность использования на страницах элементов пользовательских интерфейсов из библиотек Ajax4jsf и RichFaces. Обеспечена расширенная поддержка спецификации Web Services for Remote Portlets, в том числе возможности «клонирования» портлета для использования в других конфигурациях. JBoss Portal 2.6 требует использования JBoss Application Server. В дальнейших версиях, возможно, будет обеспечена поддержка других серверов приложений.

2007. Google Gadgets доступны в порталах IBM WebSphere

IBM выпустила бесплатный портальный компонент, позволяющий подключать к порталам WebSphere Portal мини веб-приложения (виджеты) Google Gadgets, количество которых на сегодня насчитывает около 4 тыс. В наборе присутствуют гаджеты подачи потокового видео с YouTube, практические бизнес-приложения: карты, переводчики, трекеры доставки почтовых отправлений, а также окна со сводкой погоды, новостями, поиском по аудиозаписям или в Wikipedia. IBM Portlet for Google Gadgets позволяет загружать мини-приложения Google, превращать их в портлеты WebSphere и безопасно пользоваться ими под защитой межсетевого экрана. Возможность использования Gadgets поддерживается в WebSphere Portal 6.0 и WebSphere Portal Express. Для проекта интеграции WepSphere Portal с разработками Google последняя предоставила IBM набор интерфейсов API.

2007. BEA WebLogic Portal 10 в стиле Web 2.0

BEA Systems выпустила новую версию своей системы построения порталов — BEA WebLogic Portal 10.

Servlet MyServlet at » + request.getContextPath () + «

В компании особо выделяют новые возможности продукта, отвечающие технологиям Web 2.0. В частности, это средства поддержки Web-сервисов, работающих по протоколу REST (Representational State Transfer). WebLogic Portal 10 позволяет создавать портлеты, доступные для использования по REST внешними Web-приложениями. Например, портлет, обеспечивающий функцию поиска телефона служащего, может быть посредством REST экспонирован во внешнем Web-приложении. Кроме того, в составе WebLogic Portal имеется библиотека AJAX для построения высокоинтерактивных приложений. Поддержка спецификации WSRP (Web Services for Remote Portlets) 2.0 обеспечивает связь между портлетами и возможность их динамического обновления. Обновлены средства администрирования портала. BEA WebLogic Portal требует для работы сервера Java-приложений BEA WebLogic Server.

2003. Стандарты корпоративных порталов: JPS и WSPR

В настоящее время разрабатываются два взаимодополняющих стандарта в области порталов. Первый, проходящий стадию открытого рецензирования, — Java Portlet Specification; он призван стандартизовать поведение окна портлета и средства его взаимодействия с сервером. Стандарт создан и поддерживается компаниями, в числе которых Sun, IBM, BEA, SAP, Oracle, Vignette, Plumtree, Novell, Sybase и др. Второй, Web Services for Remote Portals (WSRP), разрабатывается группой компаний, в которую входят многие из перечисленных, а также Microsoft. WSRP представляет стандартизованные портлеты в качестве «визуальных» Web-служб, которые можно вызывать удаленно независимо от их местонахождения. В числе прочего WSRP обеспечит взаимодействие между элементами порталов на основе платформ Java и .Net.Вместе два стандарта обещают воплотить в жизнь идею объединенной портальной среды. Кроме того, они стимулируют превращение портальных серверов в продукт массового применения (аналогично серверам приложений и базам данных) и консолидацию портальных сред, в которые войдут встроенные механизмы управления содержанием, совместной работы, аналитики и поиска. В области инфраструктуры порталов в лидеры закономерно выйдут такие производители, как IBM, BEA,Oracle и Microsoft, а у разработчиков приложений появится возможность представлять свои системы в виде исполняющихся на базе этой инфраструктуры портлетов, страниц и комбинированных решений. Остается лишь дождаться завершения работы над стандартами.

Сервлеты

В главе 19 была упомянута технология CGI. Ее суть в том, что сетевой клиент, обычно браузер, посылает Web-серверу информацию вместе с указанием программы, которая будет обрабатывать эту информацию. Web-сервер, получив информацию, запускает программу, передает информацию на ее стандартный ввод и ждет окончания обработки. Результаты обработки программа отправляет на свой стандартный вывод, Web-сервер забирает их оттуда и отправляет клиенту. Написать программу можно на любом языке, лишь бы Web-сервер мог взаимодействовать с ней.

В технологии Java такие программы оформляются как сервлеты (servlets). Это название не случайно похоже на название "апплеты". Сервлет на Web-сервере играет такую же роль, что и апплет в браузере, расширяя его возможности.

Чтобы Web-сервер мог выполнять сервлеты, в его состав должна входить JVM и средства связи с сервлетами. Обычно все это поставляется в виде отдельного модуля, встраиваемого в Web-сервер.

Сервлет (Java)

Существует много таких модулей: Resin, Tomcat, JRun, JServ. Они называются на жаргоне сервлетными движками (servlet engine).

Основные интерфейсы и классы, описывающие сервлеты, собраны в пакет javax.servlet. Расширения этих интерфейсов и классов, использующие конкретные особенности протокола HTTP, собраны в пакет javax.servlet.http. Еще два пакета– javax.servlet.jsp и javax.servlet.jsp.tagext – предназначены для связи сервлетов со скриптовым языком JSP (JavaServer Pages). Все эти пакеты входят в состав J2SDK Enterprise Edition. Они могут поставляться и отдельно как набор JSDK (Java Servlet Development Kit). Сервлет-ный движок должен реализовать эти интерфейсы.

Основу пакета javax.servlet составляет интерфейс servlet, частично реализованный в абстрактном классе GenericServlet и его абстрактном подклассе HttpServlet. Основу этого интерфейса составляют три метода:

  • init (Servietconfig config) – задает начальные значения сервлету, играет ту же роль, что и метод init () в апплетах;
  • service(ServletRequest req, ServletResponse resp) – выполняет обработку поступившей сервлету информации req и формирует ответ resp;
  • destroy () – завершает работу сервлета.

Опытный читатель уже понял, что вся работа сервлета сосредоточена в методе service (). Действительно, это единственный метод, не реализованный в классе GenericServlet. Достаточно расширить свой класс от класса. GenericServlet и реализовать в нем метод service (), чтобы получить собственный сервлет. Сервлетный движок, встроенный в Web-сервер, реализует интерфейсы ServletRequest и ServletResponse. Он Создает объекты req и resp, заносит всю поступившую информацию в объект req и передает этот объект сервлету вместе с пустым объектом resp. Сервлет принимает эти объекты как аргументы req и resp метода service (), обрабатывает информацию, заключенную в req, и оформляет ответ, заполняя объект resp. Движок забирает этот ответ и через Web-сервер отправляет его клиенту.

Основная информация, заключенная в объекте req, может быть получена методами read() и readLine() из байтового потока класса ServletlnputStream, непосредственно расширяющего класс inputstream, или из символьного потока класса BufferedReader. Эти потоки открываются, соответственно, методом req.getlnputStream() или методом req.getReader ().

Дополнительные характеристики запроса можно получить многочисленными методами getxxx() объекта req. Кроме того, класс GenericServlet реализует массу методов getxxx(), позволяющих получить дополнительную информацию о конфигурации клиента.

Интерфейс servletResponse описывает симметричные методы для формирования ответа. Метод getoutputstreamo открывает байтовый поток класса ServletOutputStream, непосредственно расширяющего класс OutputStream. Метод getWriter () открывает символьный поток класса PrintWriter.

Итак, реализуя метод service(), надо получить информацию из входного потока объекта req, обработать ее и результат записать в выходной поток объекта resp.

Очень часто в объекте req содержится запрос к базе данных. В таком случае метод service () обращается через JDBC к базе данных и формирует ответ resp из полученного объекта ResultSet.

Протокол HTTP предлагает несколько методов передачи данных: GET, POST, PUT, DELETE. Для их использования класс GenericServlet расширен классом HttpServlet, находящимся В пакете javax.servlet.http. В этом классе есть методы для реализации каждого метода передачи данных:

doGet(HttpServletRequest req, HttpServletResponse resp) doPost(HttpServletRequest req, HttpServletResponse resp) doPut(HttpServletRequest req, HttpServletResponse resp) doDelete(HttpServletRequest req, HttpServletResponse resp)

Для работы с конкретным HTTP-методом передачи данных достаточно расширить свой класс от класса HttpServlet и реализовать один из этих методов. Метод service () переопределять не надо, в классе HttpServlet он только определяет, каким HTTP-методом передан запрос клиента, и обращается к соответствующему методу doXxx(). Аргументы перечисленных методов req и resp – это объекты, реализующие Интерфейсы HttpServletRequest и HttpServletResponse, расширяющие интерфейсы ServletRequest и ServietResponse, соответственно.

Интерфейс HttpServletRequest к тому же описывает множество методов getxxx (), позволяющих получить дополнительные свойства запроса req.

Интерфейс HttpServletResponse описывает методы addxxx() и setxxx(), дополняющие ответ resp, и статические константы с кодами ответа Web-сервера.

FILED UNDER : IT

Submit a Comment

Must be required * marked fields.

:*
:*