JSP ügyfél kérés

⚡ Okos összefoglaló

A JSP klienskérés és a szerver válasza JSP műveletelemeket használ a servlet motor vezérléséhez. A böngésző HTTP fejléceken keresztül küldi az információkat, a szerver egy állapotsort és fejléceket ad vissza, és a HTTP állapotkódok jelentik az egyes kérések eredményét.

  • 📨 Ügyfél kérése: A böngésző HTTP kérésfejlécekben küldi az adatokat a szervernek, amelyeket a HttpServletRequest-en keresztül olvas be.
  • 🧾 Kérelem fejlécek: Az Accept, Accept-language, Connection, Cookie, Host és User-agent leírják a klienst.
  • 📤 Szerver válasz: A HttpServletResponse egy állapotsort, válaszfejléceket és a dokumentumot adja vissza.
  • 🔧 Válaszadási módszerek: Az addHeader(), sendRedirect(), sendError() és setStatus() függvények alakítják a választ.
  • 🔢 Állapot Codes: 100–599 csoportba sorolva; a gyakoriak közé tartozik a 200, 301, 404 és 500.
  • 🧪 Példák: A működő JSP oldalak beolvassák a fejléceket, beállítják a frissítési időközt, és 404-es hibát küldenek.

JSP ügyfél kérés

A JSP műveletek XML szintaxisban található konstrukciókat használnak a servlet motor viselkedésének vezérlésére. Részletesebben megismerkedünk majd a különböző JSP műveleti elemekkel, mint például az ügyfélkérelem, a szerverválasz és a HTTP állapotkódok.

JSP ügyfél kérés

  • Amikor a weboldal kérésre kerül, az információkat küld a webszervernek a HTTP fejlécben.
  • Ezt az információt a HTTPServletRequest objektum használatával használhatjuk fel.
  • A böngésző által küldött információk a HTTP kérés kérésfejlécében tárolódnak.
  • Különböző fejléceket használunk, hogy információkat küldjünk a kérelem objektumnak.

Fejlécek JSP-ben

Az alábbiakban ismertetjük a JSP különböző fejléceit:

Fejléc Leírás Példa
Elfogadom! Meghatározza a MIME típusokat, amelyeket a böngésző vagy más kliensek kezelni tudnak Kép/png vagy kép/jpeg
Accept-charset A böngésző által használt karakterkészletet használja az információk megjelenítéséhez ISO-8859 1-
Elfogadás- Kódolás Meghatározza a böngésző által kezelt kódolás típusát Gzip vagy tömörítés
Elfogad-nyelv Meghatározza az ügyfelek által megadott nyelvet En,en_us
Meghatalmazás Az ügyfelek által használt fejléc, amikor jelszóval védett weboldalakat próbálnak elérni
csatlakozás Azt jelzi, hogy az ügyfél képes-e kezelni az állandó HTTP-kapcsolatokat (a böngésző több fájlt is lekérhet) Életben tartani
Tartalom-hosszúság Feladási kérésekre vonatkozik. Megadja a postai adatok méretét bájtokban
aprósütemény Visszaküldi a cookie-t a szervernek (azokat, amelyeket korábban elküldtek a böngészőnek)
Házigazda Megadja az eredeti gazdagépet és portot URL
Ha azóta módosították Azt jelzi, hogy csak egy oldalt igényel, ha módosították vagy módosították
Ha azóta változatlanul Azt jelzi, hogy csak akkor igényel oldalt, ha azt nem módosították vagy módosították
Ajánló Azt jelzi URL az utalás URL oldal
Felhasználó-ügynök Azonosítja a böngésző vagy az ügyfél kérését

HTTP-fejléc-módszerek a JSP-ben

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 küldött cookie-objektumokat tartalmazó tömböt ad vissza
  2. Felsorolás getAttributeNames() – tartalmazza a kéréshez szükséges attribútumnevek felsorolását
  3. Felsorolás getHeaderNames() – fejlécnevek felsorolását tartalmazza.
  4. Felsorolás getParameterNames() – tartalmazza a kérésben szereplő paraméternevek felsorolását.
  5. HttpSession getSession() – visszaadja a kéréshez társított aktuális munkamenetet, vagy ha nincs munkamenete, akkor újat hoz létre.
  6. Helyi beállítás getLocale() – visszaadja azt az előnyben részesített területi beállítást, amelyben az ügyfél a tartalmat elfogadja. Hozzá van rendelve a válaszhoz. Alapértelmezés szerint az érték a kiszolgáló alapértelmezett területi beállítása lesz.
  7. Objektum getAttribute (karakterlánc neve) – a named attribútum értékét adja vissza objektumként.
  8. ServletInputStream getInputStream() – bináris adatként kéri le a kérés törzsét.
  9. Karakterlánc getAuthType() – a servlet védelmére szolgáló hitelesítési séma nevét adja vissza
  10. String getCharacterEncoding() – a kérés törzsében használt karakterkódolás nevét adja vissza.
  11. String getContentType() – a kérés törzsének MIME típusát adja vissza.
  12. String getContextPath() – a kérésnek azt a részét adja vissza, amely URI az URI környezeti elérési útját jelzi
  13. String getHeader (karakterlánc neve) – visszaadja a kérés fejlécét karakterláncként
  14. String getMethod() – visszaadja a HTTP metódus nevét, például GET, POST
  15. String getParameter (karakterlánc neve) – visszaadja a kérés paraméterét karakterláncként.
  16. String getPathInfo() – visszaadja a hozzá tartozó elérési út információt URL
  17. Karakterlánc getQueryString() – visszaadja a kéréshez társított lekérdezési karakterláncot URL
  18. String getServletPath() – visszaadja a részét URLa JSP-t hívó kérés s-ei
  19. String[] getParameterValues(karakterlánc neve) – visszaadja a karakterlánc objektumokból álló tömböt, amely tartalmazza a kérési paraméter értékeit

Példa:

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

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<%@ page import="java.io.* java.util.*" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Client Request Guru JSP</title>
</head>
<body>
<h2>Client Request Guru JSP</h2>

<table border="1">
<tr>
<th>guru header</th><th>guru header Value(s)</th>
</tr>
<%
    HttpSession gurusession = request.getSession();
    out.print("<tr><td>Session Name is </td><td>" +gurusession+ "</td.></tr>");
    Locale gurulocale = request.getLocale ();
    out.print("<tr><td>Locale Name is</td><td>" +gurulocale + "</td></tr>");
    String path = request.getPathInfo();
    out.print("<tr><td>Path Name is</td><td>" +path+ "</td></tr>");
    String lpath = request.get();
    out.print("<tr><td>Context path is</td><td>" +lipath + "</td></tr>");
    String servername = request.getServerName();
    out.print("<tr><td>Server Name is </td><td>" +servername+ "</td></tr>");
    int portname = request.getServerPort();
    out.print("<tr><td>Server Port is </td><td>" +portname+ "</td></tr>");
    Enumeration hnames = request.getHeaderNames();
    while(hnames.hasMoreElements()) {
        String paramName = (String)hnames.nextElement();
        out.print ("<tr><td>" + paramName + "</td>" );

        String paramValue = request.getHeader(paramName);
        out.println("<td> " + paramValue + "</td></tr>");
    }

%>

A kód magyarázata:

Code 17 vonal: A request objektum használatával megkapjuk az adott munkamenet session objektumát, és megkapjuk az adott munkamenet objektumértékét

Code 19 vonal: A request objektum használatával megkapjuk az adott munkamenet területi beállítását, azaz az adott JSP-hez tartozó en_US területi beállítást.

Code 21 vonal: A request objektum használatával elérési utat kapunk az adott JSP-hez. Ebben az esetben ez null, mivel nincs elérési út a következőhöz: URL említett.

Code 23 vonal: A kérelem objektum használatával a kontextus elérési útját, azaz a gyökér elérési útját kapjuk

Code 25 vonal: A kérelem objektum használatával megkapjuk a szerver nevét.

Code 27 vonal: A kérelem objektum használatával szerverportot kapunk.

Code 29-35. sor: A kérelem objektum használatával fejlécneveket kapunk, amelyek felsorolásként jönnek ki, és így megkapjuk az összes fejlécértéket a fejlécnevekben.

Ebben az összes fejlécértéket a-ként kapjuk meg aprósütemény, gazdagép, kapcsolat, nyelv elfogadása, kódolás elfogadása.

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

JSP ügyfél kérés

output:

Olyan értékek sorozatát kapjuk meg, mint a munkamenet neve, területi beállítás neve, elérési út neve, kiszolgáló neve, port neve, gazdagép, kontextus elérési útja és ezek összes fejlécértéke. JSP.

JSP szerver válasz

  • Amikor egy kérést feldolgoznak, majd a választ generálja a webszerver. Állapotsorból, válaszfejlécekből, üres sorból és dokumentumból áll.
  • Ez a HTTPServletResponse osztály objektuma, ami egy válasz objektum.
  • Az állapotsor a HTML egy változata.

Válaszfejlécek JSP-ben

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

Fejléc Leírás
Hagyjuk Meghatározza a kérési metódusokat, például a GET, POST, amelyet a szerver kér
Cache-vezérlés A válaszdokumentum gyorsítótárazható. Lehet nyilvános, privát és gyorsítótár nélküli. A gyorsítótár nem határozza meg, hogy a dokumentum ne legyen gyorsítótárban
csatlakozás Utasítja, hogy a böngészőnek használnia kell-e a mentett HTTPConnections-t vagy sem. A bezárás azt jelenti, hogy a böngészőnek nem szabad állandó kapcsolatot használnia a HTTP-kapcsolatokban, a „keep-alive” pedig állandó kapcsolatok használatát jelenti.
Tartalom-rendelkezés Megkérdezni a felhasználót, hogy mentse-e a választ lemezre vagy sem
Tartalom-kódolás Az oldalt az átvitel során kódolni kell
Tartalom-hosszúság A válasz bájtok száma
Tartalom típus Meghatározza a válasz MIME típusát
Lejár Meghatározza, hogy a tartalom meddig tekinthető elavultnak, és mennyi ideig nem szabad gyorsítótárban tárolni
Utolsó módosítás Azt jelzi, hogy mikor módosították utoljára a dokumentumot
Települések Minden olyan válaszban szerepelnie kell, amelynek állapotkódja 300 állapotkód
felfrissít Meghatározza, hogyan találja meg a frissített oldalt.
Újrapróbálkozás után Használható 503-as válaszokkal, hogy közölje az ügyféllel, hogy milyen hamar tudja megismételni a kérést
Set-cookie Meghatározza az oldalhoz társított cookie-t

HTTP-válaszfejléc-módszerek a JSP-ben

A következő módszerek a JSP-ben válaszobjektumot használva:

  1. Karakterlánc encodeRedirectURL(Húr URL) - kódolja a URL átirányításbanURL módszer.
  2. Karakterlánc kódolásaURL(Húr URL) - kódolja a URL a munkamenet-azonosító megadásával.
  3. Boolean tartalmaz fejlécet (karakterlánc neve) – tartalmaz-e fejlécet a JSP-ben, vagy sem.
  4. Boolean isCommited() – a válasz megtörtént-e vagy sem.
  5. Érvénytelen addCookie(Cookie süti) – sütit ad a válaszhoz
  6. Void addDateHeader (karakterlánc neve, karakterlánc értéke) – hozzáadja a válaszfejléc dátumának nevét és értékét
  7. Void addHeader (karakterlánc neve, karakterlánc értéke) – hozzáadja a válaszfejlécet névvel és értékkel
  8. Érvénytelen addIntHeader(karakterlánc neve, int érték) – hozzáadja a válaszfejlécet névvel és egész értékkel
  9. Üres öblítésBuffer() - a puffer tartalmát a kliens kimenetére kényszeríti.
  10. Void reset() – törli az adatokat a pufferben.
  11. Érvénytelen visszaállításBuffer - az állapotkódok törlése nélkül törli a válasz tartalmi pufferét.
  12. Void sendError(int sc,String msg) – hibaüzenetet küld a kliensnek állapotkód használatával.
  13. Érvénytelen sendRedirect (karakterlánc helye) – ideiglenes átirányítási választ küld az ügyfélnek.
  14. Üres készletBufferMéret (int méret) - beállítja a test pufferméretét
  15. Void set CharacterEncoding (karakterlánc karakterkészlet) – beállítja a karakterkódolást
  16. Void setContentType (karakterlánc típusa) – beállítja a válasz tartalomtípusát
  17. Void setContentLength(int len) – beállítja a válasz tartalmi hosszát
  18. Void setLocale(Locale lcl) – beállítja a válasz területi típusát
  19. Void setStatus(int sc) – beállítja a válasz állapotkódját

Példa:

Ebben a példában különböző metódusokat tárgyalunk: getLocale, flushbuffer, getWriter, getContentType, setIntHeader.

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<%@ page import="java.io.* java.util.*" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Guru Action Response</title>
</head>
<body>
<center>
<h2>Guru Response</h2>
<%
Locale lcl = response.getLocale();
out.println("Locale is : " + lcl + "\n");
response.flushBuffer();
PrintWriter output = response.getWriter();
output.println("This is from writer object");
String type = response.getContentType();
out.println("The content type : " + type + "\n");
    // Set refresh,autoload time as 5 seconds
    response.setIntHeader("Refresh", 5);
    //Get current time
    Date dt = new Date();
    out.println("Today's date is : " +dt.toString() + "\n");
%>
</center>
</body>
</html>

A kód magyarázata:

Code 13 vonal: A válaszobjektum használatával megkapjuk ennek a JSP-munkamenetnek a locale objektumát

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

Code 16 vonal: A válaszobjektum használatával író objektumot kapunk, amely kimenetet kap a kimeneti folyamban

Code 18 vonal: A válaszobjektum használatával tartalomtípust, azaz MIME típusú válaszobjektumot kapunk

Code 21 vonal: A válaszobjektum használatával 5 másodpercenként automatikusan betöltődik, mivel az 5 van beállítva második paraméterként

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

JSP szerver válasz

output:

  • Itt kapjuk a kimenetet, mivel ez a get függvény író objektumából származik.Writer, ami objektumot ad nekünk, és ezt kimenetként használhatjuk.
  • A locale-t en_us-ként, a tartalomtípust pedig text/html-ként kapjuk meg
  • A karakterkészletet ISO 8859-ként kapjuk meg
  • A mai dátum mint aktuális dátum.

JSP HTTP állapot Codes

  • A kérés feldolgozása után a válasz jön létre. A válasz állapotsora a HTTP verzióból, egy állapotkódból és egy kapcsolódó üzenetből áll.
  • Az üzenet közvetlenül kapcsolódik az állapotkódhoz és a HTTP-verzióhoz, és azt a szerver határozza meg.
  • Alapértelmezés szerint 200 van beállítva állapotkódként a JSP-ben, így 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 tartalmaznak egy helyfejlécet, amely az új címet jelzi
  • 400-499 – Az ügyfél hibáját jelzi
  • 500-599 – A szerver hibáját jelzi

Az alábbiakban néhány általános állapotkód található:

  • 200 – Azt jelzi, hogy minden rendben van
  • 301 – Végleg elköltözött
  • 304 – A legutóbbi változtatás óta nem módosult
  • 400 Hibás kérelem
  • 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

HTTP állapot Code JSP metódusok

Az alábbiakban felsorolunk néhány állapotkód-módszert a JSP-ben:

  1. Public void setStatus(int állapotCode): Beállítja az állapotkódot, amelyiket be akarjuk állítani az adott JSP-oldalon. Ezzel a beállított állapotkód üzenetét kapjuk
  2. Nyilvános void sendRedirect(String URL): 302-es választ generál a helymeghatározó fejléccel együtt, amely megadja URL az új dokumentum
  3. Public void sendError(int kód,String üzenet): A rövid üzenettel együtt elküldi az állapotkódot, és HTML dokumentumban van formázva.

Példa:

Ebben a példában a hibát kifejezetten a JSP-oldalnak küldjük.

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Guru Status Code</title>
</head>
<body>
<% response.sendError(404,"Guru Page Not Found"); %>
</body>
</html>

A kód magyarázata:

Code 10 vonal: A válaszobjektum segítségével a hibát egy két paraméteres oldalra küldjük.

  1. Állapotkód – A fentiek bármelyike ​​lehet. Ebben az esetben a 404-et írtuk le
  2. Üzenet – Bármilyen konkrét üzenet lehet, amelyben a hibát szeretnénk megjeleníteni

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

JSP HTTP állapot Codes

output:

Itt 404-es hibakódot kapunk, amelyet a kód küldött, és a következőt is megjeleníti: „Guru „Az oldal nem található” üzenet jelenik meg a kimenetben.

GYIK

A HttpServletRequest a kliens által a szervernek küldött adatokat, például fejléceket és paramétereket továbbítja. A HttpServletResponse a szervertől visszaküldött adatokat tartalmazza, beleértve az állapotkódokat, a válasz fejléceket és a dokumentum tartalmát.

A 404-es állapotkód azt jelenti, hogy a kért erőforrás nem található a szerveren. JSP-ben explicit módon elküldheted a response.sendError(404, „message”) paranccsal, hogy egyéni „nem található” oldalt jeleníts meg.

Használd a request objektumot: a getHeaderNames() függvény fejlécnevek felsorolását adja vissza, a getHeader(name) függvény pedig az egyes fejlécértékeket adja vissza. Menj végig a neveken, hogy beolvasd az ügyfél által küldött összes fejlécet.

A mesterséges intelligencia képes elemezni a fejlécnaplókat, megjelölni a hiányzó vagy hibásan konfigurált fejléceket, észlelni a biztonsági problémákat, például a hiányzó gyorsítótár-vezérlést, és összefoglalni a forgalmi mintákat, segítve a...ping a fejlesztők gyorsabban hibakeresik és optimalizálják a kérések és válaszok kezelését.

Igen. A mesterséges intelligencia képes JSP szkripteket generálni, amelyek beolvassák a kérésparamétereket és fejléceket, beállítják a válaszfejléceket, és állapotkódokat küldenek egy egyszerű nyelvű leírásból, amelyet a fejlesztők ezután helyesség és biztonság szempontjából ellenőriznek.

Foglald össze ezt a bejegyzést a következőképpen: