Požiadavka klienta JSP, odpoveď servera & Stavové kódy HTTP

Obsah:

Anonim

Akcie JSP, ktoré používajú konštrukcie v syntaxi XML na riadenie správania servletového motora. Dozvieme sa podrobnejšie rôzne prvky JSP Action, ako je požiadavka klienta, odpoveď servera, stavové kódy HTTP.

V tomto návode sa naučíte

  • Žiadosť klienta JSP
  • Odpoveď servera JSP
  • Stavové kódy HTTP JSP

Žiadosť klienta JSP

  • Keď sa požaduje webová stránka, odošle informácie na webový server v hlavičke HTTP.
  • Tieto informácie môžeme použiť pomocou objektu HTTPServletRequest.
  • Informácie odoslané prehliadačom sú uložené v hlavičke požiadavky požiadavky HTTP.
  • Na zasielanie informácií do objektu požiadavky používame rôzne hlavičky.

Ďalej sú popísané rôzne hlavičky:

Hlavička Popis Príklad
súhlasiť Určuje typy MIME, s ktorými môže pracovať prehliadač alebo iní klienti Obrázok / png alebo obrázok / jpeg.webp
Prijať znakovú sadu Na zobrazenie informácií používa znakovú sadu, ktorú používa prehliadač ISO-8859-1
Prijať - kódovanie Určuje typ kódovania, s ktorým pracuje prehliadač Gzip alebo komprimovať
Prijať jazyk Určuje zadaný jazyk klientov En, en_us
Povolenie Hlavička používaná klientmi pri pokuse o prístup na webové stránky chránené heslom
Pripojenie Označuje, či klient dokáže zvládnuť trvalé pripojenie HTTP (prehľadávač dokáže načítať viac súborov) Udržať nažive
Obsahová dĺžka Uplatňuje sa na odosielanie žiadostí. Poskytuje veľkosť poštových údajov bajtov
Cookie Vráti súbor cookie na server (tie, ktoré boli predtým odoslané do prehľadávača)
Hostiteľ Určuje hostiteľa a port pôvodnej adresy URL
Ak dôjde k zmene odvtedy Znamená to, že vyžaduje iba stránku, ak bola zmenená alebo upravená
Pokiaľ nebude upravený odvtedy Znamená to, že vyžaduje stránku, iba ak nebola zmenená alebo upravená
Sprostredkovateľ Označuje adresu URL sprostredkujúcej stránky URL
User-agent Identifikuje požiadavku prehliadača alebo klienta

Na načítanie hlavičky HTTP na stránke JSP sa používajú nasledujúce metódy:

  1. Cookie [] getCookies () - vráti pole obsahujúce objekty cookie, ktoré poslal klient
  2. Výpočet getAttributeNames () - obsahuje zoznam mien atribútov pre požiadavku
  3. Výpočet getHeaderNames () - obsahuje výčet mien hlavičky.
  4. Výpočet getParameterNames () - obsahuje výčet získavania názvov parametrov v žiadosti.
  5. HttpSessiongetSession () - vráti aktuálnu reláciu spojenú s požiadavkou, alebo ak reláciu nemá, vytvorí novú.
  6. Locale getLocale () - vráti preferované miestne nastavenie, v ktorom klient prijme obsah. Bolo priradené k odpovedi. V predvolenom nastavení bude hodnotou predvolené miestne nastavenie servera.
  7. Objekt getAttribute (názov reťazca) - vráti hodnotu pomenovaného atribútu ako objekt.
  8. ServletInputStreamgetInputStream () - načíta každú požiadavku ako binárne údaje.
  9. String getAuthType () - vráti názov schémy autentifikácie na ochranu servletu
  10. String getCharacterEncoding () - vráti názov kódovania znakov použitého v tele požiadavky.
  11. String getContentType () - vráti typ tela MIME požiadavky.
  12. String getContextPath () - vráti časť identifikátora URI požiadavky, ktorá označuje kontextovú cestu URI
  13. String getHeader (názov reťazca) - vráti hlavičku požiadavky ako reťazec
  14. String getMethod () - vráti názov metódy HTTP ako GET, POST
  15. String getParameter (Názov reťazca) - vráti parameter požiadavky ako reťazec.
  16. String getPathInfo () - vráti informácie o ceste spojené s adresou URL
  17. String getQueryString () - vráti reťazec dotazu, ktorý je spojený s adresou URL žiadosti
  18. String getServletPath () - vráti časť adries URL požiadavky, ktorá volá JSP
  19. String [] getParameterValues ​​(názov reťazca) - vráti pole reťazcových objektov obsahujúcich hodnoty, ktoré má parameter požiadavky

Príklad:

V príklade nižšie používame rôzne metódy využívajúce objekt požiadavky

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

Žiadosť klienta Guru JSP

<%HttpSession guruession = request.getSession ();out.print (" ");Miestny gurulocale = request.getLocale ();out.print (" ");Reťazec path = request.getPathInfo ();out.print (" ");Reťazec lpath = request.get ();out.print (" ");Reťazec servername = request.getServerName ();out.print (" ");int portname = request.getServerPort ();out.print (" ");Výčet hnames = request.getHeaderNames ();while (hnames.hasMoreElements ()) {Reťazec paramName = (Reťazec) hnames.nextElement ();out.print (" ");Reťazec paramValue = request.getHeader (paramName);out.println (" ");}%>

Vysvetlenie kódu:

Riadok kódu 17: Pomocou objektu požiadavky získame objekt relácie konkrétnej relácie a dostaneme hodnotu objektu tejto relácie

Riadok kódu 19: Pomocou objektu požiadavky získame miestne nastavenie konkrétnej lokálnej relácie i.een_US pre dané JSP.

Riadok kódu 21: Pomocou objektu požiadavky získavame informácie o ceste pre tento JSP. V tomto prípade je to null, pretože nie je uvedená žiadna cesta k URL.

Riadok kódu 23: Pomocou objektu požiadavky dostaneme kontextovú cestu, tj koreňovú cestu

Riadok kódu 25: Pomocou objektu požiadavky získame názov servera.

Riadok kódu 27: Pomocou objektu požiadavky získavame port servera.

Riadok kódu 29-35: Pomocou objektu požiadavky dostaneme názvy hlavičiek, ktoré vyjdú ako výčet, a teda dostaneme všetky hodnoty hlavičiek v názvoch hlavičiek.

V tomto dostaneme všetky hodnoty hlavičky ako cookie, hostiteľ, pripojenie, akceptujeme jazyk, akceptujeme kódovanie.

Po vykonaní vyššie uvedeného kódu získate nasledujúci výstup:

Výstup :

Dostávame sériu hodnôt ako názov relácie, názov miestneho nastavenia, názov cesty, názov servera, názov portu, hostiteľ, kontextová cesta a všetky hodnoty hlavičky tohto JSP.

Odpoveď servera JSP

  • Keď sa žiadosť spracuje a potom sa generuje odpoveď z webového servera. Skladá sa zo stavového riadku, hlavičiek odpovedí, prázdneho riadku a dokumentu.
  • Je to objekt HTTPServletResponseclass, ktorý je objektom odpovede.
  • Stavový riadok je verziou HTML.

Hlavičky odpovedí sú uvedené nižšie:

hlavička guru hodnota hlavičky guru
Názov relácie je " + guruession + "
Názov miestneho nastavenia je " + gurulocale + "
Názov cesty je " + cesta + "
Kontextová cesta je " + lipath + "
Názov servera je " + názov servera + "
Port servera je " + portname + "
" + paramName + "" + paramValue + "
Hlavička Popis
Povoliť Určuje metódy požiadaviek, ako je GET, POST, ktoré server požaduje
Kontrola cache Dokument s odpoveďou je možné uložiť do pamäte cache. Môže to byť verejné, súkromné ​​a žiadna vyrovnávacia pamäť. Žiadna vyrovnávacia pamäť neurčuje, že by sa dokument nemal ukladať do medzipamäte
Pripojenie Dáva pokyny, či má prehliadač používať uloženéHTTPConnections alebo nie. Blízka hodnota znamená, že prehliadač by nemal v HTTPConnections používať perzistentné a „keep-alive“ znamená použitie perzistentných pripojení
Obsahová dispozícia Opýtať sa používateľa, či má uložiť odpoveď na disk alebo nie
Kódovanie obsahu Stránka musí byť počas prenosu kódovaná
Obsahová dĺžka Počet bajtov v odpovedi
Typ obsahu Určuje typ odpovede MIME
Platnosť vyprší Určuje, dokedy by sa mal obsah považovať za zastaraný a nemal by sa ukladať do medzipamäte
Naposledy zmenené Označuje, kedy bol dokument naposledy upravený
Poloha Mal by byť súčasťou všetkých odpovedí, ktoré majú stavový kód ako stavový kód 300
Obnoviť Určuje, ako nájsť aktualizovanú stránku.
Skúsiť znova Môže byť použitý s odpoveďou 503 na informovanie klienta o tom, ako skoro môže zopakovať požiadavku
Súbor cookie Určuje súbor cookie spojený so stránkou

Nasledujú metódy používajúce objekt odpovede:

  1. String encodeRedirectURL (String URL) - kóduje URL v metóde redirectURL.
  2. String encodeURL (String URL) - kóduje adresu URL vrátane ID relácie.
  3. Boolean containsHeader (názov reťazca) - obsahuje alebo neobsahuje hlavičku v JSP.
  4. Boolean isCommited () - odpoveď bola spáchaná alebo nie.
  5. Void addCookie (Cookie cookie) - pridá do odpovede cookie
  6. Void addDateHeader (názov reťazca, hodnota reťazca) - pridá dátum a názov hlavičky odpovede
  7. Void addHeader (názov reťazca, hodnota reťazca) - pridá hlavičku odpovede s menom a hodnotou
  8. Void addIntHeader (String name, int value) - pridá hlavičku odpovede s menom a celočíselnou hodnotou
  9. Void flushBuffer () - vynúti obsah vo vyrovnávacej pamäti na výstup pre klienta.
  10. Void reset () - vymaže údaje vo vyrovnávacej pamäti.
  11. Void resetBuffer - vymaže vyrovnávaciu pamäť obsahu v odpovedi bez vymazania stavových kódov.
  12. Void sendError (intsc, Stringmsg) - odošle klientovi chybovú odpoveď pomocou stavového kódu.
  13. Void sendRedirect (String location) - odošle klientovi dočasnú odpoveď na presmerovanie.
  14. Void setBufferSize (int size) - nastavuje veľkosť vyrovnávacej pamäte tela
  15. Void setCharacterEncoding (String charset) - nastaví kódovanie znakov
  16. Void setContentType (String type) - nastaví typ obsahu odpovede
  17. Void setContentLength (intlen) - nastavuje dĺžku obsahu odpovede
  18. Void setLocale (Locale lcl) - nastaví typ miestneho nastavenia odpovede
  19. Void setStatus (intsc) - nastaví stavový kód odpovede

Príklad:

V tomto príklade uvádzame rôzne metódy 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 

Odpoveď guru

<%Miestne nastavenie lcl = response.getLocale ();out.println ("Miestne nastavenie je: + lcl + "\ n");response.flushBuffer ();Výstup PrintWriter = response.getWriter ();output.println ("Toto je z objektu zapisovača");Typ reťazca = response.getContentType ();out.println ("Typ obsahu: + typ + "\ n");// Nastaviť obnovenie, čas automatického načítania na 5 sekúndresponse.setIntHeader ("Obnoviť", 5);// Získať aktuálny časDátum dt = nový Dátum ();out.println ("Dnešný dátum je: + dt.toString () + "\ n");%>

Vysvetlenie kódu:

Riadok kódu 13: Pomocou objektu odpovede dostaneme lokálny objekt tejto relácie JSP

Riadok kódu 15: Pomocou objektu odpovede sa flushbuffer používa na vynútenie obsahu medzipamäte do klienta

Riadok kódu 16: Pomocou objektu odpovede dostaneme objekt zapisovača, ktorý dostane výstup do výstupného toku

Riadok kódu 18: Použitím objektu odpovede dostaneme typ obsahu, tj MIME typ objektu odpovede

Riadok kódu 21: Pomocou objektu odpovede sa používa na automatické načítanie každých 5 sekúnd, pretože hodnota 5 je nastavená ako druhý parameter

Po vykonaní vyššie uvedeného kódu získate nasledujúci výstup:

Výkon:

  • Tu dostaneme výstup, pretože je to z objektu zapisovača z getWriter, ktorý nám dáva objekt a môžeme výstupovať vo výstupnom prúde.
  • Získame miestne nastavenie ako en_us a typ obsahu ako text / html
  • Charset dostaneme ako ISO 8859
  • Dnešný dátum ako aktuálny dátum.

Stavové kódy HTTP JSP

  • Po spracovaní požiadavky sa vygeneruje odpoveď. Riadok stavu odpovede pozostáva z verzie HTTP, stavového kódu a príslušnej správy.
  • Správa je priamo spojená so stavovým kódom a verziou protokolu HTTP a určuje ju server.
  • Predvolene je v JSP nastavený stavový kód 200, takže ho nemusíme nastavovať explicitne.
  • Môžeme nastaviť ako response.setStatus () metódu

Kódy spadajú do nasledujúcich 5 kategórií:

  • 100-199 - Tu klient naznačuje, že by mal odpovedať nejakou akciou
  • 200-299 - Znamená to, že požiadavka je úspešná
  • 300 - 399 - Používajú sa pre súbory, ktoré boli presunuté a zvyčajne obsahujú hlavičku umiestnenia označujúcu novú adresu
  • 400-499 - označuje chybu klienta
  • 500 - 599 - označuje chybu servera

Niektoré z bežných stavových kódov sú uvedené nižšie:

  • 200 - Označuje, že je všetko v poriadku
  • 301 - Bolo to natrvalo presunuté
  • 304 - od poslednej zmeny nezmenené
  • 400 - Zlá požiadavka
  • 404 nenájdené
  • 405 - Metóda sa nenašla
  • 500 - Interná chyba servera
  • 503 služba nedostupná
  • 505 - verzia HTTP nie je podporovaná

Niektoré z jeho metód sú uvedené nižšie:

  1. Public void setStatus (intstatusCode)

    Nastaví stavový kód podľa toho, čo chceme na tejto stránke JSP nastaviť. Toto nám poskytne správu o stavovom kóde, ktorý bol nastavený

  2. Public void sendRedirect (reťazcová adresa URL)

    Generuje odpoveď 302 spolu s hlavičkou umiestnenia, ktorá poskytuje adresu URL nového dokumentu

  3. Public void sendError (intcode, Stringmsg)

    Spolu s krátkou správou odošle stavový kód a je naformátovaný v dokumente HTML.

Príklad:

V tomto príklade zasielame chybu na stránku JSP výslovne.

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1" pageEncoding = "ISO-8859-1"%> Kód stavu guru <% response.sendError (404, „Stránka guru sa nenašla“); %>

Vysvetlenie kódu:

Riadok kódu 10: Pomocou objektu odpovede pošleme chybu na stránku s dvoma parametrami.

  1. Stavový kód - môže to byť ktorýkoľvek z vyššie uvedených. V tomto prípade sme to opísali ako 404
  2. Správa - Môže to byť akákoľvek konkrétna správa, v ktorej chceme zobraziť chybu

Ak spustíte vyššie uvedený kód, získate nasledujúci výstup:

Výkon:

Tu dostaneme chybový kód ako 404, ktorý bol odoslaný z kódu a na výstupe sa tiež zobrazí správa „Guru Page not found“.

Zhrnutie:

  • V tomto článku sme sa dozvedeli o požiadavke klienta a reakcii servera na to, ako je požiadavka zachytená a ako sa s odpoveďami manipuluje.
  • Dozvedeli sme sa tiež o stavových kódoch HTTP na zobrazovanie chybových alebo úspešných kódov pre konkrétny súbor.