Дії JSP, які використовують конструкції в синтаксисі XML для управління поведінкою механізму сервлетів. Ми детальніше дізнаємося про різні елементи дії JSP, такі як запит клієнта, відповідь сервера, коди стану HTTP.
У цьому підручнику ви дізнаєтесь-
Запит клієнта JSP
Відповідь сервера JSP
Коди стану JSP HTTP
Запит клієнта JSP
Коли запитується веб-сторінка, вона надсилає інформацію на веб-сервер у заголовку HTTP.
Ми можемо використовувати цю інформацію за допомогою об’єкта HTTPServletRequest.
Інформація, надіслана браузером, зберігається в заголовку запиту HTTP-запиту.
Ми використовуємо різні заголовки для надсилання інформації об’єкту запиту.
Різні заголовки описані нижче:
Заголовок
Опис
Приклад
Прийміть
Він визначає типи MIME, з якими може працювати браузер або інші клієнти
Зображення / png або image / jpeg.webp
Accept-charset
Він використовує набір символів, який використовується браузером для відображення інформації
ISO-8859-1
Прийняти - кодування
Він визначає тип кодування, який обробляється браузером
Gzip або компрес
Прийняти мову
Він визначає мову, вказану клієнтами
En, en_us
Авторизація
Заголовок, який використовується клієнтами при спробі отримати доступ до захищених паролем веб-сторінок
Підключення
Він вказує, чи може клієнт обробляти постійні з'єднання HTTP (браузер може отримати кілька файлів)
Підтримувати
Довжина вмісту
Застосовується до запитів на публікацію. Це дає розмір даних байтів
Печиво
Повертає файли cookie на сервер (ті, які раніше були надіслані браузеру)
Ведучий
Вказує хост та порт вихідної URL-адреси
Якщо змінено з
Це вказує на те, що потрібна лише сторінка, якщо вона була змінена або модифікована
Якщо незмінено з
Це вказує на те, що потрібна сторінка лише в тому випадку, якщо вона не була змінена або модифікована
Реферал
Вказує URL-адресу сторінки посилання URL-адреси
Користувач-агент
Ідентифікує браузер або клієнт, який робить запит
Для читання заголовка HTTP на сторінці JSP використовуються такі методи:
Cookie [] getCookies () - повертає масив, що містить об'єкти cookie, надіслані клієнтом
Enumeration getAttributeNames () - містить перелік імен атрибутів для запиту
Enumeration getHeaderNames () - містить перелік імен заголовка.
Enumeration getParameterNames () - містить перелік отримання імен параметрів у запиті.
HttpSessiongetSession () - повертає поточний сеанс, пов'язаний із запитом, або якщо сеансу немає, тоді він створить новий.
Locale getLocale () - повертає бажану локаль, в якій клієнт буде приймати вміст. Їй було призначено відповідь. За замовчуванням значенням буде стандартна локаль сервера.
Object getAttribute (ім'я рядка) - повертає значення іменованого атрибута як об'єкта.
ServletInputStreamgetInputStream () - отримує тіло запиту як двійкові дані.
String getAuthType () - повертає ім'я схеми автентифікації для захисту сервлету
String getCharacterEncoding () - повертає ім'я кодування символів, що використовується в тілі запиту.
String getContentType () - повертає MIME-тип тіла запиту.
String getContextPath () - повертає частину URI запиту, що вказує контекстний шлях URI
String getHeader (ім'я рядка) - повертає заголовок запиту як рядок
String getMethod () - повертає ім'я методу HTTP, наприклад GET, POST
String getParameter (ім'я рядка) - повертає параметр запиту як рядок.
String getPathInfo () - повертає інформацію про шлях, пов'язану з URL-адресою
String getQueryString () - повертає рядок запиту, який пов'язаний із URL-адресою запиту
String getServletPath () - повертає частину URL-адрес запиту, яка викликає JSP
String [] getParameterValues (ім'я рядка) - повертає масив рядкових об'єктів, що містять значення, які має параметр запиту
Приклад:
У наведеному нижче прикладі ми використовуємо різні методи, використовуючи об'єкт запиту
Рядок коду 17: Використовуючи об'єкт запиту, ми отримуємо об'єкт сеансу цього конкретного сеансу, і отримуємо значення об'єкта цього сеансу
Рядок коду 19: Використовуючи об’єкт запиту, ми отримуємо локаль цього конкретного сеансу i.een_US локаль для цього JSP.
Рядок коду 21: Використовуючи об'єкт запиту, ми отримуємо інформацію про шлях для цього JSP. У цьому випадку воно є нульовим, оскільки для вказаної URL-адреси немає шляху.
Рядок коду 23: Використовуючи об'єкт запиту, ми отримуємо шлях контексту, тобто кореневий шлях
Кодовий рядок 25: Використовуючи об'єкт запиту, ми отримуємо ім'я сервера.
Кодовий рядок 27: Використовуючи об'єкт запиту, ми отримуємо порт сервера.
Рядок коду 29-35: Використовуючи об'єкт запиту, ми отримуємо імена заголовків, які виходять як перерахування, і, отже, ми отримуємо всі значення заголовків в іменах заголовків.
При цьому ми отримуємо всі значення заголовків як cookie, хост, підключення, приймаємо мову, приймаємо кодування.
При виконанні наведеного вище коду ви отримуєте такий результат:
Вихід :
Ми отримуємо ряд значень, такі як ім'я сесії, ім'я мови, ім'я шляху, ім'я сервера, ім'я порту, хост, контекстний шлях та всі значення заголовків цього JSP.
Відповідь сервера JSP
Коли запит обробляється, а потім відповідь генерується з веб-сервера. Він складається з рядка стану, заголовків відповідей, порожнього рядка та документа.
Це об’єкт HTTPServletResponseclass, який є об’єктом відповіді.
Рядок стану - це версія HTML.
Заголовки відповідей згадуються нижче:
Заголовок
Опис
Дозвольте
Він визначає такі методи запиту, як GET, POST, які вимагає сервер
Керування кешем
Документ відповіді можна кешувати. Це може бути загальнодоступним, приватним та без кеш-пам’яті. Жоден кеш не вказує, що документ не слід кешувати
Підключення
Він вказує, чи повинен браузер використовувати збережені HTTPConnections чи ні. Значення Close означає, що браузер не повинен використовувати постійний режим у HTTPConnections, а "підтримувати живий" означає використання постійних з'єднань
Зміст-диспозиція
Запитати користувача, зберігати відповідь на диску чи ні
Кодування вмісту
Сторінка повинна кодуватися під час передачі
Довжина вмісту
Кількість байтів у відповіді
Тип вмісту
Він визначає тип відповіді MIME
Термін дії закінчується
Вказує, до якого часу вміст слід вважати застарілим і не слід кешувати
Востаннє змінено
Він вказує, коли документ було востаннє змінено
Розташування
Його слід включити до всіх відповідей, коди статусу яких мають 300
Оновити
Він визначає, як знайти оновлену сторінку.
Повторити спробу
Його можна використовувати з відповіддю 503, щоб повідомити клієнту, як швидко він може повторити запит
Набір-cookie
Вказує файл cookie, пов'язаний зі сторінкою
Нижче наведені методи, що використовують об'єкт відповіді:
String encodeRedirectURL (String URL) - кодує URL-адресу в методі redirectURL.
String encodeURL (String URL) - кодує URL-адресу, включаючи ідентифікатор сеансу.
Boolean containsHeader (ім'я рядка) - він містить заголовок у JSP чи ні.
Логічний isCommited () - відповідь було зафіксовано чи ні.
Void addCookie (cookie cookie) - додає cookie до відповіді
Void addDateHeader (ім'я рядка, значення рядка) - додає назву та значення заголовка відповіді
Void addHeader (ім'я рядка, значення рядка) - додає заголовок відповіді з ім'ям та значенням
Void addIntHeader (Ім'я рядка, значення int) - додає заголовок відповіді з іменем і цілим значенням
Void flushBuffer () - примушує вміст у буфері до виходу на клієнт.
Void reset () - очищає дані в буфері.
Void resetBuffer - очищає буфер вмісту у відповіді без очищення кодів стану.
Void sendError (intsc, Stringmsg) - надсилає клієнту відповідь на помилку за допомогою коду стану.
Void sendRedirect (Розташування рядка) - надсилає клієнту тимчасову відповідь на перенаправлення.
Void setBufferSize (int size) - встановлює розмір буфера тіла
Void setCharacterEncoding (String charset) - встановлює кодування символів
Void setContentType (тип рядка) - встановлює тип вмісту відповіді
Void setContentLength (intlen) - встановлює довжину вмісту відповіді
Void setLocale (Locale lcl) - встановлює локальний тип відповіді
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 ("Тип вмісту: + тип + "\ 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 не підтримується
Деякі з його методів перелічені нижче:
Public void setStatus (intstatusCode)
Він встановлює код стану, який би ми не хотіли встановити на цій сторінці JSP. Це дасть нам повідомлення про код статусу, який було встановлено
Public void sendRedirect (URL-адреса рядка)
Він генерує відповідь 302 разом із заголовком розташування, що дає URL-адресу нового документа
Він надсилає код стану разом із коротким повідомленням і відформатовується в документі HTML.
Приклад:
У цьому прикладі ми явно надсилаємо помилку на сторінку JSP.
<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1" pageEncoding = "ISO-8859-1"%> Код статусу гуру <% response.sendError (404, "Сторінку гуру не знайдено"); %>
Пояснення коду:
Рядок коду 10: Використовуючи об’єкт відповіді, ми надсилаємо помилку на сторінку з двома параметрами.
Код стану - це може бути будь-який із перерахованих вище. У цьому випадку ми описали як 404
Повідомлення - Це може бути будь-яке конкретне повідомлення, в якому ми хочемо показати помилку
Якщо виконати наведений вище код, ви отримаєте такий результат:
Вихід:
Тут ми отримуємо код помилки як 404, який був надісланий з коду, а також відображає повідомлення "Сторінку гуру не знайдено", яке відображається у вихідних даних.
Короткий зміст:
У цій статті ми дізналися про запит клієнта та відповідь сервера про те, як перехоплюється запит та як маніпулюють відповідями.
Крім того, ми дізналися про коди стану HTTP для відображення кодів помилок або кодів успіху для певного файлу.