JSP klientforespørsel, serverrespons og amp; HTTP-statuskoder

Innholdsfortegnelse:

Anonim

JSP-handlinger som bruker konstruksjoner i XML-syntaks for å kontrollere oppførselen til servletmotoren. Vi vil lære mer i detalj om ulike JSP-handlingselementer som klientforespørsel, serverrespons, HTTP-statuskoder.

I denne veiledningen vil du lære-

  • JSP klientforespørsel
  • JSP-serverrespons
  • JSP HTTP-statuskoder

JSP klientforespørsel

  • Når websiden blir bedt om, sender den informasjon til webserveren i HTTP-overskriften.
  • Vi kan bruke denne informasjonen ved hjelp av HTTPServletRequest-objekt.
  • Informasjon sendt av nettleseren lagres i forespørselstittelen til HTTP-forespørsel.
  • Vi bruker forskjellige overskrifter for å sende informasjon til forespørselsobjektet.

Forskjellige overskrifter er beskrevet nedenfor:

Overskrift Beskrivelse Eksempel
Aksepterer Den spesifiserer MIME-typer som nettleser eller andre klienter kan håndtere Bilde / png eller bilde / jpeg.webp
Godta-charset Den bruker tegnsettet som nettleseren bruker for å vise informasjonen ISO-8859-1
Aksept - koding Den spesifiserer type koding som håndteres av nettleseren Gzip eller komprimere
Godta-språk Den spesifiserer klientspesifiserte språk En, en_us
Autorisasjon Overskrift som brukes av klienter når de prøver å få tilgang til passordbeskyttede websider
Forbindelse Det indikerer om klienten kan håndtere vedvarende HTTP-tilkoblinger (nettleseren kan hente flere filer) Holde i live
Innholdslengde Gjelder for å legge inn forespørsler. Det gir størrelsen på innleggsdata for byte
Kjeks Returnerer informasjonskapsel til server (de som tidligere ble sendt til nettleseren)
Vert Spesifiserer verten og porten til den opprinnelige URL-en
Hvis endret siden Det indikerer at den bare krever en side hvis den er endret eller endret
Hvis ikke modifisert siden Det indikerer at den bare krever en side hvis den ikke er endret eller endret
Henvisning Indikerer URL for henvisende URL-side
Bruker agent Identifiserer forespørsel om nettleser eller klient

Følgende metoder brukes til å lese HTTP-overskriften på JSP-siden:

  1. Cookie [] getCookies () - returnerer en matrise som inneholder cookie-objekter som klienten har sendt
  2. Enumeration getAttributeNames () - inneholder nummerering av navn på attributter for forespørsel
  3. Enumeration getHeaderNames () - inneholder oppregning av navn på header.
  4. Enumeration getParameterNames () - inneholder oppregning av å få parameternavn i forespørselen.
  5. HttpSessiongetSession () - returnerer gjeldende økt tilknyttet forespørselen, eller hvis den ikke har en økt, vil den opprette en ny.
  6. Locale getLocale () - returnerer det foretrukne stedet som klienten vil akseptere innhold i. Det er tilordnet svaret. Som standard vil verdien være standard lokalitet for serveren.
  7. Object getAttribute (strengnavn) - returnerer verdien av navngitt attributt som et objekt.
  8. ServletInputStreamgetInputStream () - henter ut forespørsel som binære data.
  9. String getAuthType () - returnerer navnet på godkjenningsskjemaet for å beskytte servlet
  10. String getCharacterEncoding () - returnerer navnet på tegnkodingen som brukes i forespørselens brødtekst.
  11. String getContentType () - returnerer MIME-typen kropp for forespørselen.
  12. Streng getContextPath () - returnerer den delen av forespørselen URI indikerer kontekstbane for URI
  13. String getHeader ( strengnavn ) - returnerer forespørselstittelen som en streng
  14. String getMethod () - returnerer navnet på HTTP-metoden som GET, POST
  15. String getParameter (strengnavn) - returnerer forespørselens parameter som en streng.
  16. String getPathInfo () - returnerer baneinformasjonen som er knyttet til URL-en
  17. String getQueryString () - returnerer spørringsstrengen som er knyttet til forespørselens URL
  18. String getServletPath () - returnerer den delen av URL- ene til forespørselen som kaller JSP
  19. Streng [] getParameterValues ​​(strengnavn) - returnerer matrisen med strengobjekter som inneholder verdiene som parameteren for forespørsel har

Eksempel:

I eksemplet nedenfor bruker vi forskjellige metoder ved hjelp av forespørselsobjekt

<% @ sidespråk = "java" contentType = "text / html; charset = ISO-8859-1" pageEncoding = "ISO-8859-1"%><% @ side import = "java.io. * java.util. *"%> Klientforespørsel Guru JSP 

Klientforespørsel Guru JSP

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

Forklaring av koden:

Kodelinje 17: Ved å bruke forespørselsobjekt får vi øktobjektet til den aktuelle økten, og vi får objektverdien til den økten

Kodelinje 19: Ved å bruke forespørselsobjekt får vi lokalitet for den aktuelle økten i.een_US-lokaliteten for den JSP.

Kodelinje 21: Ved å bruke forespørselsobjekt får vi baneinformasjon for den JSP. I dette tilfellet er det null, da det ikke er noen sti for URL nevnt.

Kodelinje 23: Ved å bruke forespørselsobjekt får vi kontekststi, dvs. rotbane

Kodelinje 25: Ved å bruke forespørselsobjekt får vi servernavnet.

Kodelinje 27: Ved å bruke forespørselobjekt får vi serverport.

Kodelinje 29-35: Ved å bruke forespørselsobjekt får vi overskriftsnavn som kommer ut som oppregning, og dermed får vi alle toppverdier i overskriftsnavnene.

I dette får vi alle topptekstverdier som informasjonskapsel, vert, tilkobling, godta språk, godta koding.

Når du utfører koden ovenfor, får du følgende utgang:

Utgang :

Vi får en rekke verdier som øktnavn, stednavn, banenavn, servernavn, portnavn, vert, kontekstbane og alle toppverdiene til den JSP.

JSP-serverrespons

  • Når en forespørsel behandles og deretter genereres svaret fra webserveren. Den består av en statuslinje, svaroverskrifter, en tom linje og et dokument.
  • Det er objektet til HTTPServletResponseclass, som er et responsobjekt.
  • Statuslinjen er en versjon av HTML.

Svaroverskrifter er nevnt nedenfor:

guru header guru header Verdi (r)
Session Name is " + gurusession + "
Lokalt navn er " + gurulocale + "
Path Name is " + path + "
Kontekstbane er " + lipath + "
Servernavn er " + servernavn + "
Serverport er " + portnavn + "
" + paramName + "" + paramValue + "
Overskrift Beskrivelse
Tillate Den spesifiserer forespørselsmetodene som GET, POST som serveren ber om
Cache-kontroll Svardokumentet kan caches. Det kan være offentlig, privat og ikke cache. Ingen hurtigbuffer angir at dokumentet ikke skal bufres
Forbindelse Den instruerer om nettleseren skal bruke lagrede HTTP-tilkoblinger eller ikke. Lukk verdi representerer at nettleseren ikke skal bruke vedvarende i HTTPConnections og "keep-alive" betyr å bruke vedvarende tilkoblinger
Innhold-disposisjon Å spørre brukeren om svaret skal lagres på disken eller ikke
Innholdskoding Siden må kodes under overføring
Innholdslengde Antall byte i svaret
Innholdstype Den spesifiserer MIME-typen respons
Utløper Spesifiserer til når innholdet skal vurderes utdatert og ikke skal bufres
Sist endret Det indikerer når dokumentet sist ble endret
plassering Den skal inkluderes i alle svarene som har statuskode har 300 som statuskode
Forfriske Den spesifiserer hvordan du finner den oppdaterte siden.
Prøv på nytt Den kan brukes med 503 svar for å fortelle klienten om hvor snart den kan gjenta forespørselen
Sett-informasjonskapsel Spesifiserer informasjonskapselen som er knyttet til siden

Følgende er metodene som bruker responsobjekt:

  1. String encodeRedirectURL (String URL) - koder URL i redirectURL-metoden.
  2. String encodeURL (String URL) - koder URL-en ved å inkludere økt-ID.
  3. Boolsk inneholderHeader (strengnavn) - den inneholder en overskrift i JSP eller ikke.
  4. Boolean isCommited () - respons har blitt begått eller ikke.
  5. Void addCookie (Cookie cookie) - legger til cookie i svaret
  6. Void addDateHeader (strengnavn, strengverdi) - legger til dato og navn på svaroverskrift
  7. Void addHeader (strengnavn, strengverdi) - legger til svarhode med navn og verdi
  8. Void addIntHeader (strengnavn, int-verdi) - legger til svarhode med navn og heltall
  9. Void flushBuffer () - tvinger innhold i bufferen til utgangen til klienten.
  10. Void reset () - sletter data i bufferen.
  11. Void resetBuffer - tømmer innholdsbufferen i responsen uten å fjerne statuskoder.
  12. Void sendError (intsc, Stringmsg) - sender et feilrespons til klienten ved hjelp av statuskode.
  13. Void sendRedirect (strengplassering) - sender et midlertidig viderekoblingsrespons til klienten.
  14. Void setBufferSize (int-størrelse) - angir kroppens bufferstørrelse
  15. Void setCharacterEncoding (String charset) - angir tegnkoding
  16. Void setContentType (strengtype) - angir innholdstypen for svaret
  17. Void setContentLength (intlen) - angir innholdslengden på responsen
  18. Void setLocale (Locale lcl) - angir stedstypen for svaret
  19. Void setStatus (intsc) - angir statuskoden for svaret

Eksempel:

I dette eksemplet dekker vi forskjellige metoder getLocale, flushbuffer, getWriter, get ContentType, setIntHeader.

<% @ sidespråk = "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-utgang = respons.getWriter ();output.println ("Dette er fra forfatterobjekt");Strengtype = respons.getContentType ();out.println ("Innholdstypen: + type + "\ n");// Still oppdatering, autoladingstid til 5 sekunderresponse.setIntHeader ("Refresh", 5);// Få aktuell tidDato dt = ny dato ();out.println ("Dagens dato er: + dt.toString () + "\ n");%>

Forklaring av koden:

Kodelinje 13: Ved å bruke responsobjekt får vi lokalobjekt til denne JSP-økten

Kodelinje 15: Ved å bruke responsobjekt brukes flushbuffer til å tvinge bufferinnholdet til klienten

Kodelinje 16: Ved å bruke responsobjekt får vi forfatterobjekt som får utdata i utgangsstrømmen

Kode Line18: Ved å bruke responsobjekt får vi innholdstype dvs. MIME-type responsobjekt

Kodelinje 21: Ved å bruke responsobjekt brukes den til å automatisk laste inn hvert 5. sekund, da 5 er satt som den andre parameteren

Når du utfører koden ovenfor, får du følgende utgang:

Produksjon:

  • Her får vi utdata da dette er fra forfatterobjekt fra getWriter, som gir oss objekt, og vi kan sende ut i utgangsstrømmen.
  • Vi får lokalitet som en_us og innholdstype som tekst / html
  • Vi får tegnsett som ISO 8859
  • Dagens dato som dagens dato.

JSP HTTP-statuskoder

  • Når forespørselen behandles, genereres svaret. Svarstatuslinjen består av HTTP-versjon, en statuskode og en tilknyttet melding.
  • Meldingen er direkte knyttet til statuskoden og HTTP-versjonen, og den bestemmes av serveren.
  • Som standard er 200 satt som en statuskode i JSP, så vi trenger ikke å angi eksplisitt.
  • Vi kan angi som response.setStatus () -metoden

Kodene faller i følgende 5 kategorier:

  • 100-199 - Her indikerer klienten at den skal svare med noe
  • 200-299 - Det betyr at forespørselen er vellykket
  • 300-399 - De brukes til filer som er flyttet og inkluderer vanligvis en posisjonstittel som indikerer ny adresse
  • 400-499 - Indikerer feil fra klienten
  • 500-599 - Indikerer feil fra serveren

Noen av de vanlige statuskodene er nedenfor:

  • 200 - Angir at alt er bra
  • 301 - Den har flyttet permanent
  • 304 - Ikke endret siden siste endring
  • 400 Ugyldig forespørsel
  • 404 ikke funnet
  • 405 - Metoden ble ikke funnet
  • 500 - Intern serverfeil
  • 503 tjeneste utilgjengelig
  • 505 - HTTP-versjon støttes ikke

Noen av metodene er oppført nedenfor:

  1. Offentlig ugyldig setStatus (intstatusCode)

    Den setter statuskoden avhengig av hva vi vil sette på den JSP-siden. Dette vil gi oss meldingen om statuskoden som er angitt

  2. Offentlig ugyldig sendRedirect (String URL)

    Det genererer 302 respons sammen med plasseringens overskrift som gir URL til det nye dokumentet

  3. Public void sendError (intcode, Stringmsg)

    Den sender statuskoden sammen med kortmeldingen, og den er formatert i HTML-dokumentet.

Eksempel:

I dette eksemplet sender vi feil til JSP-siden eksplisitt.

<% @ sidespråk = "java" contentType = "text / html; charset = ISO-8859-1" pageEncoding = "ISO-8859-1"%> Guru Status Code <% respons.sendError (404, "Guru-siden ble ikke funnet"); %>

Forklaring av koden:

Kodelinje 10: Ved å bruke responsobjekt sender vi feilen til en side med to parametere.

  1. Statuskode - Det kan være noe av det ovennevnte. I dette tilfellet har vi beskrevet som 404
  2. Melding - Det kan være en hvilken som helst spesifikk melding vi vil vise feilen

Hvis du utfører koden ovenfor, får du følgende utdata:

Produksjon:

Her får vi feilkode som 404, som ble sendt fra koden og viser også "Guru Page not found" -meldingen sett i utdataene.

Sammendrag:

  • I denne artikkelen har vi lært om klientforespørsel og serverrespons om hvordan forespørselen blir fanget opp og hvordan svarene blir manipulert.
  • Vi har også lært om HTTP-statuskoder for å vise feilkoder eller suksesskoder for en bestemt fil.