JSP ügyfél kérés

JSP-műveletek, amelyek XML-szintaxis konstrukciókat használnak a szervlet motor viselkedésének szabályozására. További részleteket fogunk megtudni a különféle JSP-műveletelemekről, például az ügyfélkérésről, a szerver válaszáról, a HTTP állapotkódokról.

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
Elfogad! 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 URL gazdagépét és portját  
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ó 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  

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() – tartalmazza a fejléc neveinek felsorolását.
  4. Felsorolás getParameterNames() – tartalmazza a kérésben szereplő paraméternevek felsorolását.
  5. HttpSessiongetSession() – 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. ServletInputStreamgetInputStream() – lekéri a kérés testét bináris adatként.
  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 az URL-hez tartozó elérési utat
  17. Karakterlánc getQueryString() – a kérés URL-jéhez társított lekérdezési karakterláncot adja vissza
  18. String getServletPath() – visszaadja a kérés URL-címeinek azt a részét, amely meghívja a JSP-t
  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:

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

19. kódsor: A request objektum használatával megkapjuk az adott munkamenet területi beállításait, az i.een_US területi beállítást az adott JSP-hez.

21. kódsor: A kérelem objektum használatával megkapjuk a JSP elérési útját. Ebben az esetben ez nulla, mivel nincs megemlítve az URL elérési útja.

23. kódsor: 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

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

27. kódsor: A kérelem objektum használatával szerverportot kapunk.

29-35. kódsor: 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

teljesítmény:

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 HTTPServletResponseclass objektuma, amely egy válaszobjektum.
  • 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(String URL) – az URL-t redirectURL metódusban kódolja.
  2. String encodeURL (String URL) – kódolja az URL-t a munkamenet-azonosító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. Void addCookie (Cookie cookie) – cookie-t 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(intsc,Stringmsg) – 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(intlen) – 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(intsc) – beállítja a válasz állapotkódját

Példa:

Ebben a példában különböző módszereket ismertetünk: 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.*" %>
<!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:

13. kódsor: A válaszobjektum használatával megkapjuk ennek a JSP-munkamenetnek a locale 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 használatával író objektumot kapunk, amely kimenetet kap a kimeneti folyamban

18. kódsor: A válaszobjektum használatával tartalomtípust, azaz MIME típusú válaszobjektumot kapunk

21. kódsor: 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 meg a kimenetet, mivel ez a getWriter író objektumától származik, amely objektumot ad nekünk, és a kimeneti folyamban tudjuk kiadni.
  • 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 állapotkódok

  • 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 állapotkód-módszerek a JSP-ben

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

  1. Public void setStatus(intstatusCode): 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. Public void sendRedirect (String URL): 302-es választ generál a hely fejlécével együtt, amely megadja az új dokumentum URL-jét
  3. Public void sendError(intcode,Stringmsg): 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:

10. kódsor: 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 állapotkódok

output:

Itt a 404-es hibakódot kapjuk, amelyet a kódból küldtünk, és a kimenetben is megjelenik a „Guru oldal nem található” üzenet.

Összegzésként

  • Ebben a cikkben megismerkedtünk az ügyfélkérésekkel és a kiszolgálói válaszokkal, amelyek a kérés elfogására és a válaszok manipulálására vonatkoznak.
  • JSP-műveletek amelyek XML szintaxis konstrukciókat használnak a szervlet motor viselkedésének szabályozására.
  • Amikor a weboldal kérésre kerül, az információkat küld a webszervernek a HTTP fejlécben.
  • 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.
  • 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.