Zahteva odjemalca JSP, odziv strežnika & Kode stanja HTTP

Kazalo:

Anonim

Dejanja JSP, ki uporabljajo konstrukte v sintaksi XML za nadzor vedenja mehanizma strežniškega programčka. Podrobneje bomo izvedeli o različnih elementih JSP Action, kot so zahteve odjemalca, odziv strežnika, kode stanja HTTP.

V tej vadnici boste izvedeli-

  • Zahteva odjemalca JSP
  • Odgovor strežnika JSP
  • Kode stanja JSP HTTP

Zahteva odjemalca JSP

  • Ko se zahteva spletna stran, pošlje informacije spletnemu strežniku v glavi HTTP.
  • Te podatke lahko uporabimo z uporabo predmeta HTTPServletRequest.
  • Informacije, ki jih pošlje brskalnik, se shranijo v glavo zahteve HTTP zahteve.
  • Za pošiljanje informacij predmetu zahteve uporabljamo različne glave.

Spodaj so opisani različni naslovi:

Glava Opis Primer
Sprejmi Določa vrste MIME, ki jih brskalnik ali drugi odjemalci lahko obvladajo Slika / png ali slika / jpeg.webp
Sprejem-nabor znakov Za prikaz informacij uporablja nabor znakov, ki ga uporablja brskalnik ISO-8859-1
Sprejmi - kodiranje Določa vrsto kodiranja, ki ga obdeluje brskalnik Gzip ali stiskanje
Sprejmi jezik Določa jezik, ki ga določijo odjemalci En, en_us
Pooblastilo Glava, ki jo stranke uporabljajo pri poskusu dostopa do spletnih strani, zaščitenih z geslom
Povezava Označuje, ali lahko odjemalec obvlada trajne povezave HTTP (brskalnik lahko pridobi več datotek) Obdržati pri življenju
Dolžina vsebine Velja za zahteve za objavo. Podaja velikost postnih podatkov bajtov
Piškotek Vrne piškotek strežniku (tiste, ki so bili prej poslani v brskalnik)
Voditelj Določa gostitelja in vrata izvirnega URL-ja
Če je spremenjeno od Označuje, da zahteva samo stran, če je bila spremenjena ali spremenjena
Če od takrat ni spremenjen Označuje, da zahteva stran samo, če ni bila spremenjena ali spremenjena
Napotitelj Označuje URL referenčne strani URL
Uporabniški agent Opredeli brskalnik ali odjemalca, ki odda zahtevo

Za branje glave HTTP na strani JSP se uporabljajo naslednji načini:

  1. Piškotek [] getCookies () - vrne polje, ki vsebuje predmete piškotkov, ki jih je poslal odjemalec
  2. Enumeration getAttributeNames () - vsebuje naštevanje imen atributov za zahtevo
  3. Enumeration getHeaderNames () - vsebuje naštevanje imen glave.
  4. Enumeration getParameterNames () - vsebuje naštevanje pridobivanja imen parametrov v zahtevi.
  5. HttpSessiongetSession () - vrne trenutno sejo, povezano z zahtevo, ali če seje nima, bo ustvaril novo.
  6. Locale getLocale () - vrne prednostni jezik, v katerem bo odjemalec sprejel vsebino. Dodeljena je bila odzivu. Privzeto bo vrednost privzeta področna nastavitev strežnika.
  7. Object getAttribute (String name) - vrne vrednost imenovanega atributa kot objekt.
  8. ServletInputStreamgetInputStream () - pridobi telo zahteve kot binarne podatke.
  9. String getAuthType () - vrne ime avtentikacijske sheme za zaščito strežniškega programčka
  10. String getCharacterEncoding () - vrne ime kodiranja znakov, uporabljenega v telesu zahteve.
  11. String getContentType () - vrne MIME vrsto telesa zahteve.
  12. String getContextPath () - vrne del URI zahteve označuje kontekstno pot URI
  13. String getHeader (ime niza) - vrne glavo zahteve kot niz
  14. String getMethod () - vrne ime metode HTTP, na primer GET, POST
  15. String getParameter (ime niza) - vrne parameter zahteve kot niz.
  16. String getPathInfo () - vrne informacije o poti, povezane z URL-jem
  17. String getQueryString () - vrne niz poizvedbe, ki je povezan z URL-jem zahteve
  18. String getServletPath () - vrne del URL-jev zahteve, ki pokliče JSP
  19. String [] getParameterValues ​​(ime niza) - vrne niz nizovnih predmetov, ki vsebujejo vrednosti, ki jih ima parameter zahteve

Primer:

V spodnjem primeru uporabljamo različne metode z uporabo predmeta zahteve

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1" pageEncoding = "ISO-8859-1"%><% @ page import = "java.io. * java.util. *"%> Zahteva odjemalca Guru JSP 

Guru JSP z zahtevo stranke

<%HttpSession gurusession = request.getSession ();out.print (" ");Locale gurulocale = request.getLocale ();out.print (" ");Pot niza = request.getPathInfo ();out.print (" ");Niz lpath = request.get ();out.print (" ");String ime strežnika = request.getServerName ();out.print (" ");int portname = request.getServerPort ();out.print (" ");Število hnames = request.getHeaderNames ();while (hnames.hasMoreElements ()) {Niz paramName = (String) hnames.nextElement ();out.print (" ");Niz paramValue = request.getHeader (paramName);out.println (" ");}%>

Pojasnilo kode:

Kodijska vrstica 17: Z objektom zahteve dobimo objekt seje te določene seje in dobimo vrednost predmeta te seje

Vrstica kode 19: Z uporabo predmeta zahteve dobimo področne nastavitve te posebne seje i.een_US področne nastavitve za ta JSP.

Koda 21: Z uporabo predmeta zahteve dobimo informacije o poti za ta JSP. V tem primeru je ničen, saj ni omenjene poti za URL.

Vrstica kode 23: Z uporabo predmeta zahteve dobimo kontekstno pot, tj. Korensko pot

Vrstica kode 25: Z uporabo predmeta zahteve dobimo ime strežnika.

Kodijska vrstica 27: Z uporabo predmeta zahteve dobimo strežniška vrata.

Vrstica kode 29-35: Z uporabo predmeta zahteve dobimo imena glav, ki se prikažejo kot oštevilčenje, in tako dobimo vse vrednosti glav v imenih glav.

V tem dobimo vse vrednosti glave kot piškotek, gostitelj, povezava, sprejmemo jezik in sprejmemo kodiranje.

Ko zaženete zgornjo kodo, dobite naslednji izhod:

Izhod :

Pridobimo vrsto vrednosti, kot so ime seje, ime področne nastavitve, ime poti, ime strežnika, ime vrat, gostitelja, pot konteksta in vse vrednosti glave tega JSP.

Odgovor strežnika JSP

  • Ko se zahteva obdela in nato odgovor ustvari s spletnega strežnika. Sestavljen je iz vrstice stanja, glav odzivov, prazne vrstice in dokumenta.
  • Je objekt HTTPServletResponseclass, ki je odzivni objekt.
  • Vrstica stanja je različica HTML-ja.

Glave odzivov so navedene spodaj:

glava guruja glava guruja Vrednost / vrednosti
Ime seje je " + gurusession + "
Ime jezika je " + gurulocale + "
Ime poti je " + pot + "
Kontekstna pot je " + lipath + "
Ime strežnika je " + ime strežnika + "
Strežniška vrata so " + ime pristanišča + "
" + paramName + "" + paramValue + "
Glava Opis
Dovoli Določa metode zahtev, kot so GET, POST, ki jih zahteva strežnik
Nadzor predpomnilnika Odzivni dokument je mogoče predpomniti. Lahko je javni, zasebni in brez predpomnilnika. Noben predpomnilnik ne določa, da se dokument ne sme predpomniti
Povezava Navodi, ali naj brskalnik uporablja shranjene HTTPConnections ali ne. Vrednost zapiranja pomeni, da brskalnik v HTTPConnections ne sme uporabljati trajnega, "ohraniti živ" pomeni uporabo trajnih povezav
Razporeditev vsebine Vprašati uporabnika, ali naj odziv shrani na disk ali ne
Kodiranje vsebine Stran mora biti med prenosom kodirana
Dolžina vsebine Število bajtov v odgovoru
Vrsta vsebine Določa vrsto odziva MIME
Poteče Določa, do kdaj je treba vsebino šteti za zastarelo in je ne bi smeli shraniti v predpomnilnik
Zadnja sprememba Označuje, kdaj je bil dokument nazadnje spremenjen
Lokacija Vključiti ga je treba med vse odgovore, ki imajo statusno kodo in ima 300 statusno kodo
Osveži Določa, kako najti posodobljeno stran.
Ponovni poskus Lahko se uporablja z odzivom 503, da stranki pove, kako hitro lahko ponovi zahtevo
Set-piškotek Določa piškotek, povezan s stranjo

Sledijo metode, ki uporabljajo odzivni objekt:

  1. String encodeRedirectURL (String URL) - kodira URL v metodi redirectURL.
  2. String encodeURL (String URL) - kodira URL z vključitvijo ID-ja seje.
  3. Boolean containsHeader (ime niza) - vsebuje glavo v JSP ali ne.
  4. Logična isCommited () - odgovor je bil odobren ali ne.
  5. Void addCookie (piškotek piškotka) - doda piškotek odgovoru
  6. Void addDateHeader (ime niza, vrednost niza) - doda ime in vrednost datuma glave odziva
  7. Void addHeader (ime niza, vrednost niza) - doda glavo odziva z imenom in vrednostjo
  8. Void addIntHeader (ime niza, vrednost int) - doda glavo odziva z imenom in celoštevilsko vrednostjo
  9. Void flushBuffer () - prisili vsebino v medpomnilniku na izhod za odjemalca.
  10. Ponastavitev praznine () - izbriše podatke v medpomnilniku.
  11. Void resetBuffer - počisti medpomnilnik vsebine v odgovoru brez brisanja kod stanja.
  12. Void sendError (intsc, Stringmsg) - pošlje odziv na napako odjemalcu s kodo stanja.
  13. Void sendRedirect (lokacija niza) - odjemalcu pošlje začasni odziv preusmeritve.
  14. Void setBufferSize (int size) - nastavi velikost medpomnilnika telesa
  15. Void setCharacterEncoding (niz znakov) - nastavi kodiranje znakov
  16. Void setContentType (vrsta niza) - nastavi vrsto vsebine odgovora
  17. Void setContentLength (intlen) - nastavi vsebinsko dolžino odziva
  18. Void setLocale (Locale lcl) - nastavi lokalno vrsto odziva
  19. Void setStatus (intsc) - nastavi kodo stanja odziva

Primer:

V tem primeru pokrivamo različne metode 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. *"%> Guru Action Response 

Gurujev odgovor

<%Locale lcl = response.getLocale ();out.println ("Področje je: + lcl + "\ n");response.flushBuffer ();PrintWriter output = response.getWriter ();output.println ("To je iz predmeta zapisovalnika");Vrsta niza = response.getContentType ();out.println ("Vrsta vsebine: + vrsta + "\ n");// Nastavite osvežitev in čas samodejnega nalaganja na 5 sekundresponse.setIntHeader ("Osveži", 5);// Pridobite trenutni časDatum dt = nov datum ();out.println ("Današnji datum je: + dt.toString () + "\ n");%>

Pojasnilo kode:

Vrstica kode 13: Z uporabo odzivnega predmeta dobimo področni objekt te seje JSP

Vrstica kode 15: Z odzivnim objektom se flushbuffer uporablja za vsiljevanje vsebine medpomnilnika v odjemalca

Vrstica kode 16: Z odzivnim objektom dobimo objekt zapisovalnika, ki dobi izhod v izhodnem toku

Vrstica kode18: Z uporabo odzivnega predmeta dobimo vrsto vsebine, tj. Odzivni objekt MIME

Koda 21: Uporaba odzivnega predmeta se uporablja za samodejno nalaganje vsakih 5 sekund, saj je 5 nastavljeno kot drugi parameter

Ko zaženete zgornjo kodo, dobite naslednji izhod:

Izhod:

  • Tu dobimo izhod, ker je to iz predmeta zapisovalnika iz getWriter, ki nam da objekt in lahko izpišemo v izhodnem toku.
  • Področne nastavitve dobimo kot en_us in vrsto vsebine kot text / html
  • Znak dobimo kot ISO 8859
  • Današnji datum kot trenutni datum.

Kode stanja JSP HTTP

  • Ko je zahteva obdelana, se ustvari odgovor. Vrstica stanja odziva je sestavljena iz različice HTTP, kode stanja in s tem povezanega sporočila.
  • Sporočilo je neposredno povezano s kodo stanja in različico HTTP, določi pa ga strežnik.
  • Privzeto je 200 nastavljena kot koda stanja v JSP, zato nam ni treba izrecno nastaviti.
  • Nastavimo lahko kot metodo response.setStatus ()

Kode spadajo v naslednjih 5 kategorij:

  • 100-199 - Tu odjemalec označi, da se mora odzvati z nekaj dejanja
  • 200-299 - To pomeni, da je zahteva uspešna
  • 300-399 - Uporabljajo se za datoteke, ki so bile premaknjene, in običajno vključujejo glavo lokacije z novim naslovom
  • 400-499 - Označuje napako stranke
  • 500-599 - Označuje napako strežnika

Nekaj ​​pogostih kod stanja je spodaj:

  • 200 - Označuje, da je vse v redu
  • 301 - Za vedno se je preselil
  • 304 - Od zadnje spremembe ni spremenjen
  • 400 - Slaba zahteva
  • 404 ni najdeno
  • 405 - Metode ni mogoče najti
  • 500 Notranja napaka strežnika
  • 503 - Storitev ni na voljo
  • 505 - različica HTTP ni podprta

Nekatere metode so navedene spodaj:

  1. Javna void setStatus (intstatusCode)

    Nastavi kodo stanja, kar koli želimo nastaviti na tej strani JSP. To nam bo dalo sporočilo statusne kode, ki je bila nastavljena

  2. Javna void sendRedirect (URL niza)

    Ustvari 302 odziva skupaj z glavo lokacije, ki daje URL novega dokumenta

  3. Javna void sendError (intcode, Stringmsg)

    Kodo stanja pošlje skupaj s kratkim sporočilom in je formatirana v dokumentu HTML.

Primer:

V tem primeru napako na stran JSP pošiljamo izrecno.

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1" pageEncoding = "ISO-8859-1"%> Guru statusna koda <% response.sendError (404, "Guru strani ni mogoče najti"); %>

Pojasnilo kode:

Vrstica kode 10: Z odzivnim objektom napako pošljemo na stran z dvema parametroma.

  1. Koda stanja - lahko je katera koli od zgoraj navedenih. V tem primeru smo opisali kot 404
  2. Sporočilo - To je lahko katero koli določeno sporočilo, v katerem želimo prikazati napako

Če izvedete zgornjo kodo, dobite naslednji izhod:

Izhod:

Tu dobimo kodo napake kot 404, ki je bila poslana iz kode in prikazuje tudi sporočilo "Guru Page not found", ki je prikazano v izhodu.

Povzetek:

  • V tem članku smo izvedeli o odjemalski zahtevi in ​​odzivu strežnika o tem, kako je prestrežena zahteva in kako se z odzivi manipulira.
  • Spoznali smo tudi kode stanja HTTP za prikaz kod napak ali kod uspeha za določeno datoteko.