JSP-klientanmodning, serversvar og amp; HTTP-statuskoder

Indholdsfortegnelse:

Anonim

JSP-handlinger, der bruger konstruktioner i XML-syntaks til at kontrollere servletmotorens opførsel. Vi lærer mere detaljeret om forskellige JSP-handlingselementer som klientanmodning, serverrespons, HTTP-statuskoder.

I denne vejledning lærer du-

  • JSP-klientanmodning
  • JSP-serverrespons
  • JSP HTTP-statuskoder

JSP-klientanmodning

  • Når websiden anmodes om, sender den information til webserveren i HTTP-headeren.
  • Vi kan bruge disse oplysninger ved hjælp af et HTTPServletRequest-objekt.
  • Oplysninger, der sendes af browseren, gemmes i anmodningsoverskriften på HTTP-anmodningen.
  • Vi bruger forskellige overskrifter til at sende oplysninger til anmodningsobjektet.

Forskellige overskrifter er beskrevet nedenfor:

Header Beskrivelse Eksempel
Acceptere Det specificerer MIME-typer, som browser eller andre klienter kan håndtere Billede / png eller billede / jpeg.webp
Accepter-tegnsæt Det bruger tegnsættet, der bruges af browseren til at vise oplysningerne ISO-8859-1
Accept - kodning Det specificerer type kodning, der håndteres af browseren Gzip eller komprimér
Accept-sprog Det specificerer klientens specificerede sprog En, en_us
Bemyndigelse Overskrift, der bruges af klienter, når de prøver at få adgang til adgangskodebeskyttede websider
Forbindelse Det indikerer, om klienten kan håndtere vedvarende HTTP-forbindelser (browseren kan hente flere filer) Holde i live
Indholdslængde Gælder for at sende anmodninger. Det giver størrelse på postdata på bytes
Cookie Returnerer cookie til server (dem, der tidligere blev sendt til browseren)
Vært Angiver værten og porten for den oprindelige URL
Hvis ændret siden Det angiver, at det kun kræver en side, hvis det er blevet ændret eller ændret
Hvis ikke ændret siden Det indikerer, at det kun kræver en side, hvis den ikke er blevet ændret eller ændret
Henvisning Angiver URL for den henvisende URL-side
Brugeragent Identificerer browser- eller klientforespørgsel

Følgende metoder bruges til at læse HTTP-overskriften på JSP-siden:

  1. Cookie [] getCookies () - returnerer en matrix, der indeholder cookieobjekter , som klienten har sendt
  2. Enumeration getAttributeNames () - indeholder enumeration af navne på attributter til anmodning
  3. Enumeration getHeaderNames () - indeholder enumeration af headernavne .
  4. Enumeration getParameterNames () - indeholder enumeration af at få parameternavne i anmodningen.
  5. HttpSessiongetSession () - returnerer den aktuelle session, der er knyttet til anmodningen, eller hvis den ikke har en session, opretter den en ny.
  6. Locale getLocale () - returnerer det foretrukne land, som klienten accepterer indhold i. Det er tildelt svaret. Som standard er værdien serverens standardsprog.
  7. Objekt getAttribute (strengnavn) - returnerer værdien af ​​navngivet attribut som et objekt.
  8. ServletInputStreamgetInputStream () - henter en anmodning som binære data.
  9. String getAuthType () - returnerer navnet på godkendelsesplanen for at beskytte servlet
  10. String getCharacterEncoding () - returnerer navnet på den tegnkodning, der bruges i selve anmodningen.
  11. String getContentType () - returnerer MIME-typen af ​​anmodningen.
  12. String getContextPath () - returnerer den del af anmodningen, URI angiver kontekststien til URI
  13. String getHeader (String name) - returnerer anmodningsoverskriften som en streng
  14. String getMethod () - returnerer navnet på HTTP-metoden som GET, POST
  15. String getParameter (String name) - returnerer parameteren for anmodningen som en streng.
  16. String getPathInfo () - returnerer stieninformation tilknyttet URL'en
  17. String getQueryString () - returnerer forespørgselsstrengen, der er knyttet til anmodnings-URL'en
  18. String getServletPath () - returnerer den del af URL'erne i anmodningen, der kalder JSP
  19. Streng [] getParameterValues ​​(strengnavn) - returnerer arrayet med strengobjekter, der indeholder de værdier, som anmodningsparameteren har

Eksempel:

I eksemplet nedenfor bruger vi forskellige metoder ved hjælp af anmodningsobjekt

<% @ sidesprog = "java" contentType = "text / html; charset = ISO-8859-1" pageEncoding = "ISO-8859-1"%><% @ side import = "java.io. * java.util. *"%> Klientanmodning Guru JSP 

Klientanmodning Guru JSP

<%HttpSession gurusession = request.getSession ();out.print (" ");Lokal gurulocale = request.getLocale ();out.print (" ");Strengsti = anmodning.getPathInfo ();out.print (" ");Streng lpath = request.get ();out.print (" ");String servername = request.getServerName ();out.print (" ");int portnavn = request.getServerPort ();out.print (" ");Enumeration hnames = request.getHeaderNames ();while (hnames.hasMoreElements ()) {String paramName = (String) hnames.nextElement ();out.print (" ");Streng paramValue = request.getHeader (paramName);out.println (" ");}%>

Forklaring af koden:

Kodelinje 17: Ved hjælp af anmodningsobjekt får vi sessionsobjektet for den pågældende session, og vi får objektværdien for den pågældende session

Kodelinje 19: Brug af anmodningsobjekt får vi landestandard for den pågældende session i.een_US landestandard for den JSP.

Kodelinje 21: Ved hjælp af anmodningsobjekt får vi stiinfo til den JSP. I dette tilfælde er den nul, da der ikke er nogen sti til URL nævnt.

Kodelinje 23: Ved at bruge anmodningsobjekt får vi kontekststi, dvs. rodsti

Kodelinje 25: Ved hjælp af anmodningsobjekt får vi servernavnet.

Kodelinje 27: Ved hjælp af anmodningsobjekt får vi serverport.

Kodelinje 29-35: Ved hjælp af anmodningsobjekt får vi headernavne, der kommer ud som en optælling, og derfor får vi alle headerværdier i headernavne.

I dette får vi alle headerværdier som en cookie, vært, forbindelse, accepter sprog, accepter kodning.

Når du udfører ovenstående kode, får du følgende output:

Output :

Vi får en række værdier som sessionsnavn, lokalnavn, stienavn, servernavn, portnavn, vært, kontekststi og alle overskriftsværdierne for den JSP.

JSP-serverrespons

  • Når en anmodning behandles, og derefter genereres svaret fra webserveren. Den består af en statuslinje, svaroverskrifter, en tom linje og et dokument.
  • Det er genstand for HTTPServletResponseclass, som er et responsobjekt.
  • Statuslinjen er en version af HTML.

Svaroverskrifter er nævnt nedenfor:

guru header guru header Værdi (r)
Sessionsnavn er " + gurusession + "
Sprognavn er " + gurulocale + "
Stienavn er " + sti + "
Kontekststi er " + lipath + "
Servernavn er " + servernavn + "
Serverport er " + portnavn + "
" + paramnavn + "" + paramValue + "
Header Beskrivelse
Give lov til Det specificerer de anmodningsmetoder som GET, POST, som serveren anmoder om
Cache-kontrol Svardokumentet kan cachelagres. Det kan være offentligt, privat og ikke cache. Ingen cache angiver, at dokumentet ikke skal cachelagres
Forbindelse Den instruerer, om browseren skal bruge gemte HTTP-forbindelser eller ej. Luk værdi repræsenterer, at browseren ikke skal bruge vedvarende i HTTPConnections og "holde-i live" betyder at bruge vedvarende forbindelser
Indhold-disposition At spørge brugeren, om svaret skal gemmes på disken eller ej
Indholdskodning Siden skal kodes under transmission
Indholdslængde Antal bytes i svaret
Indholdstype Det specificerer MIME-typen af ​​svar
Udløber Angiver indtil hvornår indholdet skal betragtes som forældet og ikke bør cachelagres
Sidst ændret Det angiver, hvornår dokumentet sidst blev ændret
Beliggenhed Det skal inkluderes i alle svar, der har statuskode, har 300 som statuskode
Opdater Det specificerer, hvordan man finder den opdaterede side.
Prøv igen Det kan bruges med 503-svar for at fortælle klienten, hvor hurtigt den kan gentage anmodningen
Set-cookie Angiver den cookie, der er knyttet til siden

Følgende er metoderne ved hjælp af responsobjekt:

  1. String encodeRedirectURL (String URL) - koder URL'en i redirectURL-metoden.
  2. String encodeURL (String URL) - koder URL'en ved at inkludere session-id.
  3. Boolean containHeader (strengnavn) - den indeholder en header i JSP eller ej.
  4. Boolean isCommited () - svar er begået eller ej.
  5. Void addCookie (Cookie cookie) - tilføjer cookie til svaret
  6. Void addDateHeader (strengnavn, strengværdi) - tilføjer svarets overskriftsdato navn og værdi
  7. Void addHeader (strengnavn, strengværdi) - tilføjer svarhoved med navn og værdi
  8. Void addIntHeader (strengnavn, int-værdi) - tilføjer svarhoved med navn og heltal
  9. Void flushBuffer () - tvinger indhold i bufferen til output til klienten.
  10. Void reset () - rydder data i bufferen.
  11. Void resetBuffer - rydder indholdsbufferen i svaret uden at rydde statuskoder.
  12. Void sendError (intsc, Stringmsg) - sender et fejlsvar til klienten ved hjælp af statuskode.
  13. Void sendRedirect (strengplacering) - sender et midlertidigt omdirigeringssvar til klienten.
  14. Void setBufferSize (int-størrelse) - indstiller kroppens bufferstørrelse
  15. Void setCharacterEncoding (String charset) - indstiller tegnkodning
  16. Void setContentType (strengtype) - indstiller svarstypens indholdstype
  17. Void setContentLength (intlen) - indstiller reaktionens indholdslængde
  18. Void setLocale (Locale lcl) - indstiller landets type for svaret
  19. Void setStatus (intsc) - indstiller statuskoden for svaret

Eksempel:

I dette eksempel dækker vi forskellige metoder getLocale, flushbuffer, getWriter, get ContentType, setIntHeader.

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

Guru-svar

<%Lokal lcl = respons.getLocale ();out.println ("Lokalitet er: + lcl + "\ n");respons.flushBuffer ();PrintWriter output = respons.getWriter ();output.println ("Dette er fra forfatterobjekt");Strengtype = respons.getContentType ();out.println ("Indholdstypen: + type + "\ n");// Indstil opdatering, autoladetid som 5 sekunderrespons.setIntHeader ("Opdater", 5);// Få aktuel tidDato dt = ny dato ();out.println ("Dagens dag er: + dt.toString () + "\ n");%>

Forklaring af koden:

Kodelinje 13: Ved hjælp af svarobjekt får vi lokalobjekt til denne JSP-session

Kodelinje 15: Ved hjælp af responsobjekt bruges flushbuffer til at tvinge bufferindholdet til klienten

Kodelinje 16: Ved hjælp af responsobjekt får vi forfatterobjekt, der får output i outputstrømmen

Kode Line18: Ved hjælp af responsobjekt får vi indholdstype, dvs. MIME-type responsobjekt

Kodelinje 21: Ved hjælp af responsobjekt bruges den til automatisk indlæsning hvert 5. sekund, da 5 er indstillet som den anden parameter

Når du udfører ovenstående kode, får du følgende output:

Produktion:

  • Her får vi output, da dette er fra forfatterobjekt fra getWriter, som giver os objekt, og vi kan output i outputstrømmen.
  • Vi får lokaliteten som en_us og indholdstype som tekst / html
  • Vi får tegnsæt som ISO 8859
  • Dagens dato som den aktuelle dato.

JSP HTTP-statuskoder

  • Når anmodningen behandles, genereres svaret. Svarstatuslinjen består af HTTP-version, en statuskode og en tilknyttet besked.
  • Meddelelsen er direkte forbundet med statuskoden og HTTP-versionen, og den bestemmes af serveren.
  • Som standard er 200 indstillet som en statuskode i JSP, så vi behøver ikke at angive eksplicit.
  • Vi kan indstille som respons.setStatus () -metode

Koderne falder i følgende 5 kategorier:

  • 100-199 - Her angiver klienten, at den skal svare med en eller anden handling
  • 200-299 - Det betyder, at anmodningen er vellykket
  • 300-399 - De bruges til filer, der er blevet flyttet og inkluderer normalt en placeringsoverskrift, der angiver ny adresse
  • 400-499 - Angiver fejl fra klienten
  • 500-599 - Angiver fejl fra serveren

Nogle af de almindelige statuskoder er nedenfor:

  • 200 - Angiver, at alt er i orden
  • 301 - Det er flyttet permanent
  • 304 - Ikke ændret siden sidste ændring
  • 400 - Dårlig anmodning
  • 404 Ikke fundet
  • 405 - Metoden blev ikke fundet
  • 500 - Intern serverfejl
  • 503 Service ikke tilgængelig
  • 505 - HTTP-version understøttes ikke

Nogle af dens metoder er anført nedenfor:

  1. Offentligt ugyldigt setStatus (intstatusCode)

    Det indstiller statuskoden, alt efter hvad vi vil indstille på den JSP-side. Dette giver os beskeden om statuskoden, der er indstillet

  2. Offentlig ugyldig sendRedirect (streng URL)

    Det genererer 302 svar sammen med placeringsoverskriften, der giver URL til det nye dokument

  3. Offentlig ugyldig sendError (intcode, Stringmsg)

    Den sender statuskoden sammen med den korte besked, og den formateres i HTML-dokumentet.

Eksempel:

I dette eksempel sender vi eksplicit en fejl til JSP-siden.

<% @ sidesprog = "java" contentType = "text / html; charset = ISO-8859-1" pageEncoding = "ISO-8859-1"%> Guru-statuskode <% respons.sendError (404, "Guru-siden blev ikke fundet"); %>

Forklaring af koden:

Kodelinje 10: Ved hjælp af svarobjekt sender vi fejlen til en side med to parametre.

  1. Statuskode - Det kan være et af ovenstående. I dette tilfælde har vi beskrevet som 404
  2. Besked - Det kan være en hvilken som helst specifik besked, som vi vil vise fejlen

Hvis du udfører ovenstående kode, får du følgende output:

Produktion:

Her får vi fejlkode som 404, som blev sendt fra koden og også viser "Guru Page not found" -meddelelsen set i output.

Resumé:

  • I denne artikel har vi lært om klientanmodning og serverrespons om, hvordan anmodningen opfanges, og hvordan svarene manipuleres.
  • Vi har også lært om HTTP-statuskoder for at vise fejlkoder eller succeskoder for en bestemt fil.