JSP kliens kérés, szerver válasz és amp; HTTP állapotkódok

Tartalomjegyzék:

Anonim

JSP műveletek, amelyek XML szintaxisban konstruktumokat használnak a szervlet motor viselkedésének szabályozására. További részleteket megtudhatunk a különböző JSP Action elemekről, például az ügyfélkérésről, a szerver válaszáról és a HTTP állapotkódokról.

Ebben az oktatóanyagban megtanulja-

  • JSP kliens kérés
  • JSP kiszolgáló válasza
  • JSP HTTP állapotkódok

JSP kliens kérés

  • Amikor a weboldalt kérik, a HTTP fejlécben információkat küld a webkiszolgálónak.
  • Ezeket az információkat felhasználhatjuk a HTTPServletRequest objektummal.
  • A böngésző által küldött információkat a HTTP kérés fejlécében tároljuk.
  • Különböző fejléceket használunk információk küldésére a kérelemobjektumhoz.

Különböző fejléceket írunk le alább:

Fejléc Leírás Példa
Elfogad Megadja azokat a MIME-típusokat, amelyeket a böngésző vagy más kliensek kezelhetnek Kép / png vagy kép / JPEG.webp
Elfogadás-karakterkészlet A böngésző által használt karakterkészletet használja az információk megjelenítésére ISO-8859-1
Elfogadás- kódolás Megadja a böngésző által kezelt kódolás típusát Gzip vagy tömörítés
Elfogadás-nyelv Megadja az ügyfelek által megadott nyelvet En, en_us
Engedélyezés Fejléc, amelyet az ügyfelek használnak, amikor jelszóval védett weboldalakat próbálnak elérni
Kapcsolat Jelzi, hogy az ügyfél képes-e kezelni a tartós HTTP-kapcsolatokat (a böngésző több fájlt is lekérhet) Életben tartani
Tartalom hossza A kérelmek feladására alkalmazható. Megadja a bájtok utáni adat nagyságát
Aprósütemény Visszaadja a cookie-t a szerverre (azokat, amelyeket korábban a böngészőnek küldtek)
Házigazda Megadja az eredeti URL gazdagépét és portját
Ha azóta módosult Jelzi, hogy csak egy oldalra van szükség, ha megváltoztatták vagy módosították
Ha azóta nem módosult Ez azt jelzi, hogy csak akkor igényel oldalt, ha nem változtatták meg vagy módosították
Referrer A hivatkozó URL oldal URL-jét jelzi
Felhasználó-ügynök Azonosítja a böngésző vagy az ügyfél kérését

A következő módszereket használják a HTTP fejléc beolvasására a JSP oldalon:

  1. Cookie [] getCookies () - az ügyfél által elküldött cookie objektumokat tartalmazó tömböt adja vissza
  2. GetAttributeNames () felsorolás - tartalmazza a kérelemhez tartozó attribútumok nevének felsorolását
  3. GetHeaderNames () felsorolás - a fejléc nevének felsorolását tartalmazza.
  4. A getParameterNames () felsorolása - tartalmazza a paraméterek nevének lekérését a kérésben.
  5. HttpSessiongetSession () - a kéréshez társított aktuális munkamenetet adja vissza, vagy ha nincs munkamenet, akkor újat hoz létre.
  6. Locale getLocale () - adja vissza az előnyben részesített területi beállítást, amelyben az ügyfél elfogadja a tartalmat. A válaszhoz rendelték. Alapértelmezés szerint az érték a kiszolgáló alapértelmezett területi beállítása lesz.
  7. Object getAttribute (String name) - a megnevezett attribútum értékét adja vissza objektumként.
  8. ServletInputStreamgetInputStream () - a kérelem törzse bináris adatként.
  9. String getAuthType () - visszaadja a hitelesítési séma nevét a servlet védelme érdekében
  10. String getCharacterEncoding () - visszaadja a kérelem törzsében használt karakterkódolás nevét.
  11. String getContentType () - a kérelem törzsének MIME-típusát adja vissza.
  12. Karakterlánc getContextPath () - a kérés URI azon részét adja vissza, amely az URI kontextusútját jelzi
  13. String getHeader (String name) - a kérés fejlécét adja vissza karakterláncként
  14. String getMethod () - a HTTP módszer nevét adja vissza, például GET, POST
  15. String getParameter (String name) - karakterláncként adja vissza a kérés paraméterét.
  16. String getPathInfo () - visszaadja az URL-hez társított útvonaladatokat
  17. String getQueryString () - a lekérdezési karakterláncot adja vissza, amely a kérelem URL- jéhez van társítva
  18. String getServletPath () - a kérés URL- jének azon részét adja vissza, amely meghívja a JSP-t
  19. String [] getParameterValues ​​(karakterlánc neve) - visszatér a string objektumok tömbjéből, amelyek tartalmazzák azokat az értékeket, amelyeket a kérés paraméter tartalmaz

Példa:

Az alábbi példában különböző módszereket használunk a request object használatával

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1" pageEncoding = "ISO-8859-1"%><% @ page import = "java.io. * java.util. *"%> Ügyfélkérés Guru JSP 

Ügyfélkérési Guru JSP

<%HttpSession gurusession = request.getSession ();out.print ("< ");Locale gurulocale = request.getLocale ();out.print ("< ");Karakterlánc útvonala = request.getPathInfo ();out.print (" ");Karakterlánc lpath = request.get ();out.print (" ");Karakterlánc kiszolgálónév = request.getServerName ();out.print ("< ");int portname = request.getServerPort ();out.print ("< ");Felsorolás hnames = request.getHeaderNames ();while (hnames.hasMoreElements ()) {String paramName = (Karakterlánc) hnames.nextElement ();out.print (" ");String paramValue = request.getHeader (paramName);out.println (" ");}%>

A kód magyarázata:

17. kódsor: A kérelemobjektum használatával megkapjuk az adott munkamenet munkamenet-objektumát, és megkapjuk az adott munkamenet objektumértékét

19. kódsor: A kérelemobjektum használatával megkapjuk az adott munkamenet i.een_US területi beállításait az adott JSP számára.

21. kódsor: A kérésobjektum használatával elérési utat kapunk az adott JSP-hez. Ebben az esetben semleges, mivel nincs megadva az URL elérési útja.

23. kódsor: A kérésobjektum segítségével kontextus elérési utat kapunk, azaz gyökérútvonalat

25. kódsor: A kérésobjektum használatával megkapjuk a szerver nevét.

27. kódsor: A kérésobjektum használatával kiszolgálói portot kapunk.

Kódsor 29-35: A kérésobjektum használatával olyan fejlécneveket kapunk, amelyek felsorolásként jelennek meg, és ezért minden fejlécértéket megkapunk a fejlécnevekben.

Ebben minden fejlécértéket megkapunk cookie-ként, gazdagépként, kapcsolatként, elfogadjuk a nyelvet, elfogadjuk a kódolást.

A fenti kód végrehajtásakor a következő kimenetet kapja:

Kimenet :

Megkapjuk az értékek sorozatát, például a munkamenet nevét, a területi nevet, az útvonal nevét, a kiszolgáló nevét, a port nevét, a gazdagépet, a kontextus elérési útját és az adott JSP összes fejlécértékét.

JSP kiszolgáló válasza

  • Amikor egy kérést feldolgoznak, majd a választ a webkiszolgáló generálja. Állapotsorból, válaszfejlécekből, üres sorból és dokumentumból áll.
  • Ez a HTTPServletResponseclass objektuma, amely válaszobjektum.
  • Az állapotsor a HTML változata.

A válaszfejléceket az alábbiakban említjük:

guru header guru header Érték (ek)
A munkamenet neve " + gurusession + "
területi név " + gurulocale + "
Az útvonal neve " + útvonal + "
A kontextus elérési útja " + lipath + "
A kiszolgáló neve " + szervernév + "
A kiszolgáló portja " + portnév + "
" + paramName + "" + paramValue + "
Fejléc Leírás
Lehetővé teszi Megadja azokat a kérési módszereket, mint például a GET, POST, amelyeket a szerver kér
Gyorsítótár-vezérlés A válaszdokumentum tárolható. Lehet nyilvános, magán és nincs gyorsítótár. Nincs gyorsítótár, amely megadja, hogy a dokumentumot nem szabad gyorsítótárba helyezni
Kapcsolat Utasítja, hogy a böngészőnek mentett HTTP-kapcsolatokat kell-e használnia, vagy sem. A közeli érték azt jelzi, hogy a böngészőnek nem szabad állandónak lennie a HTTP-kapcsolatokban, és a "keep-alive" azt jelenti, hogy állandó kapcsolatokat kell használni
Tartalom-diszpozíció Megkérdezni a felhasználótól, hogy a választ lemezre kell-e menteni, vagy sem
Tartalomkódolás Az oldalt kódolni kell az átvitel során
Tartalom hossza A válasz bájtjainak száma
Tartalom típus Megadja a válasz MIME típusát
Lejár Megadja, hogy a tartalom mikor tekinthető elavultnak, és ne legyen gyorsítótárban
Utoljára módosítva Jelzi, hogy a dokumentum mikor módosult utoljára
Elhelyezkedés Minden olyan válasznál szerepelnie kell, amelynek állapotkódja 300 állapotkódként szerepel
Frissítés Megadja, hogy miként lehet megtalálni a frissített oldalt.
Újrapróbálkozás 503 válasz segítségével fel lehet mondani az ügyfélnek, hogy milyen gyorsan tudja megismételni a kérést
Set-cookie Megadja az oldalhoz társított sütit

Az alábbiakban bemutatjuk a válaszobjektumokat használó módszereket:

  1. String encodeRedirectURL (String URL) - kódolja az URL-t redirectURL módszerrel.
  2. String encodeURL (karakterlánc URL) - az URL kódolja a munkamenet azonosítójának beépítésével .
  3. A Boolean tartalmazzaHeader (karakterlánc neve) - tartalmaz fejlécet a JSP-ben, vagy sem.
  4. Boolean isCommited () - a válasz végrehajtásra került vagy sem.
  5. Void addCookie (Cookie cookie) - cookie-t ad a válaszhoz
  6. Void addDateHeader (karakterlánc neve, karakterlánc értéke) - hozzáadja a válasz fejlécének dátumnevét és értékét
  7. Void addHeader (karakterlánc neve, karakterlánc értéke) - válasz fejlécet ad hozzá névvel és értékkel
  8. Void addIntHeader (Karakterlánc neve, int érték) - válasz fejlécet ad hozzá névvel és egész számmal
  9. Void flushBuffer () - a puffer tartalmát kényszeríti az ügyfél kimenetére.
  10. Void reset () - törli az adatokat a pufferben.
  11. Void resetBuffer - törli a tartalom puffert a válaszban állapotkódok törlése nélkül.
  12. Void sendError (intsc, Stringmsg) - állapotkód használatával hibaüzenetet küld az ügyfélnek.
  13. Void sendRedirect (String location) - ideiglenes átirányítási választ küld az ügyfélnek.
  14. Void setBufferSize (int méret) - a test pufferméretét állítja be
  15. Void setCharacterEncoding (karakterlánc karakterkészlet) - karakterkódolást állít be
  16. Void setContentType (karakterlánc típusa) - a válasz tartalmi típusát állítja be
  17. Void setContentLength (intlen) - beállítja a válasz tartalmi hosszát
  18. Void setLocale (Locale lcl) - beállítja a válasz területi beállítását
  19. Void setStatus (intsc) - beállítja a válasz állapotkódját

Példa:

Ebben a példában különböző getLocale, flushbuffer, getWriter, get ContentType, setIntHeader módszereket tárgyalunk.

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1" pageEncoding = "ISO-8859-1"%><% @ page import = "java.io. * java.util. *"%> Guru Action Response 

Guru válasz

<%Területi beállítás lcl = response.getLocale ();out.println ("A területi beállítás: + lcl + "\ n");response.flushBuffer ();PrintWriter output = response.getWriter ();output.println ("Ez az író objektumtól származik");Karakterlánc típusa = response.getContentType ();out.println ("A tartalom típusa: + type + "\ n");// Állítsa a frissítés, automatikus letöltés idejét 5 másodpercreresponse.setIntHeader ("Frissítés", 5);// Aktuális idő lekéréseDátum dt = új dátum ();out.println ("A mai dátum: + dt.toString () + "\ n");%>

A kód magyarázata:

13. kódsor: Válaszobjektum használatával megkapjuk ennek a JSP-munkamenetnek a területi objektumát

15. kódsor : A válaszobjektum használatával a flushbuffer a puffertartalom kliensbe kényszerítésére szolgál

16. kódsor: A válaszobjektum segítségével író objektumot kapunk, amely kimenetet kap a kimeneti adatfolyamba

18. kódsor: A válaszobjektum használatával megkapjuk a tartalom típusát, azaz a válasz objektum MIME típusát

Kódsor 21: A válaszobjektum segítségével 5 másodpercenként automatikusan automatikusan meghallgatják, mivel az 5 beállítása a második paraméter

A fenti kód végrehajtásakor a következő kimenetet kapja:

Kimenet:

  • Itt kapjuk meg a kimenetet, mivel ez a getWriter író objektumától származik, amely objektumot ad nekünk, és a kimeneti adatfolyamban kimenhetünk.
  • A területi beállításokat en_us, a tartalom típusát pedig text / html-ként kapjuk meg
  • Az ISO 8859 szabvány szerinti karakterkészletet kapjuk
  • A mai dátum az aktuális dátum.

JSP HTTP állapotkódok

  • A kérelem feldolgozásakor a válasz generálódik. A válasz állapotsor HTTP verzióból, állapotkódból és társított üzenetből áll.
  • Az üzenet közvetlenül az állapotkódhoz és a HTTP verzióhoz van társítva, és a szerver határozza meg.
  • Alapértelmezés szerint a 200 állapotkódként van beállítva a JSP-ben, ezért nem kell kifejezetten beállítanunk.
  • Beállíthatjuk válasz.setStatus () metódusként

A kódok a következő 5 kategóriába sorolhatók:

  • 100-199 - Itt az ügyfél jelzi, hogy valamilyen művelettel kell válaszolnia
  • 200–299 - Azt jelzi, hogy a kérés sikeres volt
  • 300-399 - Áthelyezett fájlokhoz használják, és általában tartalmazzák az új címet jelző helyfejlécet
  • 400-499 - Az ügyfél hibáját jelzi
  • 500-599 - A szerver hibáját jelzi

Néhány általános állapotkód az alábbiakban található:

  • 200 - Azt jelzi, hogy minden rendben van
  • 301 - Véglegesen költözött
  • 304 - A legutóbbi változtatás óta nincs módosítva
  • 400 rossz kérés
  • 404 nem található
  • 405 - A módszer nem található
  • 500 Belső Szerver Hiba
  • 503 A szolgáltatás nem elérhető
  • 505 - A HTTP verzió nem támogatott

Néhány módszerét az alábbiakban soroljuk fel:

  1. Nyilvános void setStatus (intstatusCode)

    Beállítja az állapotkódot, amelyet be akarunk állítani az adott JSP oldalon. Ez megadja a beállított állapotkód üzenetét

  2. Nyilvános void sendRedirect (karakterlánc URL)

    302 választ generál a hely fejlécével együtt, amely megadja az új dokumentum URL-jét

  3. Nyilvános érvénytelen sendError (intcode, Stringmsg)

    Az állapotkódot elküldi a rövid üzenettel együtt, és a HTML dokumentumba formázza.

Példa:

Ebben a példában kifejezetten hibát küldünk a JSP oldalra.

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1" pageEncoding = "ISO-8859-1"%> Guru állapotkód <% response.sendError (404, "A guru oldal nem található"); %>

A kód magyarázata:

10. kódsor: A válaszobjektum használatával a hibát egy két paraméteres oldalra küldjük.

  1. Állapotkód - A fentiek bármelyike ​​lehet. Ebben az esetben 404-nek írtuk le
  2. Üzenet - Bármely konkrét üzenet lehet, amely a hibát meg akarja jeleníteni

Ha végrehajtja a fenti kódot, a következő kimenetet kapja:

Kimenet:

Itt 404-es hibakódot kapunk, amelyet a kódból küldtek, és megjeleníti a kimeneten látható "Guru Page not found" üzenetet is.

Összegzés:

  • Ebben a cikkben megtudtuk az ügyfélkérésről és a kiszolgáló válaszairól, hogy miként fogják fel a kérést és hogyan kezelik a válaszokat.
  • Ismerkedtünk a HTTP állapotkódokkal, amelyek hibakódokat vagy sikerkódokat mutatnak egy adott fájlhoz.