JSP клиентска заявка, отговор на сървъра и усилвател; HTTP кодове на състоянието

Съдържание:

Anonim

JSP действия, които използват конструкции в XML синтаксис, за да контролират поведението на сервлетния механизъм. Ще научим по-подробно за различни елементи на JSP Action като заявка на клиент, отговор на сървъра, кодове на състоянието на HTTP.

В този урок ще научите -

  • Заявка за клиент на JSP
  • Отговор на JSP сървър
  • JSP HTTP кодове на състоянието

Заявка за клиент на JSP

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

По-долу са описани различни заглавки:

Хедър Описание Пример
Приемете Той определя типовете MIME, с които браузърът или други клиенти могат да се справят Изображение / png или изображение / jpeg.webp
Приемам-charset Той използва набора от символи, използван от браузъра, за да покаже информацията ISO-8859-1
Приемам- Кодиране Той определя типа кодиране, обработвано от браузъра Gzip или компресиране
Приемете език Той определя езика, посочен от клиентите En, en_us
Разрешение Заглавие, използвано от клиенти при опит за достъп до защитени с парола уеб страници
Връзка Показва дали клиентът може да се справи с постоянни HTTP връзки (браузърът може да извлича множество файлове) Запази живи
Дължина на съдържанието Приложимо за заявки за публикуване. Той дава размер на байтовите данни
Бисквитка Връща бисквитка към сървъра (тези, които преди това са били изпратени до браузъра)
Водещ Указва хоста и порта на оригиналния URL адрес
Ако е променен от Това показва, че изисква само страница, ако е била променена или модифицирана
Ако не е модифициран от Това показва, че изисква страница само ако не е била променяна или модифицирана
Препращащ Показва URL на препращащата URL страница
Потребителски агент Идентифицира браузър или клиент, отправящ заявка

Следните методи се използват за четене на HTTP заглавката в JSP страница:

  1. Cookie [] getCookies () - връща масив, съдържащ обекти на бисквитки, изпратени от клиента
  2. Enumeration getAttributeNames () - съдържа изброяване на имена на атрибути за заявка
  3. Enumeration getHeaderNames () - съдържа изброяване на имена на хедър.
  4. Enumeration 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 (Име на низ) - връща заглавката на заявката като низ
  14. String getMethod () - връща името на HTTP метода като GET, POST
  15. String getParameter (име на низ) - връща параметъра на заявката като низ.
  16. String getPathInfo () - връща информацията за пътя, свързана с URL адреса
  17. String getQueryString () - връща низа на заявката, който е свързан с URL адреса на заявката
  18. String getServletPath () - връща частта от URL адресите на заявката, която извиква JSP
  19. String [] getParameterValues ​​(Име на низ) - връща масива от низови обекти, съдържащи стойностите, които параметърът на заявката има

Пример:

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

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

Клиентска заявка Guru JSP

<таблична граница = "1"> заглавка на гуру заглавка на гуру Стойност (и) <%HttpSession gurusession = request.getSession ();out.print (" Името на сесията е " + gurusession + " ");Locale gurulocale = request.getLocale ();out.print (" Името на локала е " + gurulocale + " ");Път на низ = request.getPathInfo ();out.print (" Името на пътя е " + path + " ");Низ lpath = request.get ();out.print (" Контекстният път е " + lipath + " ");Низ име на сървър = request.getServerName ();out.print (" Името на сървъра е " + име на сървъра + " ");int portname = request.getServerPort ();out.print (" Портът на сървъра е " + име на порт + " ");Изброяване hnames = request.getHeaderNames ();докато (hnames.hasMoreElements ()) {Низ paramName = (низ) hnames.nextElement ();out.print (" " + paramName + "");Низ paramValue = request.getHeader (paramName);out.println ("" + paramValue + " ");}%>

Обяснение на кода:

Кодов ред 17: Използвайки обект на заявка, получаваме обекта на сесията на конкретната сесия и получаваме стойността на обекта на тази сесия

Кодов ред 19: Използвайки обект за заявка, получаваме локал на тази конкретна сесия i.een_US локал за този JSP.

Кодов ред 21: Използвайки обект на заявка, получаваме информация за пътя за този JSP. В този случай тя е нула, тъй като няма споменат път за URL.

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

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

Кодов ред 27: Използвайки обект на заявка, получаваме сървърния порт.

Кодов ред 29-35: Използвайки обект на заявка, получаваме имена на заглавки, които излизат като изброяване, и следователно получаваме всички стойности на заглавките в имената на заглавките.

В това получаваме всички стойности на заглавката като бисквитка, хост, връзка, приемаме език, приемаме кодиране.

Когато изпълните горния код, получавате следния изход:

Изход :

Получаваме поредица от стойности като име на сесия, име на локал, име на път, име на сървър, име на порт, хост, контекстен път и всички стойности на заглавката на този JSP.

Отговор на JSP сървър

  • Когато заявката се обработва и след това отговорът се генерира от уеб сървъра. Състои се от ред за състояние, заглавки на отговори, празен ред и документ.
  • Той е обект на HTTPServletResponseclass, който е обект на отговор.
  • Редът на състоянието е версия на HTML.

Заглавията на отговорите са посочени по-долу:

Хедър Описание
Позволява Той определя методите за заявка като GET, POST, които сървърът иска
Контрол на кеша Документът за отговор може да бъде кеширан. Тя може да бъде публична, частна и без кеш. Никой кеш не посочва, че документът не трябва да се кешира
Връзка Той указва дали браузърът трябва да използва запазени HTTPConnections или не. Стойността на затваряне представлява, че браузърът не трябва да използва постоянни в HTTPConnections и "поддържане на живо" означава използване на постоянни връзки
Съдържание-разположение За да попитате потребителя дали да запишете отговора на диск или не
Кодиране на съдържание Страницата трябва да бъде кодирана по време на предаването
Дължина на съдържанието Брой байтове в отговора
Тип съдържание Той определя типа MIME отговор
Изтича Посочва до кога съдържанието трябва да се счита за остаряло и не трябва да се кешира
Последно модифициран Показва кога документът е последно променен
Местоположение Той трябва да бъде включен във всички отговори, които имат код на състоянието като код на състоянието 300
Обнови Той посочва как да намерите актуализираната страница.
Повторен опит Може да се използва с 503 отговор, за да каже на клиента колко скоро може да повтори заявката
Set-бисквитка Посочва бисквитката, свързана със страницата

Следват методите, използващи обект на отговор:

  1. String encodeRedirectURL (String URL) - кодира URL адреса в метод redirectURL.
  2. String encodeURL (String URL) - кодира URL адреса, като включва идентификатор на сесията.
  3. Boolean containsHeader (Име на низ) - съдържа заглавка в JSP или не.
  4. Boolean isCommited () - отговорът е бил ангажиран или не.
  5. Void addCookie (Cookie cookie) - добавя бисквитка към отговора
  6. Void addDateHeader (Име на низ, стойност на низа) - добавя име и стойност на заглавката на отговора
  7. Void addHeader (String name, String value) - добавя заглавка на отговор с име и стойност
  8. Void addIntHeader (Име на низ, стойност int) - добавя заглавка на отговор с име и стойност на цялото число
  9. Void flushBuffer () - принуждава съдържанието в буфера към изхода към клиента.
  10. Void reset () - изчиства данните в буфера.
  11. Void resetBuffer - изчиства буфера на съдържанието в отговора, без да изчиства кодовете на състоянието.
  12. Void sendError (intsc, Stringmsg) - изпраща отговор на грешка до клиента, използвайки код на състоянието.
  13. Void sendRedirect (String location) - изпраща временен отговор за пренасочване към клиента.
  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 изход = 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 версия не се поддържа

Някои от методите му са изброени по-долу:

  1. Публичен void setStatus (intstatusCode)

    Той задава кода на състоянието, който и да искаме да зададем в тази JSP страница. Това ще ни даде съобщението за код на състоянието, който е зададен

  2. Public void sendRedirect (URL низ)

    Той генерира 302 отговор, заедно със заглавката на местоположението, давайки URL на новия документ

  3. Публична void 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 кодовете на състоянието, за да показваме кодове за грешки или кодове за успех за определен файл.