JSP klienditaotlus, serveri vastus ja & HTTP olekukoodid

Lang L: none (table-of-contents):

Anonim

JSP-toimingud, mis kasutavad servlet-mootori käitumise juhtimiseks XML-süntaksis konstruktsioone. Õpime üksikasjalikumalt mitmesuguste JSP-toimingu elementide kohta, näiteks kliendi taotlus, serveri vastus, HTTP olekukoodid.

Selles õpetuses saate teada

  • JSP klienditaotlus
  • JSP-serveri vastus
  • JSP HTTP olekukoodid

JSP klienditaotlus

  • Kui veebileht on taotletud, saadab see HTTP-päises veebiserverile teavet.
  • Saame seda teavet kasutada objekti HTTPServletRequest abil.
  • Brauseri saadetud teave salvestatakse HTTP-päringu päringu päisesse.
  • Teabe saatmiseks päringuobjektile kasutame erinevaid päiseid.

Erinevaid päiseid kirjeldatakse allpool:

Päis Kirjeldus Näide
Nõus See määrab MIME tüübid, mida brauser või muud kliendid saavad käsitseda Pilt / png või pilt / JPEG.webp
Nõustu-tähemärk See kasutab teabe kuvamiseks brauseri kasutatavat märgistikku ISO-8859-1
Nõus - kodeerimine See määrab brauseri poolt hallatava kodeerimise tüübi Gzip või kompress
Nõuskeel See määrab klientide määratud keele En, en_us
Volitamine Päis, mida kliendid kasutavad parooliga kaitstud veebilehtedele pääsemisel
Ühendus See näitab, kas klient saab püsivate HTTP-ühendustega hakkama (brauser saab mitu faili tuua) Elus hoidma
Sisu pikkus Kohaldatakse taotluste postitamiseks. See annab baitide postiandmete suuruse
Küpsis Tagastab küpsise serverisse (need, mis varem brauserisse saadeti)
Peremees Määrab algse URL-i hosti ja pordi
Kui seda on muudetud alates See näitab, et see nõuab ainult lehte, kui seda on muudetud või muudetud
Kui seda pole muudetud See näitab, et see nõuab lehte ainult siis, kui seda pole muudetud või muudetud
Suunaja Näitab viitava URL-i lehe URL-i
Kasutaja agent Tuvastab brauseri või kliendi taotluse

JSP-lehe HTTP-päise lugemiseks kasutatakse järgmisi meetodeid:

  1. Cookie [] getCookies () - tagastab massiivi, mis sisaldab küpsiseobjekte , mille klient on saatnud
  2. Loend getAttributeNames () - sisaldab loendit atribuutide nimedeks
  3. Loendamine getHeaderNames () - sisaldab päise nimede loendit.
  4. Loendamine getParameterNames () - sisaldab loendit parameetrite nimede saamiseks päringusse.
  5. HttpSessiongetSession () - tagastab päringuga seotud praeguse seansi või kui tal pole seanssi, loob see uue.
  6. Lokaat getLocale () - tagastab eelistatud lokaadi, milles klient sisu aktsepteerib. See on määratud vastusele. Vaikimisi on väärtus serveri vaikelokaat.
  7. Object getAttribute (String name) - tagastab objektina nimelise atribuudi väärtuse.
  8. ServletInputStreamgetInputStream () - taastab päringu keha binaarandmetena.
  9. String getAuthType () - tagastab servleti kaitsmiseks autentimisskeemi nime
  10. String getCharacterEncoding () - tagastab päringu kehas kasutatud märgikodeeringu nime.
  11. String getContentType () - tagastab päringu MIME tüübi.
  12. String getContextPath () - tagastab päringu URI osa, mis näitab URI kontekstiteed
  13. String getHeader (stringi nimi) - tagastab päringu päise stringina
  14. String getMethod () - tagastab HTTP-meetodi nime nagu GET, POST
  15. String getParameter (Stringi nimi) - tagastab päringu parameetri stringina.
  16. String getPathInfo () - tagastab URL-iga seotud teeteabe
  17. String getQueryString () - tagastab päringu stringi, mis on seotud päringu URL-iga
  18. String getServletPath () - tagastab päringu URL-ide osa, mis kutsub JSP-d
  19. String [] getParameterValues ​​(stringi nimi) - tagastab stringi objektide massiivi, mis sisaldab päringu parameetri väärtusi

Näide:

Allpool toodud näites kasutame päringuobjekti abil erinevaid meetodeid

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

Klienditaotluse Guru JSP

guru päis guru päis Väärtus (ed) <%HttpSessioni gurusession = request.getSession ();out.print (" seansi nimi on " + gurusession + " ");Lokaat gurulocale = request.getLocale ();out.print (" lokaadi nimi on " + gurulocale + " ");Stringi tee = request.getPathInfo ();out.print (" Tee nimi on " + tee + " ");String lpath = request.get ();out.print (" Kontekstitee on " + lipath + " ");Stringi servernimi = request.getServerName ();out.print (" Serveri nimi on " + serveri nimi + " ");int portname = request.getServerPort ();out.print (" Serveriport on " + pordinimi + " ");Loendamine hnames = request.getHeaderNames ();while (hnames.hasMoreElements ()) {String paramName = (String) hnames.nextElement ();out.print (" " + paramName + "");String paramValue = request.getHeader (paramName);out.println ("" + paramValue + " ");}%>

Koodi selgitus:

Koodirida 17: Päringuobjekti abil saame konkreetse seansi seansiobjekti ja saame selle seansi objekti väärtuse

Koodirida 19: Päringuobjekti abil saame selle JSP-le konkreetse seansi i.een_US lokaadi.

Koodirida 21: Päringuobjekti kasutades saame selle JSP-le teavet. Sel juhul on see null, kuna URL-i jaoks pole ühtegi teed.

Koodirida 23: Päringuobjekti abil saame kontekstitee, st juurtee

Koodirida 25: Päringuobjekti abil saame serveri nime.

Koodirida 27: Päringuobjekti abil saame serveripordi.

Koodirida 29-35: päringuobjekti abil saame päiste nimed, mis tulevad välja loendina, ja seega saame kõik päise väärtused päise nimedesse.

Selles saame kõik päise väärtused küpsise, hostina, ühenduse kaudu, aktsepteerime keelt, aktsepteerime kodeeringut.

Ülaltoodud koodi käivitamisel saate järgmise väljundi:

Väljund :

Saame väärtuste seeria nagu seansi nimi, lokaadi nimi, tee nimi, serveri nimi, pordi nimi, hosti, kontekstitee ja kõik selle JSP-i päise väärtused.

JSP-serveri vastus

  • Kui taotlust töödeldakse ja seejärel genereeritakse vastus veebiserverist. See koosneb olekureast, vastuse päistest, tühjast reast ja dokumendist.
  • See on objekti HTTPServletResponseclass, mis on vastuse objekt.
  • Olekurida on HTML-i versioon.

Vastuste päiseid on nimetatud allpool:

Päis Kirjeldus
Lubama See määrab päringu meetodid nagu GET, POST, mida server taotleb
Vahemälu juhtimine Vastusdokumendi saab vahemällu salvestada. See võib olla avalik, privaatne ja vahemäluta. Ükski vahemälu ei määra, et dokumenti ei tohiks vahemällu salvestada
Ühendus See annab teada, kas brauser peaks kasutama salvestatud HTTP-ühendusi või mitte. Lähiväärtus tähendab, et brauser ei tohiks HTTP-ühendustes püsivalt kasutada ja "hoia elus" tähendab püsivate ühenduste kasutamist
Sisu-paigutus Kasutajalt küsimiseks, kas vastus kettale salvestada või mitte
Sisu kodeerimine Lehekülg tuleb edastamise ajal kodeerida
Sisu pikkus Baitide arv vastuses
Sisu tüüp See määrab vastuse tüübi MIME
Aegub Määrab, millal peaks sisu olema aegunud ja seda ei tohiks vahemällu salvestada
Viimati muudetud See näitab, millal dokumenti viimati muudeti
Asukoht See peaks olema lisatud kõigile vastustele, mille olekukood on olekukoodina 300
Värskenda See täpsustab, kuidas leida uuendatud leht.
Pärast uuesti Seda saab kasutada 503 vastusega, et öelda kliendile, kui kiiresti ta saab taotlust korrata
Komplekt-küpsis Määrab lehega seotud küpsise

Vastusobjekti kasutavad meetodid on järgmised:

  1. String encodeRedirectURL (stringi URL) - kodeerib URL-i redirectURL-meetodil.
  2. String encodeURL (String URL) - kodeerib URL-i, lisades seansi ID.
  3. Boolean sisaldabHeader (stringi nimi) - see sisaldab JSP-s päist või mitte.
  4. Boolean isCommited () - vastus on määratud või mitte.
  5. Void addCookie (küpsise küpsis) - lisab vastusele küpsise
  6. Void addDateHeader (Stringi nimi, Stringi väärtus) - lisab vastuse päise kuupäeva nime ja väärtuse
  7. Void addHeader (Stringi nimi, Stringi väärtus) - lisab vastuse päise koos nime ja väärtusega
  8. Void addIntHeader (Stringi nimi, int väärtus) - lisab vastuse päise nime ja täisarvu väärtusega
  9. Void flushBuffer () - sunnib puhvris oleva sisu kliendi väljundisse.
  10. Void reset () - kustutab andmed puhvris.
  11. Void resetBuffer - tühjendab vastuses sisupuhvri ilma olekukoode kustutamata.
  12. Void sendError (intsc, Stringmsg) - saadab kliendile olekukoodi abil tõrketeate.
  13. Void sendRedirect (Stringi asukoht) - saadab kliendile ajutise ümbersuunamisvasta.
  14. Void setBufferSize (int size) - määrab keha puhvri suuruse
  15. Void setCharacterEncoding (String charset) - määrab märkide kodeeringu
  16. Void setContentType (Stringi tüüp) - määrab vastuse sisutüübi
  17. Void setContentLength (intlen) - määrab vastuse sisulise pikkuse
  18. Void setLocale (Locale lcl) - määrab vastuse lokaadi tüübi
  19. Void setStatus (intsc) - määrab vastuse olekukoodi

Näide:

Selles näites käsitleme erinevaid meetodeid 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 tegevusreaktsioon 

Guru vastus

<%Lokaat lcl = response.getLocale ();out.println ("Lokaat on: + lcl + "\ n");response.flushBuffer ();PrintWriteri väljund = response.getWriter ();output.println ("See on kirjutaja objektilt");Stringi tüüp = response.getContentType ();out.println ("Sisutüüp: + tüüp + "\ n");// Määra värskendamise, automaatse laadimise aeg 5 sekundiksresponse.setIntHeader ("Värskenda", 5);// Hankige praegune aegKuupäev dt = uus kuupäev ();out.println ("Tänane kuupäev on: + dt.toString () + "\ n");%>

Koodi selgitus:

Koodirida 13: Kasutades vastuse objekti, saame selle JSP seansi lokaliseerimise objekti

Koodirida 15: vastusobjekti abil kasutatakse puhvrisisu klienti sundimiseks flushbufferit

Koodirida 16: Kasutades vastuse objekti, saame kirjutaja objekti, mis saab väljundi väljundvoos

Koodirida 18: vastuse objekti abil saame sisutüübi, st vastuse objekti MIME tüübi

Koodirida 21: Kasutades vastuse objekti, kasutatakse seda iga viie sekundi järel automaatselt, kuna 5 on seatud teiseks parameetriks

Ülaltoodud koodi käivitamisel saate järgmise väljundi:

Väljund:

  • Siin saame väljundi, kuna see on kirjutusobjektilt getWriterilt, mis annab meile objekti ja saame väljundvoos väljastada.
  • Saame lokaadi kui en_us ja sisutüübi tekst / html
  • Tähestiku saab ISO 8859
  • Tänane kuupäev praeguse kuupäevana.

JSP HTTP olekukoodid

  • Taotluse töötlemisel genereeritakse vastus. Vastuse olekurida koosneb HTTP-versioonist, olekukoodist ja seotud sõnumist.
  • Sõnum on otseselt seotud olekukoodi ja HTTP-versiooniga ning selle määrab server.
  • Vaikimisi on JSP-s olekukoodiks 200 seatud, nii et me ei pea seda selgesõnaliselt määrama.
  • Saame määrata meetodiks response.setStatus ()

Koodid jagunevad viide kategooriasse:

  • 100–199 - siin näitab klient, et peaks reageerima mõne toiminguga
  • 200–299 - see tähendab, et taotlus on edukas
  • 300–399 - neid kasutatakse teisaldatud failide jaoks ja need sisaldavad tavaliselt uut aadressi tähistavat asukohapäist
  • 400-499 - näitab kliendi viga
  • 500-599 - näitab serveri viga

Mõned levinumad olekukoodid on allpool:

  • 200 - näitab, et kõik on korras
  • 301 - see on jäädavalt kolinud
  • 304 - pole muudetud pärast viimast muudatust
  • 400 - halb taotlus
  • 404 - ei leitud
  • 405 - meetodit ei leitud
  • 500 - sisemine serveri viga
  • 503 - teenus pole saadaval
  • 505 - HTTP-versiooni ei toetata

Mõned selle meetodid on loetletud allpool:

  1. Avalik void setStatus (intstatusCode)

    See määrab olekukoodi, kumb tahame sellel JSP-lehel määrata. See annab meile sõnumi olekukoodist, mis on määratud

  2. Avalik void sendRedirect (stringi URL)

    See genereerib 302 vastust koos asukoha päisega, mis annab uue dokumendi URL-i

  3. Avalik tühine sendError (intcode, Stringmsg)

    See saadab olekukoodi koos lühisõnumiga ja see vormindatakse HTML-dokumendis.

Näide:

Selles näites saadame selgesõnaliselt vea JSP-lehele.

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1" pageEncoding = "ISO-8859-1"%> Guru olekukood <% response.sendError (404, "Guru lehte ei leitud"); %>

Koodi selgitus:

Koodirida 10: vastuse objekti abil saadame vea kahe parameetriga lehele.

  1. Olekukood - see võib olla ükskõik milline ülaltoodust. Sel juhul oleme kirjeldanud kui 404
  2. Sõnum - see võib olla mis tahes konkreetne sõnum, milles me tahame viga näidata

Ülaltoodud koodi käivitamisel saate järgmise väljundi:

Väljund:

Siit saame veakoodi 404, mis saadeti koodist ja kuvab väljundis ka sõnumit "Guru lehte ei leitud".

Kokkuvõte:

  • Selles artiklis oleme õppinud kliendi päringu ja serveri vastuse kohta selle kohta, kuidas päringut kinni peetakse ja kuidas vastustega manipuleeritakse.
  • Samuti oleme õppinud tundma HTTP olekukoode, et näidata konkreetse faili veakoode või edukoode.