JSP-klientförfrågan, serversvar & HTTP-statuskoder

JSP-åtgärder som använder konstruktioner i XML-syntax för att kontrollera beteendet hos servletmotorn. Vi kommer att lära oss mer i detalj om olika JSP Action-element som klientförfrågan, serversvar, HTTP-statuskoder.

I den här handledningen lär du dig-

  • JSP-klientförfrågan
  • JSP-serversvar
  • JSP HTTP-statuskoder

JSP-klientförfrågan

  • När webbsidan begärs skickar den information till webbservern i HTTP-rubriken.
  • Vi kan använda denna information med HTTPServletRequest-objekt.
  • Information som skickas av webbläsaren lagras i förfrågan i HTTP-begäran.
  • Vi använder olika rubriker för att skicka information till begäran objektet.

Olika rubriker beskrivs nedan:

Rubrik Beskrivning Exempel
Acceptera Den specificerar MIME-typer som webbläsare eller andra klienter kan hantera Bild / png eller bild / jpeg.webp
Acceptera-charset Den använder teckenuppsättningen som används av webbläsaren för att visa informationen ISO-8859-1
Acceptera - Kodning Den anger vilken typ av kodning som hanteras av webbläsaren Gzip eller komprimera
Acceptera språk Det specificerar klientens specificerade språk En, en_us
Tillstånd Rubrik som används av klienter när de försöker komma åt lösenordsskyddade webbsidor
Förbindelse Det indikerar om klienten kan hantera bestående HTTP-anslutningar (webbläsaren kan hämta flera filer) Håll vid liv
Innehållslängd Gäller för att skicka begäranden. Det ger storleken på inläggsdata för byte
Kaka Returnerar cookie till server (de som tidigare skickades till webbläsaren)
Värd Anger värd och port för den ursprungliga URL: n
Om modifierad sedan Den indikerar att den endast kräver en sida om den har ändrats eller ändrats
Om omodifierad sedan Den indikerar att den endast kräver en sida om den inte har ändrats eller ändrats
Hänvisare Anger URL för den hänvisande URL-sidan
Användaragent Identifierar webbläsar- eller klientförfrågan

Följande metoder används för att läsa HTTP-rubriken på JSP-sidan:

  1. Cookie [] getCookies () - returnerar en matris som innehåller cookie-objekt som klienten har skickat
  2. Enumeration getAttributeNames () - innehåller enumeration av namn på attribut för begäran
  3. Enumeration getHeaderNames () - innehåller uppräkning av rubrikens namn.
  4. Enumeration getParameterNames () - innehåller enumeration av att få parameternamn i begäran.
  5. HttpSessiongetSession () - returnerar den aktuella sessionen som är associerad med begäran eller om den inte har en session kommer den att skapa en ny.
  6. Locale getLocale () - returnerar önskad språk som klienten accepterar innehåll i. Det har tilldelats svaret. Som standard är värdet serverns standardinställningar.
  7. Object getAttribute (strängnamn) - returnerar värdet för namngiven attribut som ett objekt.
  8. ServletInputStreamgetInputStream () - hämtar begäran som binär data.
  9. String getAuthType () - returnerar namnet på autentiseringsschemat för att skydda servlet
  10. String getCharacterEncoding () - returnerar namnet på den teckenkodning som används i förfrågan.
  11. String getContentType () - returnerar MIME-typen av förfrågan.
  12. Sträng getContextPath () - returnerar den del av begäran som URI anger kontextvägen för URI
  13. String getHeader (String name) - returnerar förfrågningshuvudet som en sträng
  14. String getMethod () - returnerar namnet på HTTP-metoden som GET, POST
  15. String getParameter (String name) - returnerar parametern för begäran som en sträng.
  16. Sträng getPathInfo () - returnerar sökvägsinformationen som är kopplad till URL: en
  17. Sträng getQueryString () - returnerar frågesträngen som är associerad med begäran URL
  18. Sträng getServletPath () - returnerar den del av URL: erna i begäran som anropar JSP
  19. String [] getParameterValues ​​(Strängnamn) - returnerar matrisen med strängobjekt som innehåller de värden som parametern för begäran har

Exempel:

I exemplet nedan använder vi olika metoder med begäran objekt

<% @ sida språk = "java" contentType = "text / html; charset = ISO-8859-1" pageEncoding = "ISO-8859-1"%><% @ page import = "java.io. * java.util. *"%> Klientbegäran Guru JSP 

Klientbegäran Guru JSP

<%HttpSession gurusession = request.getSession ();out.print (" ");Lokal gurulocale = request.getLocale ();out.print (" ");Strängväg = request.getPathInfo ();out.print (" ");Sträng lpath = request.get ();out.print (" ");Sträng servernamn = request.getServerName ();out.print (" ");int portnamn = request.getServerPort ();out.print (" ");Uppräkning hnames = request.getHeaderNames ();medan (hnames.hasMoreElements ()) {String paramName = (String) hnames.nextElement ();out.print (" ");Sträng paramValue = request.getHeader (paramName);out.println (" ");}%>

Förklaring av koden:

Kodrad 17: Genom att använda förfrågningsobjekt får vi sessionobjektet för just den sessionen och vi får objektvärdet för den sessionen

Kodrad 19: Genom att använda förfrågningsobjekt får vi plats för just den sessionen i.een_US för den JSP.

Kodrad 21: Genom att använda förfrågningsobjekt får vi väginformation för den JSP. I det här fallet är den noll eftersom det inte finns någon sökväg för URL nämnd.

Kodrad 23: Med hjälp av förfrågningsobjekt får vi kontextväg, dvs. rotväg

Kodrad 25: Med hjälp av förfrågningsobjekt får vi servernamnet.

Kodrad 27: Med hjälp av förfrågningsobjekt får vi serverport.

Kodrad 29-35: Med hjälp av förfrågningsobjekt får vi rubriknamn som kommer ut som uppräkning, och därmed får vi alla huvudvärden i rubriknamnen.

I detta får vi alla huvudvärden som en cookie, värd, anslutning, acceptera språk, acceptera kodning.

När du kör koden ovan får du följande utdata:

Utgång :

Vi får en serie värden som sessionsnamn, språknamn, sökväg, servernamn, portnamn, värd, sammanhangsbana och alla rubrikvärden för den JSP.

JSP-serversvar

  • När en begäran behandlas och sedan genereras svaret från webbservern. Den består av en statusrad, svarsrubriker, en tom rad och dokument.
  • Det är objektet för HTTPServletResponseclass, som är ett svarobjekt.
  • Statusraden är en version av HTML.

Svarsrubriker nämns nedan:

guru header guru header Värde (r)
Sessionsnamn är " + gurusession + "
Lokalt namn är " + gurulocale + "
Path Name is " + path + "
Kontextvägen är " + lipath + "
Servernamn är " + servernamn + "
Serverport är " + portnamn + "
" + paramName + "" + paramValue + "
Rubrik Beskrivning
Tillåta Den anger förfrågningsmetoderna som GET, POST som servern begär
Cache-kontroll Svarsdokumentet kan cachas. Det kan vara offentligt, privat och utan cache. Ingen cache anger att dokumentet inte ska cachas
Förbindelse Den instruerar om webbläsaren ska använda sparade HTTP-anslutningar eller inte. Nära värde representerar att webbläsaren inte ska använda persistent i HTTPConnections och "keep-alive" betyder att använda persistenta anslutningar
Innehåll-disposition Att fråga användaren om svaret ska sparas på disken eller inte
Innehållskodning Sidan måste kodas under sändning
Innehållslängd Antal byte i svaret
Innehållstyp Den anger MIME-typ av svar
Går ut Anger till när innehållet ska anses vara inaktuellt och inte bör cachas
Senast ändrad Den anger när dokumentet senast ändrades
Plats Den bör ingå i alla svar som har statuskod har 300 som statuskod
Uppdatera Den specificerar hur du hittar den uppdaterade sidan.
Försök igen Den kan användas med 503-svar för att berätta för klienten om hur snart den kan upprepa begäran
Set-cookie Anger kakan som är kopplad till sidan

Följande är metoderna som använder svarsobjekt:

  1. String encodeRedirectURL (String URL) - kodar URL: en i redirectURL-metoden.
  2. String encodeURL (String URL) - kodar webbadressen genom att inkludera sessions-ID.
  3. Boolean containHeader (Strängnamn) - den innehåller en rubrik i JSP eller inte.
  4. Boolean isCommited () - svar har begåtts eller inte.
  5. Void addCookie (Cookie cookie) - lägger till cookie i svaret
  6. Void addDateHeader (Strängnamn, Strängvärde) - lägger till namn och värde för svarsrubrikens datum
  7. Void addHeader (Strängnamn, Strängvärde) - lägger till svarsrubrik med namn och värde
  8. Void addIntHeader (Strängnamn, int-värde) - lägger till svarsrubrik med namn och heltal
  9. Void flushBuffer () - tvingar innehåll i bufferten till utdata till klienten.
  10. Void reset () - rensar data i bufferten.
  11. Void resetBuffer - rensar innehållsbufferten i svaret utan att radera statuskoder.
  12. Void sendError (intsc, Stringmsg) - skickar ett felsvar till klienten med hjälp av statuskoden.
  13. Void sendRedirect (strängplats) - skickar ett tillfälligt omdirigeringssvar till klienten.
  14. Void setBufferSize (int-storlek) - ställer in buffertstorlek för kroppen
  15. Void setCharacterEncoding (String charset) - ställer in teckenkodning
  16. Void setContentType (strängtyp) - ställer in svarstypens innehållstyp
  17. Void setContentLength (intlen) - ställer in svarets innehållslängd
  18. Void setLocale (Locale lcl) - ställer in svarstypens språktyp
  19. Void setStatus (intsc) - ställer in statuskoden för svaret

Exempel:

I det här exemplet täcker vi olika metoder getLocale, flushbuffer, getWriter, get ContentType, setIntHeader.

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

Guru-svar

<%Lokal lcl = respons.getLocale ();out.println ("Lokal är: + lcl + "\ n");response.flushBuffer ();PrintWriter-utgång = respons.getWriter ();output.println ("Detta är från författarobjekt");Strängtyp = respons.getContentType ();out.println ("Innehållstypen: + typ + "\ n");// Ställ in uppdatering, autoladdningstid som 5 sekunderresponse.setIntHeader ("Uppdatera", 5);// Få aktuell tidDatum dt = nytt datum ();out.println ("Dagens datum är: + dt.toString () + "\ n");%>

Förklaring av koden:

Kodrad 13: Med hjälp av svarobjekt får vi språkobjekt för denna JSP-session

Kodrad 15: Med hjälp av svarobjekt används flushbuffer för att tvinga buffertinnehållet till klienten

Kodrad 16: Med hjälp av svarobjekt får vi författarobjekt som får utdata i utflödet

Kod Line18: Med hjälp av svarsobjekt får vi innehållstyp, dvs MIME-typ av svarsobjekt

Kodrad 21: Med hjälp av svarobjekt används den för att automatiskt ladda var 5: e sekund, eftersom 5 är inställd som den andra parametern

När du kör koden ovan får du följande utdata:

Produktion:

  • Här får vi utdata eftersom detta kommer från författarobjekt från getWriter, vilket ger oss objekt och vi kan mata ut i utflödet.
  • Vi får platsen som en_us och innehållstyp som text / html
  • Vi får teckenuppsättning som ISO 8859
  • Dagens datum som aktuellt datum.

JSP HTTP-statuskoder

  • När begäran behandlas genereras svaret. Svarstatusraden består av HTTP-version, en statuskod och ett associerat meddelande.
  • Meddelandet är direkt associerat med statuskoden och HTTP-versionen och det bestäms av servern.
  • Som standard är 200 inställt som en statuskod i JSP, så vi behöver inte ställa in det uttryckligen.
  • Vi kan ställa in som response.setStatus () -metoden

Koderna faller i följande 5 kategorier:

  • 100-199 - Här indikerar klienten att den ska svara med någon åtgärd
  • 200-299 - Det betyder att begäran lyckas
  • 300-399 - De används för filer som har flyttats och innehåller vanligtvis en platsrubrik som anger ny adress
  • 400-499 - Indikerar fel från klienten
  • 500-599 - Indikerar fel från servern

Några av de vanliga statuskoderna är nedan:

  • 200 - Indikerar att allt är bra
  • 301 - Den har flyttat permanent
  • 304 - Ändrades inte sedan senaste ändring
  • 400 Dålig Förfrågan
  • 404 Ej Hittad
  • 405 - Metoden hittades inte
  • 500 - Internt serverfel
  • 503 Tjänst Otillgänglig
  • 505 - HTTP-version stöds inte

Några av dess metoder listas nedan:

  1. Public void setStatus (intstatusCode)

    Den ställer in statuskoden beroende på vad vi vill ställa in på den JSP-sidan. Detta ger oss meddelandet om statuskoden som har ställts in

  2. Public void sendRedirect (String URL)

    Det genererar 302 svar tillsammans med platshuvudet som ger URL till det nya dokumentet

  3. Public void sendError (intcode, Stringmsg)

    Den skickar statuskoden tillsammans med kortmeddelandet och den formateras i HTML-dokumentet.

Exempel:

I det här exemplet skickar vi fel till JSP-sidan uttryckligen.

<% @ sida språk = "java" contentType = "text / html; charset = ISO-8859-1" pageEncoding = "ISO-8859-1"%> Guru Status Code <% response.sendError (404, "Guru-sidan hittades inte"); %>

Förklaring av koden:

Kodrad 10: Med hjälp av svarobjekt skickar vi felet till en sida med två parametrar.

  1. Statuskod - Det kan vara något av ovanstående. I det här fallet har vi beskrivit som 404
  2. Meddelande - Det kan vara vilket meddelande som helst som vi vill visa felet

Om du kör ovanstående kod får du följande utdata:

Produktion:

Här får vi felkod som 404, som skickades från koden och visar också "Guru Page not found" -meddelandet sett i utdata.

Sammanfattning:

  • I den här artikeln har vi lärt oss om klientförfrågan och serversvar om hur begäran fångas upp och hur svaren hanteras.
  • Vi har också lärt oss om HTTP-statuskoder för att visa felkoder eller framgångskoder för en viss fil.

Intressanta artiklar...