Главная » Java, Web » Пакеты. Интерфейсы. Классы Пакет javax.servlet

0

Пакет javax.servlet содержит классы и интерфейсы, определяющие взаимодействие между сервлетами (классами сервлетов) и окружением контейнера сервлетов (табл. П2.1).

Таблица П2.1. Интерфейсы пакета javax. servlet


Интерфейс

Описание

 

Filter

Фильтр — объект, который производит

 

 

фильтрацию запроса к ресурсу, ответа кли

 

 

енту, или и того и другого. Фильтрация про

 

 

исходит при помощи метода doFilter

 

FilterChain

FilterChain— это объект, который пре

 

 

доставляется контейнером сервлетов для

 

 

работы с цепочкой обращений из фильтро

 

 

ванного запроса к ресурсу

 

FilterConfig

Объект конфигурации фильтра, использует

 

 

ся контейнером сервлетов для сбора ин

 

 

формации во время инициализации и пере

 

 

дач ее фильтру

 

RequestDispatcher

Определяет объект, который получает за

 

 

просы клиента и перенаправляет их другим

 

 

ресурсам, например, сервлетам, HTML-

 

 

файлам и JSP-страницам

 

Servlet

Содержит методы, которые должны быть

 

 

имплементированы во всех сервлетах

 

ServletConfig

Объект конфигурации сервлета, использу

 

 

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

 

 

информации сервлету во время инициали

 

 

зации

 

ServletContext

Содержит методы, при помощи которых

 

 

сервлет общается с контейнером для полу

 

 

чения MIME-типов файлов, перенаправле

 

 

ния запросов, записи информации в файлы

 

 

обращений к серверу

 

ServletContextAttributeListener

Объект получает информацию об измене

 

 

ниях в списке атрибутов контекста сервлета

 

 

или Web-приложения

 

ServletContextListener

Объект получает информацию об измене

 

 

ниях в контексте сервлета или Web-

 

 

приложения, частью которого он является

 

Краткая справка по сервлетам и JSP

463

Таблица П2.1 (окончание)

Интерфейс

Описание

ServietRequest

Определяет объект, который передает ин

 

формацию клиентского запроса сервлету

ServietResponse

Определяет объект, который передает ин

 

формацию от сервлета в ответ на запрос

SingleThreadModel

Используется для создания сервлетов, ко

 

торые позволяют работать исключительно

 

в однопоточном режиме

 

 

Список классов, входящих в состав пакета javax.serviet, приведен в табл. П2.2.

Таблица П2.2. Классы пакета javax. serviet

Класс

Описание

GenericServlet

Определяет независимый от протокола сервлет

ServietContextAttributeEvent

Класс, содержащий события, используемые для

 

уведомления об изменениях, происходящих с

 

атрибутами контекста сервлета или Web-

 

приложения

ServietContextEvent

Класс, содержащий события, используемые для

 

уведомления об изменениях в контексте серв

 

лета или в Web-приложении

ServietInputStream

Поток ввода для чтения двоичных данных кли

 

ентского запроса, в том числе метод readLine

 

для чтения одной строки

ServietOutputStream

Поток вывода для отправки двоичных данных

 

клиенту

ServletRequestWrapper

Удобная имплементация интерфейса

 

Serviet Request, которая может быть исполь

 

зована для создания подклассов для работы с

 

запросами к сервлету

ServietResponseWrapper

Имплементация интерфейса ServletResponse

 

для работы с ответами сервлета клиенту

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

Таблица П2.3. Исключительные ситуации в пакете javax. servlet Исключение Описание

Servlet Except ion Общая ошибка, произошедшая во время работы сервлета

UnavailableException Ошибка показывает, что сервлет временно или постоянно

неработоспособен

Пакет javax.servlet.http

Пакет javax.servlet.http содержит классы и интерфейсы, определяющие взаимодействие класса сервлета с контейнером сервлетов при работе с протоколом HTTP (табл. П2.4).

Таблица П2.4. Интерфейсы пакета javax. servlet. http

Интерфейс

Описание

HttpServletRequest

Расширение интерфейса ServletRequest

 

для работы с информацией HTTP-запросов

HttpServletResponse

Расширение интерфейса ServletResponse

 

для работы с информацией ответов на HTTP-

 

запросы

HttpSession

Интерфейс для работы с сессиями

HttpSessionActivationListener

Объекты интерфейса связываются с сессией и

 

прослушивают события контейнера об актива

 

ции сессии и выходе из сессии

HttpSessionAttributeListener

Интерфейс прослушивателя имплементирует-

 

ся для создания объектов, получающих сооб

 

щения об изменениях в списке атрибутов сес

 

сии или Web-приложения

HttpSessionBindingListener

Заставляет сообщать объекту о наложении

 

связи с определенной сессией или о снятии

 

этой связи

HttpSessionContext

Устарел

HttpSessionListener

Объекты получают сообщения об изменениях

 

в списке активных сессий или Web-

 

приложений

Перечень классов пакета javax.servlet.http приводится в табл. П2.5.

Таблица П2.5. Классы пакета javax. servlet. http

Класс

Описание

Cookie

Создает cookie

HttpServlet

Абстрактный класс для создания классов НТТР-

 

сервлетов, используемых на Web-сайтах

HttpServletRequestWrapper

Имплементация интерфейса HttpServletRequest

HttpServletResponseWrapper

Имплементация интерфейса HttpServletResponse

HttpSessionBindingEvent

События этого типа направляются объекту, им-

 

плементирующему интерфейс

 

HttpSessionBindingListener во время уста

 

новления связи с сессией, или удаления связи с

 

сессией, или объекту, имплементирующему

 

HttpSessionAttributeListener во время из

 

менения атрибутов (связь с сессией, удаление

 

связи с сессией)

HttpSessionEvent

Класс событий, которые возникают при внесении

 

изменений в объект сессий во время работы Web-

 

приложения

HttpUtils

Устарел

Табл. П2.6 содержит описания исключительных ситуаций, возникающих при работе с объектами пакета javax.servlet.http.

Таблица П2.6. Исключительные ситуации в пакете javax. servlet. http

Исключение

Описание

JspException

Общая исключительная ситуация

JspTagException

Ошибка, которая может возникнуть во время работы обработчи

 

ка ярлыков

Пакет javax.servlet.jsp

Пакет j avax. servlet. jsp содержит интерфейсы и классы для осуществления взаимодействия класса JSP-страницы и JSP-контейнера (табл. П2.7).

Таблица П2.7. Интерфейсы пакета javax. servlet. jsp

Интерфейс

Описание

HttpJspPage

Интерфейс HttpJspPage описывает работу класса, имплементи-

 

рующего JSP-страницу при использовании протокола HTTP

JspPage

Интерфейс JspPage описывает функциональность класса, импле-

 

ментирующего JSP-страницу вне зависимости от протокола

В пакете j avax. servlet. j sp описан набор интерфейсов, используемых при работе с jsp (табл. П2.8).

Таблица П2.8. Интерфейсы пакета javax. servlet. jsp

Интерфейс

Описание

JspEnginelnfo

Абстрактный класс JspEnginelnfo содержит текущую информа

 

цию о JSP

JspFactory

Абстрактный класс JspFactory определяет методы, которые мо

 

гут использоваться во время выполнения JSP-страницы для созда

 

ния экземпляров интерфейсов и классов, используемых при работе

JspWriter

Вывод информации может быть осуществлен с использованием

 

объекта JspWriter

PageContext

Объект PageContext предоставляет доступ ко всем пространст

 

вам имен на JSP-странице, в том числе к атрибутам страницы

При работе с пакетом javax.servlet.jsp могут возникнуть исключительные ситуации, описанные в табл. П2.9.

Таблица П2.9. Исключительные ситуации в пакете javax. servlet. jsp

Исключение

Описание

JspException

Общая исключительная ситуация

JspTagException

Ошибка, появляющаяся во время работы обработчика ярлыков

Интерфейс servlet содержит методы, вызываемые в те или иные моменты жизненного цикла сервлета, в его состав входят также вспомогательные методы, в том числе методы, помогающие сервлету взаимодействовать с окружением, предоставляемым контейнером сервлетов (табл. П2.10).

Таблица П2.10. Методы интерфейса servlet

Тип

Метод

void

destroy()

 

Вызывается контейнером сервлета перед выводом сервлета

 

из работы

ServletConfig

getServletConfig()

 

Возвращает объект ServletConfig, содержащий парамет

 

ры инициализации сервлета

java.lang.String

getServletlnfo()

 

Возвращает информацию о сервлете: автора, версию серв

 

лета, copyright

Таблица П2.10 (окончание)

Тип

Метод

void

init(ServletConfig config)

 

Вызывается контейнером сервлета при инициализации

 

сервлета

void

service(ServletRequest req,

 

ServletResponse res)

 

Вызывается контейнером сервлета для обработки запроса

 

и отправки ответа

Класс GenericServiet предоставляет основные методы сервлета (П2.11).

Таблица П2.11. Методы класса GenericServiet


Тип

 

 

Метод

Void

 

 

destroy()

Вызывается контейнером сервлета для уничтожения сервлета

java.

lang.

. String

getlnitParameter(java.lang.String name) Возвращает строку string, содержащую значение параметра инициализации или null

java.

util.

. Enumeration

getlnitParameterNames()

Возвращает имена параметров инициализации в виде Enumeration объектов типа String ИЛИ пустой

Enumeration

ServletConfig

getServletConfig() Возвращает объект ServletConf ig

ServietContext

getServletContext()

Возвращает ссылку на ServletContext для сервлета

java.

lang.

. String

getServletlnfo()

Возвращает информацию о сервлете (автор, версия, copyright)

java.

lang.

. String

getServletName()

Возвращает имя экземпляра сервлета

Void

 

 

init()

Метод может быть переопределен, используется для того, чтобы не вызывать метод super, init (config)

Void

 

 

init(ServletConfig config)

Метод вызывается контейнером сервлета при вводе сервлета в работу

Void

 

 

log(java.lang.String msg)

Записывает сообщение в файл логов сервлета, сообщение начинается с имени сервлета

Таблица П2.11 (окончание)

 

Тип

Метод

 

Void

log(java.lang.String message, java.lang.Throwable t)

Пишет сообщение с объяснением исключительной ситуации в файл логов

 

Abstract void

service(ServletRequest req, ServletResponse res)

Вызывается контейнером сервлета для выполнения запроса и создания ответа

 

Интерфейс ServletRequest содержит методы для работы с клиентским запросом (табл. П2.12).

Таблица П2.12. Методы интерфейса ServletRequest

Тип

 

 

Метод

java.

.lang.

.Object

getAttribute(java.lang.String name) Возвращает значение указанного атрибута в виде объекта Object или null

java.

.util.

.Enumeration

getAttributeNames ()

Возвращает Enumeration с именами атрибутов сервлета

java.

.lang.

.String

getCharacterEncoding() Имя кодировки символов

Int

 

 

getContentLength()

Длина (в байтах) тела запроса. (-1) — если длина неизвестна

java.

.lang.

.String

getContentType()

Возвращает тип MIME, используемый в теле запроса,

ИЛИ null

ServletInputStream

getInputStream()

Получает тело запроса с использованием

ServletInputStream

java.

.util.

. Locale

getLocale()

Возвращает предпочтительный Locale, заданный в клиенте в соответствии с заголовком

Accept-Language

java.

.util.

.Enumeration

getLocales ()

Возвращает Enumeration объектов типа Locale в убывающем порядке от наиболее предпочтительного на основе заголовка Accept-Language

Таблица П2.12 (продолжение)

Тип

 

 

Метод

java.

.lang.

.String

getParameter(java.lang.String name) Возвращает значение параметра в виде строки

String,ИЛИ null

java.

. util.

.Map

getParameterMap()

Возвращает java.util .Map для параметров запроса

java.

. util.

. Enumeration

getParameterNames ()

Возвращает Enumeration объектов string с именами параметров запроса

java.

.lang.

. String[]

getParameterValues (java.lang.String name) Возвращает массив объектов string со всеми значениями для указанного имени параметра или null, если параметр не существует

java.

.lang.

. String

getProtocol()

Возвращает имя и версию проткола в форме protocol/majorVersion.minorVersion, например, НТТР/1.1

java.

.io.BufferedReader

getReader()

Получает тело запроса в виде символов с использованием BufferedReader

java.

.lang.

. String

getRealPath (java.lang.String path) Устарел. Используется

ServletContext.getRealPath(java.lang.String)

java.

.lang.

. String

getRemoteAddr()

Возвращает адрес IP-клиента, пославшего запрос

java.

.lang.

. String

getRemoteHost ()

Возвращает полное имя клиента, пославшего запрос

RequestDispatcher

getRequestDispatcher(java.lang.String path) Возвращает объект RequestDispatcher, который используется вместе с ресурсом по указанному пути

java.

.lang.

. String

getScheme()

Возвращает имя scheme для выполнения запроса (например, http, https, ftp)

java.

.lang.

. String

getServerName()

Возвращает имя хоста сервера, получившего запрос

int

 

 

getServerPort()

Возвращает номер порта, на котором был получен запрос

Таблица П2.12 (окончание)

Тип

Метод

boolean

isSecure()

Возвращает логическое значение, показывающее, был ли получен запрос по безопасному каналу, например, по HTTPS

void

removeAttribute(java.lang.String name) Удаляет атрибут из запроса

void

setAttribute(java.lang.String name, java.lang.Object o) Задает атрибут в запросе

void

setCharacterEncoding(java.lang.String env) Переустанавливает имя кодировки запроса

В интерфейсе ServietResponce содержатся методы для работы с ответом сервлета клиенту (табл. П2.13).

Таблица П2.13. Методы интерфейса ServietResponce

Тип

Метод

void

flushBuffer()

Отсылает содержимое буфера клиенту

int

getBufferSize()

Возвращает реальный размер буфера, посылаемого клиенту

java.lang.String

getCharacterEncoding()

Возвращает название набора символов, используемого в теле ответа

java.util.Locale

getLocale()

Возвращает объект Locale, связанный с ответом

ServletOutputStream

getOutputStream()

Возвращает ServletOutputStream для записи двоичных данных ответа

java.io.PrintWriter

getWriter()

Возвращает объект PrintWriter для отправки символов клиенту

boolean

isCommitted()

Возвращает логическое значение, отправлен ли ответ

void

reset ()

Очищает буфер от всех данных, в том числе от статус- кода и заголовков

Таблица П2.13 (окончание)

Тип

Метод

void

resetBuffer()

 

Очищает буфер ответа, но оставляет заголовки и статус-

 

код

void

setBufferSize(int size)

 

Устанавливает предпочтительный размер буфера для

 

тела ответа

void

setContentLength(int len)

 

Устанавливает длину тела в ответе HTTP, этот метод ус

 

танавливает значение, используемое в заголовке

 

Content-Length

void

setContentType(java.lang.String type)

 

Устанавливает тип содержимого, посылаемого в ответе

 

клиенту

void

setLocale(java.util.Locale loc)

 

Устанавливает locale для ответа, в том числе устанав

 

ливает значения и других заголовков

Диспетчер запросов перенаправляет клиентский запрос для обработки с помощью тех или иных ресурсов (табл. П2.14).

Таблица П2.14. Методы интерфейса Requestoispatcher

Тип

Метод

void

forward(ServletRequest request, ServletResponse response)

 

Перенаправляет запрос от сервлета другому ресурсу (сервлету, странице

 

JSP, файлу HTML)

void

include(ServletRequest request, ServletResponse response)

 

Вставляет в ответ содержимое ресурса (сервлета, страницы JSP, страницы

 

HTML)

Класс HttpServlet содержит набор методов для обработки различных типов HTTP-запросов (табл. П2.15).

Таблица П2.15. Методы класса HttpServlet

Тип

Метод

protected void

doDelete(HttpServletRequest req,

 

HttpServletResponse resp)

 

Вызывается сервером посредством метода service для

 

обработки запросов delete

Таблица П2.15 (окончание)

Тип

 

Метод

 

protected

void

doGet(HttpServletRequest req, HttpServletResponse resp) Используется для обработки запросов get

 

protected

void

doHead(HttpServletRequest req, HttpServletResponse resp) Обрабатывает запрос head

 

protected

void

doOptions(HttpServletRequest req, HttpServletResponse resp) Обрабатывает запрос options

 

protected

void

doPost(HttpServletRequest req, HttpServletResponse resp) Обрабатывает запрос post

 

protected

void

doPut(HttpServletRequest req, HttpServletResponse resp) Обрабатывает запрос put

 

protected

void

doTrace(HttpServletRequest req, HttpServletResponse resp) Обрабатывает запрос trace

 

protected

long

getLastModified(HttpServletRequest req) Возвращает время последней модификации

HttpServletRequest в миллисекундах с 1 1970 года

объекта января

protected

void

service(HttpServletRequest req, HttpServletResponse resp) Выполняет обработку стандартных HTTP-запросов, правляя их соответствующему методу doxxx

перена-

void

 

service(ServietRequest req, ServletResponse res) Перенаправляет запрос

 

Интерфейс HttpServletRequest используется для работы с HTTP-ответами (табл. П2.16).

Таблица П2.16. Переменные интерфейса HttpServletRequest

Тип

 

 

Переменная

static java.

.lang.

.String

BASIC AUTH

 

 

 

Базовая аутентификация

static java.

.lang.

.String

CLIENT CERT AUTH

 

 

 

Базовая аутентификация

Таблица П2.16 (окончание)

Тип

 

 

Переменная

static java.

.lang.

.String

DIGEST AUTH

 

 

 

Идентификатор базовой аутентификации

static java.

.lang.

.String

FORM AUTH

Методы интерфейса HttpServletRequest служат для работы с HTTP- запросом, в том числе используются при работе с различными компонентами HTTP-запроса (табл. П2.17).

Таблица П2.17. Методы интерфейса HttpServletRequest

Тип

 

 

Метод

java.

.lang.

.String

getAuthType()

Возвращает тип аутентификации

java.

.lang.

.String

getContextPath()

Возвращает часть uri, которая указывает на контекст запроса

Cookie[]

 

getCookies()

Возвращает массив объектов Cookie, посылаемых клиентом с запросом

long

 

 

getDateHeader(java.lang.String name) Возвращает значение соответствующего заголовка в виде long

java.

.lang.

.String

getHeader(java.lang.String name) Возвращает заголовок запроса в виде строки string

java.

.util.

.Enumeration

getHeaderNames()

Возвращает enumeration со всеми именами заголовков, содержащимися в запросе

java.

.util.

.Enumeration

getHeaders(j ava.lang.String name) Возвращает все значения соответствующего заголовка В виде Enumeration объектов String

int

 

 

getlntHeader(java.lang.String name) Возвращает значение заголовка как int

java.

.lang.

.String

getMethod()

Возвращает HTTP-метод запроса (например, get, post и put)

java.

.lang.

.String

getPathlnfo()

Возвращает дополнительную информацию, содержащуюся в URL

Таблица П2.17 (продолжение)

Тип

 

 

Метод

java.

.lang.

.String

getPathTranslated()

Возвращает дополнительную информацию после имени сервлета, но до строки запроса

java.

.lang.

.String

getQueryString()

Возвращает строку запроса, которая содержит часть URL после пути

java.

.lang.

.String

getRemoteUser()

Возвращает имя login, если пользователь идентифицирован, ИЛИ null

java.

.lang.

.String

getRequestedSessionld()

Возвращает идентификатор сессии, указанный клиентом

java.

.lang.

.String

getRequestURI()

Возвращает часть URL начиная с имени протокола до строки запроса в первой строке HTTP-запроса

java.

.lang.

.StringBuffer

getRequestURL()

Восстанавливает URL, использованный клиентом для создания запроса

java.

.lang.

.String

getServletPath()

Возвращает часть URL, которая вызывает сервлет

HttpSession

getSession()

Возвращает текущую сессию, связанную с запросом, если запрос еще не имеет сессии, то сессия будет создана

HttpSession

getSession(boolean create) Возвращает текущую сессию HttpSession, связанную с запросом, если сессии нет и create имеет значение true, то создает новую сессию

java.

.security.Principal

getUseгPrincipal()

Возвращает объект java. security. Principal с именем пользователя

boolean

 

isRequestedSessionldFromCookie() Проверяет, является ли запрошенный идентификатор сессии ID полученным посредством cookie

boolean

 

isRequestedSessionldFromUrl() Устарел. Используется

isRequestedSessionldFromURL()

boolean

 

isRequestedSessionldFromURL()

Проверяет, получен ли идентификатор сессии id

в запросе в виде составляющей части URL

Таблица П2.17 (окончание)

Тип

Метод

boolean

isRequestedSessionldValid()

 

Проверят, является ли запрошенный идентификатор

 

сессии действительным

boolean

isUserlnRole(java.lang.String role)

 

Возвращает логическое значение, истина возвра

 

щается тогда, когда опознанный пользователь об

 

ладает указанной ролью

Интерфейс HttpServietResponce служит для работы с HTTP-ответом (табл. П2.18).

Таблица П2.18. Переменные интерфейса HttpServietResponce

Тип

 

Переменные (значения для статус-кодов)

static

int

SC_ACCEPTED

Код 202. Запрос принят, но обработка не завершена

static

int

SC BAD GATEWAY

Код 502. Неверный ответ прокси-сервера или шлюза

static

int

SC BAD REQUEST

Код 400. Клиентский запрос синтаксически неверен

static

int

SC_CONELICT

Код 409. Запрос не может быть завершен ввиду текущего состояния ресурса

static

int

SC_CONTINUE

Код 100. Клиент должен продолжить работу с запросом

static

int

SC CREATED

Код 201. Запрос обработан, на сервер создан новый ресурс

static

int

SC EXPECTATION FAILED

Код 417. Сервер не удовлетворяет условиям, указанным в заголовке Expect

static

int

SC FORBIDDEN

Код 403. Сервер понял запрос, но отказался его выполнять

static

int

SC GATEWAY TIMEOUT

Код 504. Сервер не получил своевременного ответа от другого сервера (при работе с прокси или шлюзом)

static

int

SC_GONE

Код 410. Ресурс недоступен, переадресация не установлена

static

int

SC HTTP VERSION NOT SUPPORTED

Код 505. Сервер не поддерживает или отказывается работать с указанной версией протокола HTTP

Таблица П2.18 (продолжение)

Тип

 

Переменные (значения для статус-кодов)

static

int

sc internal server error

Код 500. Ошибка сервера, запрос не выполнен

static

int

sc length required

Код 411 запрос не может быть выполнен без указания Content- Length

static

int

sc method not allowed

Код 405. Метод, указанный в Request-Line в указанном ресурсе (адрес Request-URi), не разрешен

static

int

sc moved permanently

Код 301. Ресурс постоянно удален в новое место

static

int

sc moved temporarily

Код 302. Ресурс временно удален в новое место

static

int

sc_multiple_choices

Код 300. Запрошенный ресурс соответствует любому из набора представлений, каждое из которых располагается по собственному адресу

static

int

sc no content

Код 204. Запрос выполнен, но новой информации для возврата нет

static

int

sc non authoritative information

Код 203. Метаинформация, посланная сервером, не относится к серверу (создана не сервером)

static

int

sc not acceptable

Код 406. Ресурс не может создавать ответ, который бы соответствовал посланным клиентом заголовкам Accept

static

int

sc not found

Код 404. Запрошенный ресурс недоступен

static

int

sc not implemented

Код 501. Сервер не поддерживает функций, требуемых для выполнения запроса

static

int

sc not modified

Код 304. Обнаружен условный запрос get, ресурс доступен, но не изменен

static

int

sc ок

Код 200. Запрос благополучно выполнен

static

int

sc partial content

Код 206. Сервер выполнил частичный запрос get

static

int

sc payment required Код 402. Заразервировано

static

int

sc precondition failed

Код 412. Условия, полученные с заголовками, привели к появлению значений false при обработке сервером

Таблица П2.18 (окончание)

Тип

 

Переменные (значения для статус-кодов)

static

int

SC PROXY AUTHENTICATION REQUIRED Код 407. Клиент должен быть идентифицирован

static

int

SC REQUEST ENTITY TOO LARGE

Код 413. Сервер отказывается обработать запрос ввиду того, что сущность в запросе превышает допустимый размер

static

int

SC REQUEST TIMEOUT

Код 408. Клиент не направил запрос в течение промежутка времени, которое было отведено серверу для ожидания

static

int

SC_REQUEST_URI_TOO_LONG

Код 414. Сервер не обработал запрос, т. к. адрес Request-URi оказался длиннее того, что сервер в состоянии интерпретировать

static

int

SC REQUESTED RANGE NOT SATISEIABLE Код 416. Сервер не может обработать запрос

static

int

SC RESET CONTENT

Код 205. Агент должен обновить вид документа, который отправляет запрос

static

int

SC SEE OTHER

Код 303. Ответ на запрос может быть получен по другому URI

static

int

SC SERVICE UNAVAILABLE

Код 503. HTTP-сервер временно перегружен и не может выполнить запрос

static

int

SC_SWITCHING_PROTOCOLS

Код 101. Сервер меняет протокол в соответствии с заголовком

Upgrade

static

int

SC TEMPORARY REDIRECT

Код 307. Запрошенный ресурс временно расположен по другому URI

static

int

SC UNAUTHORIZED

Код 401. Запрос требует аутентификации

static

int

SC UNSUPPORTED MEDIA TYPE

Код 415. Сервер отказывается обработать запрос, поскольку сущность запроса записана в формат, не поддерживается ресурсом с учетом указанного метода

static

int

SC_USE_PROXY

Код 305. Запрошенный ресурс должен быть доступен только через прокси-сервер, адрес которого указан в заголовке Location

Методы интерфейса HttpServietResponce используются для создания различных элементов, посылаемых в составе HTTP-ответа (табл. П2.19).

Таблица П2.19. Методы интерфейса HTTPServletResponce

Тип

 

 

Метод

void

 

 

addCookie(Cookie cookie) Вставляет Cookie в ответ

void

 

 

addDateHeader(java.lang.String name, long date) Вставляет заголовок ответа с именем и датой

void

 

 

addHeader(java.lang.String name, java.lang.String value)

Вставляет в ответ заголовок с указанным именем и значением

void

 

 

addlntHeader(java.lang.String name, int value) Вставляет в ответ заголовок с именем и целым значением

boolean

 

ContainsHeader(java.lang.String name) Возвращает логическое значение, существует ли заголовок с указанным именем

java.

lang.

. String

encodeRedirectUrl(java.lang.String url) Устарел. Используется encodeRedirectURL (String url)

java.

lang.

. String

encodeRedirectURL(java.lang.String url) Кодирует указанный URL для использования в методе sendRedirect, если кодировка не требуется, то оставляет его неизмененным

java.

lang.

. String

encodeUrl(java.lang.String url) Устарел. Используется encodeURL (string url)

java.

lang.

. String

encodeURL(java.lang.String url) Кодирует URL

void

 

 

sendError(int sc)

Посылает клиенту ответ об ошибке с указанием заданного кода ошибки и очищает буфер

void

 

 

sendError(int sc, java.lang.String msg) Посылает клиенту ответ об ошибке с указанием заданного кода ошибки и очищает буфер. Посылает сообщение

void

 

 

sendRedirect(java.lang.String location) Посылает адрес для перенаправления запроса

void

 

 

setDateHeader(java.lang.String name, long date) Устанавливает заголовок ответа с заданным именем и датой

void

 

 

setHeader(java.lang.String name, java.lang.String value)

Устанавливает заголовок ответа с именем и значением

void

 

 

setlntHeader(java.lang.String name, int value) Устанавливает заголовок ответа с заданным именем и целым значением

Таблица П2.19 (окончание)

Тип

Метод

void

setStatus(int sc)

 

Устанавливает статус-код для ответа

void

setStatus (int sc, java.lang.String sm)

 

Устарел. Используется setStatus (intj

В табл. П2.20 приведены методы класса servietRequestwrapper. Этот класс имплементирует интерфейс ServletRequest.

Таблица П2.20. Методы класса ServietRequestwrapper

Тип

 

 

Метод

java.

.lang.

.Object

getAttribute(java.lang.String name) Возвращает значение указанного атрибута в виде объекта Object, или null

java.

.util.

.Enumeration

getAttributeNames ()

Возвращает Enumeration с именами атрибутов сервлета

java.

.lang.

.String

getCharacterEncoding() Имя кодировки символов

Int

 

 

getContentLength()

Длина (в байтах) тела запроса. (-1) — если длина неизвестна

java.

.lang.

.String

getContentType()

Возвращает тип MIME, используемый в теле запроса,

ИЛИ null

ServletInputStream

getInputStream()

Получает тело запроса с использованием

ServletInputStream

java.

.util.

. Locale

getLocale()

Возвращает предпочтительный Locale, заданный в клиенте в соответствии с заголовком Accept-Language

java.

.util.

.Enumeration

getLocales()

Возвращает Enumeration объектов типа Locale в убывающем порядке от наиболее предпочтительного на основе заголовка Accept-Language

java.

.lang.

.String

getParameter(java.lang.String name) Возвращает значение параметра в виде строки

String,ИЛИ null

java.

.util.

.Map

getParameterMap()

Возвращает java.util .Map для параметров запроса

Таблица П2.20 (продолжение)

Тип

 

 

Метод

java.

.util.

.Enumeration

getParameterNames ()

Возвращает Enumeration объектов string с именами параметров запроса

java.

.lang.

.String[]

getParameterValues(java.lang.String name) Возвращает массив объектов string со всеми значениями для указанного имени параметра или null, если параметр не существует

java.

.lang.

.String

getProtocol()

Возвращает имя и версию протокола в форме protocol/majorVersion.minorVersion, например, НТТР/1.1

java.

.io.BufferedReader

getReader()

Получает тело запроса в виде символов с использованием BufferedReader

java.

.lang.

.String

getRealPath(java.lang.String path) Устарел. Используется

ServletContext.getRealPath(java.lang.String)

java.

.lang.

.String

getRemoteAddr()

Возвращает адрес IP клиента, пославшего запрос

java.

.lang.

.String

getRemoteHost()

Возвращает полное имя клиента, пославшего запрос

RequestDispatcher java.lang.String

getRequestDispatcher(java.lang.String path) Возвращает объект RequestDispatcher, который используется с ресурсом по указанному пути

getScheme()

Возвращает имя scheme для выполнения запроса (например http, https, ftp)

java.

.lang.

.String

getServerName()

Возвращает имя хоста сервера, получившего запрос

int

 

 

getServerPort()

Возвращает номер порта, на котором был получен запрос

boolean

 

isSecure()

Возвращает логическое значение, показывающее, был ли получен запрос по безопасному каналу, например, по HTTPS

void

 

 

removeAttribute(java.lang.String name) Удаляет атрибут из запроса

Таблица П2.20 (окончание)

Тип

Метод

void

setAttribute(java.lang.String name,

 

java.lang.Object o)

 

Задает атрибут в запросе

void

setCharacterEncoding(java.lang.String env)

 

Переустанавливает имя кодировки запроса

В табл. П2.21 приведены методы класса ServletResponceWrapper. Класс ServletResponceWrapper имплементирует методы интерфейса ServletResponce.

Таблица П2.21. Методы класса ServletResponceWrapper

Тип

 

Метод

void

 

flushBuffer()

Отсылает содержимое буфера клиенту

int

 

getBufferSize()

Возвращает реальный размер буфера, посылаемого клиенту

java.

lang.String

getCharacterEncoding()

Возвращает название набора символов, используемого в теле ответа

java.

util.Locale

getLocale()

Возвращает объект Locale, связанный с ответом

ServletOutputStream

getOutputStream()

Возвращает ServletOutputStream для записи двоичных данных ответа

java.

io.PrintWriter

getWriter()

Возвращает объект PrintWriter для отправки символов клиенту

boolean

isCommitted()

Возвращает логическое значение, отправлен ли ответ

void

 

reset()

Очищает буфер от всех данных, в том числе от статус- кода и заголовков

void

 

resetBuffer()

Очищает буфер ответа, но оставляет заголовки и статус- код

void

 

setBufferSize(int size)

Устанавливает предпочтительный размер буфера для тела ответа

Таблица П2.21 (окончание)

Тип

Метод

void

setContentLength(int len)

Устанавливает длину тела в ответе HTTP, этот метод устанавливает значение, используемое в заголовке

Content-Length

void

setContentType(java.lang.String type) Устанавливает тип содержимого, посылаемого в ответе клиенту

void

setLocale(java.util.Locale loc) Устанавливает locale для ответа, в том числе устанавливает значения и других заголовков

Табл. П2.22 содержит методы класса HttpServletRequestWrapper. Класс HttpServletRequestWrapper имплементирует интерфейс HttpServletRequeset.

Таблица П2.22. Методы класса HttpServletRequestWrapper

Тип

 

 

Метод

java.

.lang.

.String

getAuthType()

Возвращает тип аутентификации

java.

.lang.

.String

getContextPath()

Возвращает часть URI, которая указывает на контекст запроса

Cookie[]

 

getCookies()

Возвращает массив объектов Cookie, посылаемых клиентом с запросом

long

 

 

getDateHeader(java.lang.String name) Возвращает значение соответствующего заголовка в виде long

java.

.lang.

.String

getHeader(java.lang.String name) Возвращает заголовок запроса в виде строки string

java.

.util.

.Enumeration

getHeaderNames()

Возвращает enumeration со всеми именами заголовков, содержащимися в запросе

java.

.util.

.Enumeration

getHeaders(java.lang.String name) Возвращает все значения соответствующего заголовка В виде Enumeration объектов String

int

 

 

getlntHeader(java.lang.String name) Возвращает значение заголовка как int

Таблица П2.22 (продолжение)

Тип

 

 

Метод

java.

.lang.

.String

getMethod()

Возвращает HTTP метод запроса (например, get, post, put)

java.

.lang.

.String

getPathlnfo()

Возвращает дополнительную информацию, содержащуюся в URL

java.

.lang.

.String

getPathTranslated()

Возвращает дополнительную информацию после имени сервлета, но до строки запроса

java.

.lang.

.String

getQueryString()

Возвращает строку запроса, которая содержит часть URL после пути

java.

.lang.

.String

getRemoteUser()

Возвращает имя login, если пользователь идентифицирован, ИЛИ null

java.

.lang.

.String

getRequestedSessionld()

Возвращает идентификатор сессии, указанный клиентом

java.

.lang.

.String

getRequestURI()

Возвращает часть URL начиная с имени протокола до строки запроса в первой строке HTTP-запроса

java.

.lang.

. StringBuffer

getRequestURL()

Восстанавливает URL, использованный клиентом для создания запроса

java.

.lang.

.String

getServletPath()

Возвращает часть URL, которая вызывает сервлет

HttpSession

getSession()

Возвращает текущую сессию, связанную с запросом, если запрос еще не имеет сессии, то сессия будет создана

HttpSession

getSession(boolean create) Возвращает текущую сессию HttpSession, связанную с запросом, если сессии нет и create имеет значение true, то создает новую сессию

java.

.security.Principal

getUserPrincipal()

Возвращает объект java. security. Principal с именем пользователя

boolean

 

isRequestedSessionldFromCookie() Проверяет, является ли запрошенный идентификатор сессии ID полученным посредством Cookie

Таблица П2.22 (окончание)

Тип

Метод

boolean

isRequestedSessionldFromUrl()

 

Устарел. Используется

 

isRequestedSessionldFromURL()

boolean

isRequestedSessionldFromURL()

 

Проверяет, получен ли идентификатор сессии id

 

в запросе в виде составляющей части URL

boolean

isRequestedSessionldValid()

 

Проверят, является ли запрошенный идентификатор

 

сессии действительным

boolean

isUserlnRole(java.lang.String role)

 

Возвращает логическое значение, истина возвраща

 

ется тогда, когда опознанный пользователь обладает

 

указанной ролью

Табл. П2.23 содержит методы класса HttpServletResponceWrapper. Класс HttpServletResponceWrapper имплементирует интерфейс HttpServletResponce, описание методов которого приведено в табл. П2.19.

Таблица П2.23. Методы класса HttpServletResponceWrapper

Тип

 

 

Метод

void

 

 

addCookie(Cookie cookie) Вставляет Cookie в ответ

void

 

 

addDateHeader(java.lang.String name, long date) Вставляет заголовок ответа с именем и датой

void

 

 

addHeader(java.lang.String name, java.lang.String value)

Вставляет в ответ заголовок с указанным именем и значением

void

 

 

addlntHeader(java.lang.String name, int value) Вставляет в ответ заголовок с именем и целым значением

boolean

 

ContainsHeader(java.lang.String name) Возвращает логическое значение, существует ли заголовок с указанным именем

java.

lang.

. String

encodeRedirectUrl(java.lang.String url) Устарел. Используется encodeRedirectURL (String url)

java.

lang.

. String

encodeRedirectURL(java.lang.String url) Кодирует указанный URL для использования в методе sendRedirect, если кодировка не требуется, то оставляет его неизмененным

Таблица П2.23 (окончание)

Тип

 

 

Метод

java.

lang.

. String

encodeUrl(java.lang.String url) Устарел. Используется encodeURL (string url)

java.

lang.

. String

encodeURL(java.lang.String url) Кодирует URL

void

 

 

sendError(int sc)

Посылает клиенту ответ об ошибке с указанием заданного кода ошибки и очищает буфер

void

 

 

sendError(int sc, java.lang.String msg) Посылает клиенту ответ об ошибке с указанием заданного кода ошибки и очищает буфер. Посылает сообщение

void

 

 

sendRedirect(java.lang.String location) Посылает адрес для перенаправления запроса

void

 

 

setDateHeader(java.lang.String name, long date) Устанавливает заголовок ответа с заданным именем и датой

void

 

 

setHeader(java.lang.String name, java.lang.String value)

Устанавливает заголовок ответа с именем и значением

void

 

 

setlntHeader(java.lang.String name, int value) Устанавливает заголовок ответа с заданным именем и целым значением

void

 

 

setStatus(int sc) Устанавливает статус-код для ответа

void

 

 

setStatus (int sc, java.lang.String sm) Устарел. Используются setStatus (int)

Вывод информации сервлет осуществляет при помощи методов, описанных В классе ServletOutputStream (табл. П2.24).

Таблица П2.24. Методы класса ServletOutputStream

Тип

Метод

void

print(boolean b)

 

Посылает клиенту логическое значение без символов перевода (CRLF)

 

на конце

void

print(char с)

 

Посылает клиенту символ без (CRLF) на конце

void

print(double d)

 

Посылает клиенту величину типа double без символов (CRLF) на конце

Таблица П2.24 (окончание)

Тип

Метод

void

print(float f)

 

Посылает клиенту величину типа float без символов (CRLF) на конце

void

print(int i)

 

Посылает клиенту величину типа int без символов (CRLF) на конце

void

print(long l)

 

Посылает клиенту значение типа long без символов (CRLF) на конце

void

print(java.lang.String s)

 

Посылает клиенту величину типа string без символов (CRLF) на

 

конце

void

println()

 

Посылает клиенту символ перевода строки (CRLF)

void

println(boolean b)

 

Посылает значение типа boolean с символами (CRLF) на конце

void

println(char с)

 

Посылает символ типа char с символами (CRLF) на конце

void

println(double d)

 

Посылает значение типа double с символами (CRLF) на конце

void

println(float f)

 

Посылает значение типа float с символами (CRLF) на конце

void

println(int i)

 

Посылает значение типа int с символами (CRLF) на конце

void

println(long 1)

 

Посылает значение типа long с символами (CRLF) на конце

void

println(java.lang.String s)

 

Посылает значение типа string с символами (CRLF) на конце

Класс cookie содержит методы, используемые для работ с HTTP Cookikes (табл. П2.25).

Таблица П2.25. Методы класса Cookie

Тип Метод

Java.lang.Object clone()

Переопределяет стандартный метод java.lang.Object.clone для возвращения копии Cookie

Таблица П2.25 (окончание)

Тип

 

 

Метод

Java.

lang.

. String

getComment()

Возвращает комментарий, описывающий Cookie или null

Java.

lang.

. String

getDomain()

Возвращает доменное имя для Cookie

Int

 

 

getMaxAge()

Возвращает максимальный возраст в секундах, допустимый для Cookie, по умолчанию -1 — существует до закрытия браузера

Java.

lang.

. String

getName() Имя Cookie

Java.

lang.

. String

getPath()

Путь на сервере, куда возвращается Cookie

Boolean

 

getSecure()

Возвращает true, если браузер возвращает Cookies только с использованием безопасного протокола, false — Cookies могут быть посланы с использованием любого протокола

Java.

lang.

. String

getValue() Значение Cookie

Int

 

 

getVersion() Версия протокола

Void

 

 

setComment(j ava.lang.String purpose) Комментарий

Void

 

 

setDomain(java.lang.String pattern) Домен, с которым связаны Cookie

Void

 

 

setMaxAge(int expiry)

Void

 

 

setPath(java.lang.String uri) Путь, по которому клиент возвращает Cookie

void

 

 

setSecure(boolean flag)

Сообщает браузеру, должен ли браузер посылать Cookie по безопасному протоколу HTTPS или SSL

void

 

 

setValue(java.lang.String newValue) Задает новое значение для Cookie

void

 

 

setVersion(int v) Задает протокол

Интерфейс HttpSession содержит описания методов, позволяющих работать с сессиями (табл. П2.26).

Таблица П2.26. Методы интерфейса HttpSession


Тип

 

 

Метод

 

java.

. lang.

.Object

GetAttribute(java.lang.String name) Возвращает объект по указанному имени в пределах сессии или null, если объекта нет

 

Java.

. util.

. Enumeration

getAttributeNames ()

Возвращает Enumeration объектов типа String с именами объектов, связанных с сессией

 

long

 

 

getCreationTime()

Возвращает время создания сессии в миллисекундах начиная с 1 января 1970 года

 

java.

. lang.

. String

getld()

Возвращает строку с уникальным идентификатором сессии

 

long

 

 

getLastAccessedTime()

Возвращает время последнего обращения клиента в миллисекундах с 1 января 1970 года

 

int

 

 

getMaxInactivelnterval()

Максимальный интервал между обращениями клиента в секундах, в течение которого остается действительной текущая сессия

 

ServletContext

GetServletContext()

Возвращает ServletContext, к которой относится текущая сессия

 

HttpSessionContext

GetSessionContext() Устарел

 

java.

. lang.

.Object

getValue(java.lang.String name)

Устарел. Используется

getAttribute(java.lang.String)

 

java.

. lang.

. String[]

getValueNames()

Устарел. Используется getAttributeNames ()

 

void

 

 

invalidate () Удаляет сессию

 

boolean

 

isNew()

Возвращает true, если клиент не работает с сессией

 

void

 

 

putValue(java.lang.String name, java.lang.Object value) Устарел. Используется

setAttribute(java.lang.String, j ava.lang.Obj ect)

 

void

 

 

removeAttribute(java.lang.String name) Удаляет из сессии объект с указанным именем

 

Таблица П2.26 (окончание)

Тип

Метод

void

RemoveValue(java.lang.String name)

 

Устарел. Используется

 

removeAttribute(java.lang.String)

void

setAttribute(java.lang.String name,

 

java.lang.Object value)

 

Объект с указанным именем включается в состав

 

сессии

void

setMaxInactivelnterval(int interval)

 

Время в секундах между клиентскими запросами, по

 

истечении которого контейнер прекращает сессию

Методы класса PageContext приводятся в табл. П2.27.

 

Таблица П2.27. Методы класса PageContext

Тип

 

 

 

Метод

abstract

j ava.

. lang.

. Object

findAttribute(java.lang.String name) Производит поиск атрибутов на странице, сессии, приложении и возвращает соответствующее значение (или null)

abstract

void

 

 

forward(java.lang.String relativeUrlPath) Перенаправляет текущие объекты типов ServietRequest И ServletResponse К другому активному компоненту приложения

abstract

j ava.

. lang.

. Object

getAttribute(java.lang.String name) Возвращает объект по имени, или null

abstract

j ava.

. lang.

. Object

getAttribute(java.lang.String name, int scope)

Возвращает объект по имени, расположенный в указанной зоне доступности, или возвращает null, если объект не найден

Abstract java.util

.Enumeration

getAttributeNamesInScope(int scope) Все атрибуты в указанной зоне видимости

abstract

int

 

 

getAttributesScope(j ava.lang.String name) Возвращает область доступа, из которой виден атрибут с указанным именем

Abstract java.lang

.Exception

 

getException()

Текущее значение объекта исключения

Таблица П2.27 (продолжение)

Тип

 

Метод

abstract

JspWriter

getOut()

Текущее значение объекта потока вывода (JspWriter)

abstract

j ava.lang.Obj ect

getPage()

Текущее значение для объекта страницы

(Servlet)

abstract

ServletRequest

getRequest()

Текущее значение для объекта запроса

(ServletRequest)

abstract

ServletResponse

getResponse()

Текущее значение для объекта ответа

(ServletResponse)

abstract

ServletConfig

getServletConfig() Получает объект типа ServletConf ig

abstract

ServletContext

getServletContext()

Получает объект типа ServletContext

abstract

HttpSession

getSession()

Текущее значение объекта сессии (HttpSession)

abstract

void

handlePageExcept ion(j ava.lang.Except ion e) Метод используется для обработки исключительной ситуации на странице, для этого производится перенаправление исключения на определенную страницу ошибки или для выполнения каких-либо действий

abstract

void

handlePageExcept ion(j ava.lang.Throwable t) Идентичен методу

handlePageException(Exception) , но в качестве аргумента выступает Throwable

abstract

void

include(j ava.lang.String relativeUrlPath) Приводит к тому, что указанный ресурс будет выполняться совместно для обработки текущих объектов ServletRequest и ServletResponse в составе текущего потока Thread

abstract

void

initialize(Servlet servlet, ServletRequest request, ServletResponse response, java.lang.String errorPageURL, boolean needsSession, int bufferSize, boolean autoFlush)

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

Таблица П2.27 (окончание)

Тип

 

Метод

JspWriter

 

popBody()

Возвращает предыдущий фрагмент потока вывода JspWriter, сохраненный при вызове

pushBody()

BodyContent

pushBody()

Возвращает новый объект BodyContent

abstract

void

release ()

Освобождает состояние PageContext, снимает все внутренние ссылки, подготавливает PageContext для нового использования с применением initialize ()

abstract

void

removeAtt гibute(j ava.lang.St ring name) Удаляет ссылку на объект с указанным именем

abstract

void

removeAttгibute(

java.lang.String name, int scope) Удаляет ссылку на объект с указанным именем в пределах заданной области видимости

abstract

void

setAttribute(java.lang.String name, java.lang.Object attribute) Регистрирует объект с заданным именем

abstract

void

setAttribute(java.lang.String name, java.lang.Object o, int scope) Регистрирует объект по указанному имени в пределах указанной области видимости

 

Источник: Будилов В. А. Интернет-программирование на Java. — СПб.: БХВ-Петербург, 2003. — 704 е.: ил.

По теме:

  • Комментарии