Запрос клиента JSP, ответ сервера & Коды состояния HTTP

Содержание:

Anonim

Действия JSP, которые используют конструкции в синтаксисе XML для управления поведением механизма сервлета. Мы узнаем более подробно о различных элементах JSP Action, таких как запрос клиента, ответ сервера, коды состояния HTTP.

В этом руководстве вы узнаете:

  • Запрос клиента JSP
  • Ответ сервера JSP
  • Коды состояния JSP HTTP

Запрос клиента JSP

  • Когда веб-страница запрашивается, она отправляет информацию на веб-сервер в заголовке HTTP.
  • Мы можем использовать эту информацию с помощью объекта HTTPServletRequest.
  • Информация, отправляемая браузером, хранится в заголовке запроса HTTP-запроса.
  • Мы используем разные заголовки для отправки информации объекту запроса.

Ниже описаны различные заголовки:

Заголовок Описание Пример
Принимать Он определяет типы MIME, которые браузер или другие клиенты могут обрабатывать. Изображение / png или изображение / jpeg.webp
Принять-кодировка Он использует набор символов, используемый браузером для отображения информации. ISO-8859-1
Принять- Кодирование Он определяет тип кодировки, обрабатываемой браузером. Gzip или сжатие
Принять-язык Он определяет указанный клиентом язык En, en_us
Авторизация Заголовок, используемый клиентами при попытке доступа к веб-страницам, защищенным паролем
Связь Он указывает, может ли клиент обрабатывать постоянные HTTP-соединения (браузер может получать несколько файлов) Keep-alive
Длина содержимого Применимо к размещению запросов. Он дает размер пост-данных в байтах
Cookie-файлы Возвращает cookie на сервер (те, которые ранее были отправлены в браузер)
Хозяин Задает хост и порт исходного URL-адреса.
Если изменено с Это указывает на то, что ему требуется только страница, если она была изменена или модифицирована.
Если не изменено с Это означает, что страница требуется только в том случае, если она не была изменена или модифицирована.
Реферер Указывает URL-адрес ссылающейся URL-страницы
Пользователь-агент Идентифицирует браузер или клиент, делающий запрос

Для чтения заголовка HTTP на странице JSP используются следующие методы:

  1. Cookie [] getCookies () - возвращает массив, содержащий объекты cookie, отправленные клиентом.
  2. Перечисление getAttributeNames () - содержит перечисление имён атрибутов для запроса
  3. Перечисление getHeaderNames () - содержит перечисление имен заголовка.
  4. Перечисление getParameterNames () - содержит перечисление имен получаемых параметров в запросе.
  5. HttpSessiongetSession () - возвращает текущий сеанс, связанный с запросом, или, если сеанса нет, он создаст новый.
  6. Locale getLocale () - возвращает предпочтительный языковой стандарт, в котором клиент будет принимать контент. Он был назначен ответу. По умолчанию значение будет локалью сервера по умолчанию.
  7. Object getAttribute (String name) - возвращает значение названного атрибута как объекта.
  8. ServletInputStreamgetInputStream () - получает тело запроса в виде двоичных данных.
  9. String getAuthType () - возвращает имя схемы аутентификации для защиты сервлета
  10. String getCharacterEncoding () - возвращает название кодировки символов, использованной в теле запроса.
  11. String getContentType () - возвращает MIME-тип тела запроса.
  12. String getContextPath () - возвращает часть URI запроса, указывающую контекстный путь URI
  13. String getHeader (String name) - возвращает заголовок запроса в виде строки
  14. String getMethod () - возвращает имя метода HTTP, например GET, POST
  15. String getParameter (String name) - возвращает параметр запроса в виде строки.
  16. String getPathInfo () - возвращает информацию о пути, связанную с URL-адресом
  17. String getQueryString () - возвращает строку запроса, связанную с URL-адресом запроса.
  18. String getServletPath () - возвращает часть URL-адресов запроса, вызывающего JSP
  19. String [] getParameterValues ​​(String name) - возвращает массив строковых объектов, содержащих значения, которые имеет параметр запроса.

Пример:

В приведенном ниже примере мы используем разные методы с использованием объекта запроса.

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1" pageEncoding = "ISO-8859-1"%><% @ page import = "java.io. * java.util. *"%> Гуру клиентских запросов JSP 

Гуру клиентских запросов JSP

<%HttpSession gurusession = request.getSession ();out.print (" ");Локаль gurulocale = request.getLocale ();out.print (" ");Строка path = request.getPathInfo ();out.print (" ");Строка lpath = request.get ();out.print (" ");Строка servername = request.getServerName ();out.print (" ");int имя_порта = request.getServerPort ();out.print (" ");Перечисление hnames = request.getHeaderNames ();while (hnames.hasMoreElements ()) {String paramName = (String) hnames.nextElement ();out.print (" ");Строка paramValue = request.getHeader (paramName);out.println (" ");}%>

Расшифровка кода:

Строка кода 17: Используя объект запроса, мы получаем объект сеанса этого конкретного сеанса, и мы получаем значение объекта этого сеанса.

Строка кода 19: Используя объект запроса, мы получаем языковой стандарт этого конкретного сеанса i.een_US locale для этого JSP.

Строка кода 21: Используя объект запроса, мы получаем информацию о пути для этого JSP. В этом случае он имеет значение NULL, поскольку не указан путь к URL-адресу.

Строка кода 23: Используя объект запроса, мы получаем контекстный путь, то есть корневой путь

Строка кода 25: Используя объект запроса, мы получаем имя сервера.

Строка кода 27: Используя объект запроса, мы получаем порт сервера.

Строка кода 29-35: Используя объект запроса, мы получаем имена заголовков, которые выводятся как перечисление, и, следовательно, мы получаем все значения заголовков в именах заголовков.

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

Когда вы выполните приведенный выше код, вы получите следующий результат:

Выход :

Мы получаем ряд значений, таких как имя сеанса, имя локали, имя пути, имя сервера, имя порта, хост, путь контекста и все значения заголовка этого JSP.

Ответ сервера JSP

  • Когда запрос обрабатывается, а затем генерируется ответ от веб-сервера. Он состоит из строки состояния, заголовков ответов, пустой строки и документа.
  • Это объект класса HTTPServletResponse, который является объектом ответа.
  • Строка состояния - это версия HTML.

Заголовки ответа указаны ниже:

заголовок гуру значение заголовка гуру
Имя сеанса " + gurusession + "
Имя локали " + gurulocale + "
Имя пути: " + path + "
Контекстный путь " + lipath + "
Имя сервера " + servername + "
Порт сервера " + имя порта + "
" + paramName + "" + paramValue + "
Заголовок Описание
Позволять Он определяет методы запроса, такие как GET, POST, которые запрашивает сервер.
Кэш-контроль Документ ответа можно кэшировать. Он может быть публичным, частным и без кеша. Отсутствие кеширования указывает, что документ не должен кэшироваться
Связь Он указывает, должен ли браузер использовать сохраненные HTTPConnections или нет. Значение Close означает, что браузер не должен использовать постоянные соединения в HTTPConnections, а "keep-alive" означает использование постоянных соединений.
Content-Disposition Спрашивать пользователя, сохранять ответ на диск или нет
Кодирование содержимого Страница должна быть закодирована во время передачи
Длина содержимого Количество байтов в ответе
Тип содержимого Он определяет тип ответа MIME.
Истекает Указывает, до каких пор содержимое следует считать устаревшим и не кэшировать.
Последнее изменение Указывает, когда документ был в последний раз изменен.
Место расположения Он должен быть включен во все ответы, в которых код состояния имеет код состояния 300.
Обновить Он указывает, как найти обновленную страницу.
Повторить после Его можно использовать с ответом 503, чтобы сообщить клиенту, как скоро он может повторить запрос.
Set-cookie Определяет файл cookie, связанный со страницей

Ниже приведены методы, использующие объект ответа:

  1. String encodeRedirectURL (String URL) - кодирует URL в методе redirectURL.
  2. String encodeURL (String URL) - кодирует URL, включая идентификатор сеанса.
  3. Boolean containsHeader (String name) - содержит заголовок в JSP или нет.
  4. Boolean isCommited () - ответ был подтвержден или нет.
  5. Void addCookie (Cookie cookie) - добавляет cookie в ответ
  6. Void addDateHeader (String name, String value) - добавляет имя и значение даты заголовка ответа
  7. Void addHeader (String name, String value) - добавляет заголовок ответа с именем и значением
  8. Void addIntHeader (String name, int value) - добавляет заголовок ответа с именем и целочисленным значением
  9. Void flushBuffer () - принудительно выводит содержимое буфера на вывод клиенту.
  10. Void reset () - очищает данные в буфере.
  11. Void resetBuffer - очищает буфер содержимого в ответе без очистки кодов состояния.
  12. Void sendError (intsc, Stringmsg) - отправляет клиенту ответ об ошибке, используя код состояния.
  13. Void sendRedirect (расположение строки) - отправляет клиенту ответ временного перенаправления.
  14. Void setBufferSize (int size) - устанавливает размер буфера тела
  15. Void setCharacterEncoding (String charset) - устанавливает кодировку символов
  16. Void setContentType (String type) - устанавливает тип содержимого ответа
  17. Void setContentLength (intlen) - устанавливает длину содержимого ответа
  18. Void setLocale (Locale lcl) - устанавливает тип локали ответа
  19. Void setStatus (intsc) - устанавливает код статуса ответа

Пример:

В этом примере мы рассматриваем различные методы getLocale, flushbuffer, getWriter, get ContentType, setIntHeader.

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1" pageEncoding = "ISO-8859-1"%><% @ page import = "java.io. * java.util. *"%> Действия Гуру <центр>

Ответ гуру

<%Локаль lcl = response.getLocale ();out.println ("Язык: + lcl + "\ n");response.flushBuffer ();PrintWriter output = response.getWriter ();output.println ("Это от объекта записи");Тип строки = response.getContentType ();out.println ("Тип содержимого: + type + "\ n");// Установить обновление, время автозагрузки как 5 секундresponse.setIntHeader («Обновить», 5);// Получаем текущее времяДата dt = новая дата ();out.println ("Сегодняшняя дата: + dt.toString () + "\ n");%>

Расшифровка кода:

Строка кода 13: Используя объект ответа, мы получаем объект языкового стандарта этого сеанса JSP.

Строка кода 15: Используя объект ответа, flushbuffer используется для передачи содержимого буфера клиенту.

Строка кода 16: Используя объект ответа, мы получаем объект записи, который получает вывод в потоке вывода.

Строка кода 18: Используя объект ответа, мы получаем тип содержимого, то есть тип MIME объекта ответа

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

Когда вы выполните приведенный выше код, вы получите следующий результат:

Выход:

  • Здесь мы получаем результат, так как это от объекта записи из getWriter, который дает нам объект, и мы можем выводить его в потоке вывода.
  • Мы получаем локаль как en_us и тип контента как text / html
  • Мы получаем кодировку как ISO 8859
  • Сегодняшняя дата как текущая дата.

Коды состояния JSP HTTP

  • Когда запрос обрабатывается, генерируется ответ. Строка состояния ответа состоит из версии HTTP, кода состояния и связанного сообщения.
  • Сообщение напрямую связано с кодом состояния и версией HTTP и определяется сервером.
  • По умолчанию 200 устанавливается как код состояния в JSP, поэтому нам не нужно устанавливать его явно.
  • Мы можем установить как метод response.setStatus ()

Коды делятся на следующие 5 категорий:

  • 100-199 - Здесь клиент указывает, что он должен ответить каким-то действием
  • 200-299 - означает, что запрос выполнен успешно
  • 300-399 - они используются для файлов, которые были перемещены, и обычно включают заголовок местоположения, указывающий новый адрес.
  • 400-499 - указывает на ошибку клиента
  • 500-599 - указывает на ошибку сервера

Ниже приведены некоторые из общих кодов состояния:

  • 200 - означает, что все в порядке
  • 301 - переехал навсегда
  • 304 - Не изменено с момента последнего изменения
  • ошибка 400, неверный запрос
  • 404 Не Найдено
  • 405 - Метод не найден
  • внутренняя ошибка сервера 500
  • сервис 503 недоступен
  • 505 - версия HTTP не поддерживается

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

  1. Public void setStatus (intstatusCode)

    Он устанавливает код состояния, который мы хотим установить на этой странице JSP. Это даст нам сообщение с кодом состояния, который был установлен.

  2. Public void sendRedirect (строковый URL)

    Он генерирует ответ 302 вместе с заголовком местоположения, содержащим URL-адрес нового документа.

  3. Публичная недействительность sendError (intcode, Stringmsg)

    Он отправляет код состояния вместе с коротким сообщением, и оно форматируется внутри HTML-документа.

Пример:

В этом примере мы явно отправляем ошибку на страницу JSP.

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1" pageEncoding = "ISO-8859-1"%> Код статуса гуру <% response.sendError (404, «Страница гуру не найдена»); %>

Расшифровка кода:

Строка кода 10: Используя объект ответа, мы отправляем ошибку на страницу с двумя параметрами.

  1. Код состояния - это может быть любой из вышеперечисленных. В данном случае мы описали как 404
  2. Сообщение - это может быть любое конкретное сообщение, в котором мы хотим показать ошибку.

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

Выход:

Здесь мы получаем код ошибки 404, который был отправлен из кода, а также отображает сообщение «Страница гуру не найдена», видимое в выходных данных.

Резюме:

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