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:
- Cookie [] getCookies () - az ügyfél által elküldött cookie objektumokat tartalmazó tömböt adja vissza
- GetAttributeNames () felsorolás - tartalmazza a kérelemhez tartozó attribútumok nevének felsorolását
- GetHeaderNames () felsorolás - a fejléc nevének felsorolását tartalmazza.
- A getParameterNames () felsorolása - tartalmazza a paraméterek nevének lekérését a kérésben.
- HttpSessiongetSession () - a kéréshez társított aktuális munkamenetet adja vissza, vagy ha nincs munkamenet, akkor újat hoz létre.
- 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.
- Object getAttribute (String name) - a megnevezett attribútum értékét adja vissza objektumként.
- ServletInputStreamgetInputStream () - a kérelem törzse bináris adatként.
- String getAuthType () - visszaadja a hitelesítési séma nevét a servlet védelme érdekében
- String getCharacterEncoding () - visszaadja a kérelem törzsében használt karakterkódolás nevét.
- String getContentType () - a kérelem törzsének MIME-típusát adja vissza.
- Karakterlánc getContextPath () - a kérés URI azon részét adja vissza, amely az URI kontextusútját jelzi
- String getHeader (String name) - a kérés fejlécét adja vissza karakterláncként
- String getMethod () - a HTTP módszer nevét adja vissza, például GET, POST
- String getParameter (String name) - karakterláncként adja vissza a kérés paraméterét.
- String getPathInfo () - visszaadja az URL-hez társított útvonaladatokat
- String getQueryString () - a lekérdezési karakterláncot adja vissza, amely a kérelem URL- jéhez van társítva
- String getServletPath () - a kérés URL- jének azon részét adja vissza, amely meghívja a JSP-t
- 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
guru header | guru header Érték (ek) |
<%HttpSession gurusession = request.getSession ();out.print ("<
A munkamenet neve | " + gurusession + " td.>
|
");Locale gurulocale = request.getLocale ();out.print ("<
területi név | " + gurulocale + " |
");Karakterlánc útvonala = request.getPathInfo ();out.print ("
Az útvonal neve | " + útvonal + " |
");Karakterlánc lpath = request.get ();out.print ("
A kontextus elérési útja | " + lipath + " |
");Karakterlánc kiszolgálónév = request.getServerName ();out.print ("<
A kiszolgáló neve | " + szervernév + " |
");int portname = request.getServerPort ();out.print ("<
A kiszolgáló portja | " + portnév + " |
");Felsorolás hnames = request.getHeaderNames ();while (hnames.hasMoreElements ()) {String paramName = (Karakterlánc) hnames.nextElement ();out.print ("
" + paramName + " | ");String paramValue = request.getHeader (paramName);out.println ("" + paramValue + " |
");}%>
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:
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:
- String encodeRedirectURL (String URL) - kódolja az URL-t redirectURL módszerrel.
- String encodeURL (karakterlánc URL) - az URL kódolja a munkamenet azonosítójának beépítésével .
- A Boolean tartalmazzaHeader (karakterlánc neve) - tartalmaz fejlécet a JSP-ben, vagy sem.
- Boolean isCommited () - a válasz végrehajtásra került vagy sem.
- Void addCookie (Cookie cookie) - cookie-t ad a válaszhoz
- Void addDateHeader (karakterlánc neve, karakterlánc értéke) - hozzáadja a válasz fejlécének dátumnevét és értékét
- Void addHeader (karakterlánc neve, karakterlánc értéke) - válasz fejlécet ad hozzá névvel és értékkel
- Void addIntHeader (Karakterlánc neve, int érték) - válasz fejlécet ad hozzá névvel és egész számmal
- Void flushBuffer () - a puffer tartalmát kényszeríti az ügyfél kimenetére.
- Void reset () - törli az adatokat a pufferben.
- Void resetBuffer - törli a tartalom puffert a válaszban állapotkódok törlése nélkül.
- Void sendError (intsc, Stringmsg) - állapotkód használatával hibaüzenetet küld az ügyfélnek.
- Void sendRedirect (String location) - ideiglenes átirányítási választ küld az ügyfélnek.
- Void setBufferSize (int méret) - a test pufferméretét állítja be
- Void setCharacterEncoding (karakterlánc karakterkészlet) - karakterkódolást állít be
- Void setContentType (karakterlánc típusa) - a válasz tartalmi típusát állítja be
- Void setContentLength (intlen) - beállítja a válasz tartalmi hosszát
- Void setLocale (Locale lcl) - beállítja a válasz területi beállítását
- 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:
- 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
- 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
- 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ó"); %>