Požadavek klienta JSP, odpověď serveru & Stavové kódy HTTP

Obsah:

Anonim

Akce JSP, které používají konstrukty v syntaxi XML k řízení chování servletového motoru. Dozvíme se podrobněji o různých prvcích akce JSP, jako je požadavek klienta, odpověď serveru, stavové kódy HTTP.

V tomto výukovém programu se naučíte

  • Žádost klienta JSP
  • Odpověď serveru JSP
  • Stavové kódy HTTP JSP

Žádost klienta JSP

  • Když je webová stránka požadována, odešle informace na webový server v hlavičce HTTP.
  • Tyto informace můžeme použít pomocí objektu HTTPServletRequest.
  • Informace odeslané prohlížečem jsou uloženy v záhlaví požadavku požadavku HTTP.
  • K odesílání informací do objektu požadavku používáme různé záhlaví.

Níže jsou popsány různé záhlaví:

Záhlaví Popis Příklad
Přijmout Určuje typy MIME, které může prohlížeč nebo jiný klient zpracovat Obrázek / png nebo obrázek / jpeg.webp
Přijmout znakovou sadu K zobrazení informací používá znakovou sadu používanou prohlížečem ISO-8859-1
Přijmout - kódování Určuje typ kódování zpracovaný prohlížečem Gzip nebo komprimovat
Přijmout jazyk Určuje zadaný jazyk klienta En, en_us
Oprávnění Záhlaví používané klienty při pokusu o přístup na webové stránky chráněné heslem
Spojení Označuje, zda klient zvládne trvalé připojení HTTP (prohlížeč může načíst více souborů) Udržet naživu
Délka obsahu Platí pro odesílání žádostí. Poskytuje velikost post dat bajtů
Cookie Vrátí cookie na server (ty, které byly dříve odeslány do prohlížeče)
Hostitel Určuje hostitele a port původní adresy URL
Pokud bude od té doby změněno Označuje, že vyžaduje pouze stránku, pokud byla změněna nebo upravena
Pokud od té doby nezměněno Označuje, že vyžaduje stránku, pouze pokud nebyla změněna nebo upravena
Doporučující Označuje URL odkazující stránky URL
Uživatelský agent Identifikuje požadavek prohlížeče nebo klienta

Ke čtení hlavičky HTTP na stránce JSP se používají následující metody:

  1. Cookie [] getCookies () - vrací pole obsahující objekty cookie, které klient poslal
  2. Výčet getAttributeNames () - obsahuje výčet názvů atributů pro požadavek
  3. Výčet getHeaderNames () - obsahuje výčet názvů záhlaví.
  4. Výčet getParameterNames () - obsahuje výčet získání názvů parametrů v požadavku.
  5. HttpSessiongetSession () - vrátí aktuální relaci spojenou s požadavkem, nebo pokud relaci nemá, vytvoří novou.
  6. Locale getLocale () - vrátí upřednostňované národní prostředí, ve kterém klient přijme obsah. Bylo přiřazeno k odpovědi. Ve výchozím nastavení bude hodnotou výchozí národní prostředí serveru.
  7. Objekt getAttribute (název řetězce) - vrací hodnotu pojmenovaného atributu jako objektu.
  8. ServletInputStreamgetInputStream () - načte osobu požadavku jako binární data.
  9. String getAuthType () - vrátí název schématu ověřování k ochraně servletu
  10. String getCharacterEncoding () - vrací název kódování znaků použitého v těle požadavku.
  11. String getContentType () - vrátí MIME typ těla požadavku.
  12. String getContextPath () - vrací část požadavku URI označuje kontextovou cestu URI
  13. String getHeader (název řetězce) - vrací záhlaví požadavku jako řetězec
  14. String getMethod () - vrátí název metody HTTP jako GET, POST
  15. String getParameter (název řetězce) - vrátí parametr požadavku jako řetězec.
  16. String getPathInfo () - vrací informace o cestě spojené s adresou URL
  17. String getQueryString () - vrátí řetězec dotazu, který je přidružen k adrese URL požadavku
  18. String getServletPath () - vrací část adres URL požadavku, která volá JSP
  19. String [] getParameterValues ​​(název řetězce) - vrací pole řetězcových objektů obsahující hodnoty, které má parametr požadavku

Příklad:

V níže uvedeném příkladu používáme různé metody využívající objekt požadavku

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1" pageEncoding = "ISO-8859-1"%><% @ page import = "java.io. * java.util. *"%> Požadavek klienta Guru JSP 

Požadavek klienta Guru JSP

<%HttpSession guruession = request.getSession ();out.print (" ");Národní gurulocale = request.getLocale ();out.print (" ");Řetězcová cesta = request.getPathInfo ();out.print (" ");Řetězec lpath = request.get ();out.print (" ");Řetězec název_serveru = request.getServerName ();out.print (" ");int portname = request.getServerPort ();out.print (" ");Výčet hnames = request.getHeaderNames ();while (hnames.hasMoreElements ()) {Řetězec paramName = (řetězec) hnames.nextElement ();out.print (" ");Řetězec paramValue = request.getHeader (paramName);out.println (" ");}%>

Vysvětlení kódu:

Řádek kódu 17: Pomocí objektu požadavku získáváme objekt relace konkrétní relace a získáváme hodnotu objektu dané relace

Řádek kódu 19: Pomocí objektu požadavku získáváme národní prostředí dané relace i.een_US národní prostředí pro daný JSP.

Řádek kódu 21: Pomocí objektu požadavku získáváme informace o cestě pro tento JSP. V tomto případě je null, protože není uvedena žádná cesta k URL.

Řádek kódu 23: Pomocí objektu požadavku získáváme kontextovou cestu, tj. Kořenovou cestu

Řádek kódu 25: Pomocí objektu požadavku získáváme název serveru.

Řádek kódu 27: Pomocí objektu požadavku získáváme port serveru.

Řádek kódu 29-35: Pomocí objektu požadavku získáváme názvy záhlaví, které vycházejí jako výčet, a proto dostáváme všechny hodnoty záhlaví v názvech záhlaví.

V tomto získáme všechny hodnoty záhlaví jako cookie, hostitel, připojení, přijímáme jazyk, přijímáme kódování.

Když spustíte výše uvedený kód, získáte následující výstup:

Výstup :

Získáváme řadu hodnot, jako je název relace, název národního prostředí, název cesty, název serveru, název portu, hostitele, kontextové cesty a všechny hodnoty záhlaví tohoto JSP.

Odpověď serveru JSP

  • Když je požadavek zpracován a poté je odpověď vygenerována z webového serveru. Skládá se ze stavového řádku, hlaviček odpovědí, prázdného řádku a dokumentu.
  • Je to objekt HTTPServletResponseclass, což je objekt odpovědi.
  • Stavový řádek je verzí HTML.

Záhlaví odpovědí jsou uvedena níže:

záhlaví guru hodnota záhlaví guru
Název relace je " + guruession + "
Název národního prostředí je " + gurulocale + "
Název cesty je " + cesta + "
Kontextová cesta je " + lipath + "
Název serveru je " + název serveru + "
Port serveru je " + portname + "
" + paramName + "" + paramValue + "
Záhlaví Popis
Dovolit Určuje metody požadavků, jako je GET, POST, které server požaduje
Řízení mezipaměti Dokument odpovědi lze uložit do mezipaměti. Může to být veřejná, soukromá a žádná mezipaměť. Žádná mezipaměť neurčuje, že by dokument neměl být ukládán do mezipaměti
Spojení Dává pokyny, zda má prohlížeč používat uloženéHTTPConnections nebo ne. Blízká hodnota znamená, že prohlížeč by neměl používat trvalé připojení HTTP a „keep-alive“ znamená použití trvalého připojení
Dispozice obsahu Zeptat se uživatele, zda má uložit odpověď na disk nebo ne
Kódování obsahu Stránka musí být během přenosu kódována
Délka obsahu Počet bajtů v odpovědi
Typ obsahu Určuje typ odpovědi MIME
Vyprší Určuje, do kdy by měl být obsah považován za zastaralý a neměl by být ukládán do mezipaměti
Naposledy změněno Udává, kdy byl dokument naposledy upraven
Umístění Mělo by být součástí všech odpovědí, které mají stavový kód, který má 300 jako stavový kód
Obnovit Určuje, jak najít aktualizovanou stránku.
Zkuste to znovu Lze jej použít s odpovědí 503 a informovat klienta o tom, jak brzy může požadavek opakovat
Set-cookie Určuje soubor cookie přidružený ke stránce

Následují metody využívající objekt odpovědi:

  1. String encodeRedirectURL (String URL) - kóduje URL v metodě redirectURL.
  2. String encodeURL (String URL) - kóduje adresu URL včetně ID relace.
  3. Boolean containsHeader (název řetězce) - obsahuje záhlaví v JSP nebo ne.
  4. Boolean isCommited () - odpověď byla spáchána nebo ne.
  5. Void addCookie (cookie cookie) - přidá do odpovědi cookie
  6. Void addDateHeader (název řetězce, hodnota řetězce) - přidá název a hodnotu záhlaví odpovědi
  7. Void addHeader (název řetězce, hodnota řetězce) - přidá záhlaví odpovědi se jménem a hodnotou
  8. Void addIntHeader (String name, int value) - přidá záhlaví odpovědi s názvem a celočíselnou hodnotou
  9. Void flushBuffer () - vynutí obsah ve vyrovnávací paměti na výstup do klienta.
  10. Void reset () - vymaže data ve vyrovnávací paměti.
  11. Void resetBuffer - vymaže vyrovnávací paměť obsahu v odpovědi bez vymazání stavových kódů.
  12. Void sendError (intsc, Stringmsg) - odešle chybovou odpověď klientovi pomocí stavového kódu.
  13. Void sendRedirect (String location) - odešle klientovi dočasnou odpověď přesměrování.
  14. Void setBufferSize (int size) - nastaví velikost vyrovnávací paměti těla
  15. Void setCharacterEncoding (String charset) - nastavuje kódování znaků
  16. Void setContentType (String type) - nastaví typ obsahu odpovědi
  17. Void setContentLength (intlen) - nastaví délku obsahu odpovědi
  18. Void setLocale (Locale lcl) - nastaví typ národního prostředí odpovědi
  19. Void setStatus (intsc) - nastavuje stavový kód odpovědi

Příklad:

V tomto příkladu pokrýváme různé metody 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. *"%> Guru Action Response 

Odpověď guru

<%Národní prostředí lcl = response.getLocale ();out.println ("Národní prostředí je: + lcl + "\ n");response.flushBuffer ();Výstup PrintWriter = response.getWriter ();output.println ("Toto je z objektu zapisovače");Typ řetězce = response.getContentType ();out.println ("Typ obsahu: + typ + "\ n");// Nastavit aktualizaci, čas automatického načítání na 5 sekundresponse.setIntHeader ("Obnovit", 5);// Získejte aktuální časDatum dt = nové Datum ();out.println ("Dnešní datum je: + dt.toString () + "\ n");%>

Vysvětlení kódu:

Řádek kódu 13: Pomocí objektu odpovědi získáme národní objekt této relace JSP

Řádek kódu 15: Pomocí objektu odpovědi se flushbuffer používá k vynucení obsahu vyrovnávací paměti do klienta

Řádek kódu 16: Pomocí objektu odpovědi získáme objekt zapisovače, který získá výstup ve výstupním proudu

Řádek kódu 18: Pomocí objektu odpovědi získáme typ obsahu, tj. Typ MIME objektu odpovědi

Řádek kódu 21: Pomocí objektu odpovědi se používá k automatickému načítání každých 5 sekund, protože 5 je nastaven jako druhý parametr

Když spustíte výše uvedený kód, získáte následující výstup:

Výstup:

  • Zde získáme výstup, protože jde o objekt zapisovače z getWriter, který nám dává objekt a můžeme výstup ve výstupním proudu.
  • Získáme národní prostředí jako en_us a typ obsahu jako text / html
  • Charset dostaneme jako ISO 8859
  • Dnešní datum jako aktuální datum.

Stavové kódy HTTP JSP

  • Když je požadavek zpracován, je vygenerována odpověď. Řádek stavu odpovědi se skládá z verze HTTP, stavového kódu a přidružené zprávy.
  • Zpráva je přímo spojena se stavovým kódem a verzí protokolu HTTP a je určena serverem.
  • Ve výchozím nastavení je 200 nastaven jako stavový kód v JSP, takže nemusíme nastavovat explicitně.
  • Můžeme nastavit jako metodu response.setStatus ()

Kódy spadají do následujících 5 kategorií:

  • 100-199 - Zde klient naznačuje, že by měl reagovat nějakou akcí
  • 200-299 - Znamená to, že požadavek je úspěšný
  • 300–399 - Používají se pro soubory, které byly přesunuty, a obvykle obsahují záhlaví umístění označující novou adresu
  • 400-499 - označuje chybu klienta
  • 500-599 - označuje chybu serverem

Níže jsou uvedeny některé běžné stavové kódy:

  • 200 - Označuje, že je vše v pořádku
  • 301 - Trvale se přesunul
  • 304 - od poslední změny nezměněno
  • 400 - Špatný požadavek
  • 404 nenalezeno
  • 405 - Metoda nebyla nalezena
  • 500 - Interní chyba serveru
  • 503 služba nedostupná
  • 505 - Verze HTTP není podporována

Některé z jeho metod jsou uvedeny níže:

  1. Public void setStatus (intstatusCode)

    Nastaví stavový kód podle toho, co chceme na dané stránce JSP nastavit. To nám dá zprávu o stavovém kódu, který byl nastaven

  2. Public void sendRedirect (řetězec URL)

    Generuje odpověď 302 spolu s hlavičkou umístění poskytující URL nového dokumentu

  3. Public void sendError (intcode, Stringmsg)

    Odešle stavový kód spolu s krátkou zprávou a je naformátován uvnitř dokumentu HTML.

Příklad:

V tomto příkladu zasíláme chybu na stránku JSP výslovně.

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1" pageEncoding = "ISO-8859-1"%> Guru Status Code <% response.sendError (404, "Stránka guru nenalezena"); %>

Vysvětlení kódu:

Řádek kódu 10: Pomocí objektu odpovědi posíláme chybu na stránku se dvěma parametry.

  1. Stavový kód - může to být kterýkoli z výše uvedených. V tomto případě jsme to popsali jako 404
  2. Zpráva - Může to být jakákoli konkrétní zpráva, u které chceme ukázat chybu

Pokud provedete výše uvedený kód, získáte následující výstup:

Výstup:

Zde dostaneme chybový kód jako 404, který byl odeslán z kódu a také zobrazí zprávu „Guru Page not found“, která je vidět na výstupu.

Souhrn:

  • V tomto článku jsme se dozvěděli o požadavku klienta a odpovědi serveru na to, jak je požadavek zachycen a jak jsou odpovědi manipulovány.
  • Také jsme se dozvěděli o stavových kódech HTTP, abychom zobrazili chybové kódy nebo kódy úspěchu pro konkrétní soubor.