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:
- Cookie [] getCookies () - tagastab massiivi, mis sisaldab küpsiseobjekte , mille klient on saatnud
- Loend getAttributeNames () - sisaldab loendit atribuutide nimedeks
- Loendamine getHeaderNames () - sisaldab päise nimede loendit.
- Loendamine getParameterNames () - sisaldab loendit parameetrite nimede saamiseks päringusse.
- HttpSessiongetSession () - tagastab päringuga seotud praeguse seansi või kui tal pole seanssi, loob see uue.
- Lokaat getLocale () - tagastab eelistatud lokaadi, milles klient sisu aktsepteerib. See on määratud vastusele. Vaikimisi on väärtus serveri vaikelokaat.
- Object getAttribute (String name) - tagastab objektina nimelise atribuudi väärtuse.
- ServletInputStreamgetInputStream () - taastab päringu keha binaarandmetena.
- String getAuthType () - tagastab servleti kaitsmiseks autentimisskeemi nime
- String getCharacterEncoding () - tagastab päringu kehas kasutatud märgikodeeringu nime.
- String getContentType () - tagastab päringu MIME tüübi.
- String getContextPath () - tagastab päringu URI osa, mis näitab URI kontekstiteed
- String getHeader (stringi nimi) - tagastab päringu päise stringina
- String getMethod () - tagastab HTTP-meetodi nime nagu GET, POST
- String getParameter (Stringi nimi) - tagastab päringu parameetri stringina.
- String getPathInfo () - tagastab URL-iga seotud teeteabe
- String getQueryString () - tagastab päringu stringi, mis on seotud päringu URL-iga
- String getServletPath () - tagastab päringu URL-ide osa, mis kutsub JSP-d
- 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
<%HttpSessioni gurusession = request.getSession ();out.print (" guru päis guru päis Väärtus (ed) ");Lokaat gurulocale = request.getLocale ();out.print (" seansi nimi on " + gurusession + " td.> ");Stringi tee = request.getPathInfo ();out.print (" lokaadi nimi on " + gurulocale + " ");String lpath = request.get ();out.print (" Tee nimi on " + tee + " ");Stringi servernimi = request.getServerName ();out.print (" Kontekstitee on " + lipath + " ");int portname = request.getServerPort ();out.print (" Serveri nimi on " + serveri nimi + " ");Loendamine hnames = request.getHeaderNames ();while (hnames.hasMoreElements ()) {String paramName = (String) hnames.nextElement ();out.print (" Serveriport on " + pordinimi + " ");}%> " + 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:
- String encodeRedirectURL (stringi URL) - kodeerib URL-i redirectURL-meetodil.
- String encodeURL (String URL) - kodeerib URL-i, lisades seansi ID.
- Boolean sisaldabHeader (stringi nimi) - see sisaldab JSP-s päist või mitte.
- Boolean isCommited () - vastus on määratud või mitte.
- Void addCookie (küpsise küpsis) - lisab vastusele küpsise
- Void addDateHeader (Stringi nimi, Stringi väärtus) - lisab vastuse päise kuupäeva nime ja väärtuse
- Void addHeader (Stringi nimi, Stringi väärtus) - lisab vastuse päise koos nime ja väärtusega
- Void addIntHeader (Stringi nimi, int väärtus) - lisab vastuse päise nime ja täisarvu väärtusega
- Void flushBuffer () - sunnib puhvris oleva sisu kliendi väljundisse.
- Void reset () - kustutab andmed puhvris.
- Void resetBuffer - tühjendab vastuses sisupuhvri ilma olekukoode kustutamata.
- Void sendError (intsc, Stringmsg) - saadab kliendile olekukoodi abil tõrketeate.
- Void sendRedirect (Stringi asukoht) - saadab kliendile ajutise ümbersuunamisvasta.
- Void setBufferSize (int size) - määrab keha puhvri suuruse
- Void setCharacterEncoding (String charset) - määrab märkide kodeeringu
- Void setContentType (Stringi tüüp) - määrab vastuse sisutüübi
- Void setContentLength (intlen) - määrab vastuse sisulise pikkuse
- Void setLocale (Locale lcl) - määrab vastuse lokaadi tüübi
- 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:
- 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
- Avalik void sendRedirect (stringi URL)
See genereerib 302 vastust koos asukoha päisega, mis annab uue dokumendi URL-i
- 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"); %>