JSP kliendi taotlus
JSP-toimingud, mis kasutavad servletimootori käitumise juhtimiseks XML-i süntaksi konstruktsioone. Saame üksikasjalikumalt teada erinevate JSP-toimingu elementide kohta, nagu kliendi päring, serveri vastus, HTTP olekukoodid.
JSP kliendi taotlus
- Kui veebilehte küsitakse, saadab see HTTP-päises olevale veebiserverile teabe.
- Seda teavet saame kasutada HTTPServletRequest objekti abil.
- Brauseri saadetud teave salvestatakse HTTP päringu päringu päisesse.
- Kasutame päringuobjektile teabe saatmiseks erinevaid päiseid.
Päised JSP-s
JSP erinevaid päiseid kirjeldatakse allpool:
Päise | Kirjeldus | Näide |
---|---|---|
aktsepteerima | See määrab MIME tüübid, mida brauser või muud kliendid saavad käsitleda | Pilt/png või pilt/jpeg |
Accept-charset | See kasutab teabe kuvamiseks brauseri kasutatavat märgistikku | ISO-8859-1 |
Nõustu – kodeerimine | See määrab brauseri käsitletava kodeeringu tüübi | Gzip või tihendus |
Aktsepti-keel | See määrab kliendi määratud keele | Et,en_us |
luba | Päis, mida kliendid kasutavad parooliga kaitstud veebilehtedele pääsemisel | |
Ühendus | See näitab, kas klient saab hakkama püsivate HTTP-ühendustega (brauser saab alla laadida mitu faili) | Elus hoidma |
Sisu pikkus | Kehtib postitamistaotluste puhul. See annab postiandmete suuruse baitides | |
küpsis | Tagastab serverisse küpsise (need, mis varem brauserisse saadeti) | |
Võõrustaja | 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 | |
Alates muutmata | See näitab, et see nõuab lehte ainult siis, kui seda pole muudetud või muudetud | |
Viitaja | Näitab viitava URL-i lehe URL-i | |
Kasutaja agent | Tuvastab brauseri või kliendi päringu |
HTTP päise meetodid JSP-s
HTTP-päise lugemiseks JSP-lehel kasutatakse järgmisi meetodeid:
- Küpsis[] getCookies() – tagastab massiivi, mis sisaldab kliendi saadetud küpsiseobjekte
- Loend getAttributeNames() – sisaldab päringu atribuutide nimede loendit
- Loend getHeaderNames() – sisaldab päise nimede loendit.
- Loend getParameterNames() – sisaldab päringus olevate parameetrite nimede loendit.
- HttpSessiongetSession() – tagastab päringuga seotud praeguse seansi või kui tal pole seanssi, loob uue.
- Lokaat getLocale() – tagastab eelistatud lokaadi, milles klient sisu vastu võtab. See on vastusele määratud. Vaikimisi on väärtuseks serveri vaikelokaad.
- Objekti getAttribute (stringi nimi) – tagastab nimega atribuudi väärtuse objektina.
- ServletInputStreamgetInputStream() – otsib päringu keha binaarandmetena.
- String getAuthType() – tagastab servleti kaitsmiseks autentimisskeemi nime
- String getCharacterEncoding() – tagastab päringu sisus kasutatud märgikodeeringu nime.
- String getContentType() – tagastab päringu kehatüübi MIME.
- String getContextPath() – tagastab päringu osa URI näitab URI kontekstiteed
- String getHeader (stringi nimi) – tagastab päringu päise stringina
- String getMethod() – tagastab HTTP-meetodi nime, näiteks 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 selle päringu URL-ide osa, mis kutsub JSP-d
- String[] getParameterValues(stringi nimi) – tagastab stringiobjektide massiivi, mis sisaldab päringu parameetri väärtusi
Näide:
Allolevas näites kasutame päringuobjekti kasutades erinevaid meetodeid
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <%@ page import="java.io.* java.util.*" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Client Request Guru JSP</title> </head> <body> <h2>Client Request Guru JSP</h2> <table border="1"> <tr> <th>guru header</th><th>guru header Value(s)</th> </tr> <% HttpSession gurusession = request.getSession(); out.print("<tr><td>Session Name is </td><td>" +gurusession+ "</td.></tr>"); Locale gurulocale = request.getLocale (); out.print("<tr><td>Locale Name is</td><td>" +gurulocale + "</td></tr>"); String path = request.getPathInfo(); out.print("<tr><td>Path Name is</td><td>" +path+ "</td></tr>"); String lpath = request.get(); out.print("<tr><td>Context path is</td><td>" +lipath + "</td></tr>"); String servername = request.getServerName(); out.print("<tr><td>Server Name is </td><td>" +servername+ "</td></tr>"); int portname = request.getServerPort(); out.print("<tr><td>Server Port is </td><td>" +portname+ "</td></tr>"); Enumeration hnames = request.getHeaderNames(); while(hnames.hasMoreElements()) { String paramName = (String)hnames.nextElement(); out.print ("<tr><td>" + paramName + "</td>" ); String paramValue = request.getHeader(paramName); out.println("<td> " + paramValue + "</td></tr>"); } %>
Koodi selgitus:
Koodirida 17: Päringuobjekti kasutades saame selle konkreetse seansi seansiobjekti ja saame selle seansi objekti väärtuse
Koodirida 19: Päringuobjekti kasutades saame selle konkreetse seansi lokaadi i.een_US selle JSP jaoks.
Koodirida 21: Päringuobjekti kasutades saame selle JSP teeteabe. Sel juhul on see null, kuna URL-i teed pole mainitud.
Koodirida 23: Päringuobjekti kasutades saame kontekstitee, st juurtee
Koodirida 25: Päringuobjekti kasutades saame serveri nime.
Koodirida 27: Päringuobjekti kasutades saame serveri pordi.
Koodirida 29–35: Päringuobjekti kasutades saame päise nimed, mis tulevad välja loendina ja seega saame kõik päise väärtused päise nimedes.
Selles saame kõik päise väärtused kui a küpsis, host, ühendus, aktsepteeri keel, aktsepteeri kodeering.
Kui käivitate ülaltoodud koodi, saate järgmise väljundi:
Väljund:
Saame väärtuste seeriad, nagu seansi nimi, lokaadi nimi, tee nimi, serveri nimi, pordi nimi, host, kontekstitee ja kõik selle päise väärtused JSP.
JSP serveri vastus
- Kui päring on töödeldud ja seejärel genereeritakse vastus veebiserverist. See koosneb olekurealt, vastuse päistest, tühjast reast ja dokumendist.
- See on HTTPServletResponseclassi objekt, mis on vastuseobjekt.
- Olekurida on HTML-i versioon.
Vastuste päised JSP-s
JSP vastuse päised on mainitud allpool:
Päise | Kirjeldus |
---|---|
lubama | See määrab päringumeetodid, nagu GET, POST, mida server taotleb |
Vahemälu juhtimine | Vastusdokumendi saab vahemällu salvestada. See võib olla avalik, privaatne ja ilma vahemäluta. Vahemälu ei määra, et dokumenti ei tohiks vahemällu salvestada |
Ühendus | See juhendab, kas brauser peaks kasutama salvestatud HTTP-ühendusi või mitte. Close väärtus näitab, et brauser ei tohiks HTTPConnectionsis kasutada püsivat ja "elus hoidmine" tähendab püsivate ühenduste kasutamist |
Sisu-dispositsioon | Kasutajalt küsimiseks, kas vastus salvestada kettale või mitte |
Sisu kodeerimine | Lehekülg tuleb edastamise ajal kodeerida |
Sisu pikkus | Baitide arv vastuses |
Sisu tüüp | See määrab MIME-vastuse tüübi |
Aegub | Määrab, millal tuleks sisu lugeda aegunuks ja seda ei tohiks vahemällu salvestada |
Viimati muudetud | See näitab, millal dokumenti viimati muudeti |
asukoht | See tuleks lisada kõikidele vastustele, mille olekukood on 300 |
värskendama | See määrab, kuidas värskendatud lehekülge leida. |
Proovi uuesti pärast | Seda saab kasutada vastusega 503, et öelda kliendile, kui kiiresti ta saab taotlust korrata |
Set-küpsis | Määrab lehega seotud küpsise |
HTTP vastuse päise meetodid JSP-s
Järgmised meetodid JSP-s, kasutades vastuseobjekti:
- String encodeRedirectURL(String URL) – kodeerib URL-i redirectURL meetodil.
- String encodeURL (String URL) – kodeerib URL-i, lisades seansi ID.
- Boolean sisaldab päist (stringi nimi) – see sisaldab JSP-s päist või mitte.
- Boolean isCommited() – on vastus toime pandud või mitte.
- Kehtetu addCookie (küpsiseküpsis) – lisab vastusele küpsise
- Kehtetu addDateHeader (stringi nimi, stringi väärtus) – lisab vastuse päise kuupäeva nime ja väärtuse
- Kehtetu lisapäis (stringi nimi, stringi väärtus) – lisab vastuse päise nime ja väärtusega
- Kehtetu addIntHeader (stringi nimi, int väärtus) – lisab vastuse päise koos nime ja täisarvu väärtusega
- Tühi loputusBuffer() - sunnib puhvris oleva sisu kliendile väljastama.
- Kehtetu lähtestamine () – kustutab puhvris olevad andmed.
- Kehtetu lähtestamineBuffer - tühjendab vastuse sisupuhvri ilma olekukoode kustutamata.
- Kehtetu saatmisviga(intsc,Stringmsg) – saadab olekukoodi abil kliendile veateate.
- Kehtetu sendRedirect (stringi asukoht) – saadab kliendile ajutise ümbersuunamisvastuse.
- Tühine komplektBufferSuurus (int suurus) - määrab keha puhvri suuruse
- Void set CharacterEncoding (stringi märgistik) – määrab märgikodeeringu
- Kehtetu setContentType (stringi tüüp) – määrab vastuse sisutüübi
- Kehtetu määratudSisuPikkus(intlen) – määrab vastuse sisu pikkuse
- Kehtetu setLocale(Locale lcl) – määrab vastuse lokaadi tüübi
- Kehtetu 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.*" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Guru Action Response</title> </head> <body> <center> <h2>Guru Response</h2> <% Locale lcl = response.getLocale(); out.println("Locale is : " + lcl + "\n"); response.flushBuffer(); PrintWriter output = response.getWriter(); output.println("This is from writer object"); String type = response.getContentType(); out.println("The content type : " + type + "\n"); // Set refresh,autoload time as 5 seconds response.setIntHeader("Refresh", 5); //Get current time Date dt = new Date(); out.println("Today's date is : " +dt.toString() + "\n"); %> </center> </body> </html>
Koodi selgitus:
Koodirida 13: Kasutades vastuseobjekti, saame selle JSP-seansi lokaadiobjekti
Koodirida 15: Kasutades vastuseobjekti, kasutatakse loputuspuhvrit puhvri sisu sundimiseks klienti
Koodirida 16: Kasutades vastuseobjekti, saame kirjutajaobjekti, mis saab väljundi voos
Koodirida 18: Vastusobjekti kasutades saame sisutüübi ehk MIME tüüpi vastuseobjekti
Koodirida 21: Kasutades vastuseobjekti, kasutatakse seda automaatseks laadimiseks iga 5 sekundi järel, kuna teiseks parameetriks on seatud 5
Kui käivitate ülaltoodud koodi, saate järgmise väljundi:
Väljund:
- Siin saame väljundi, kuna see pärineb getWriteri kirjutusobjektist, mis annab meile objekti ja me saame väljastada väljundvoos.
- Me saame lokaadi kui en_us ja sisutüübi kui text/html
- Saame tähestiku ISO 8859 järgi
- Tänane kuupäev kui praegune kuupäev.
JSP HTTP olekukoodid
- Kui päring on töödeldud, 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 seatud 200, nii et me ei pea seda otseselt määrama.
- Saame määrata meetodiks response.setStatus().
Koodid jagunevad 5 kategooriasse:
- 100-199 – siin näitab klient, et peaks vastama mingi toiminguga
- 200-299 – see tähendab, et taotlus on edukas
- 300-399 – neid kasutatakse teisaldatud failide jaoks ja need sisaldavad tavaliselt asukoha päist, mis näitab uut aadressi
- 400-499 – näitab kliendi viga
- 500-599 – osutab serveri veale
Mõned levinumad olekukoodid on allpool.
- 200 – näitab, et kõik on korras
- 301 – see on jäädavalt kolinud
- 304 – pärast viimast muudatust pole muudetud
- 400 – halb taotlus
- 404 – ei leitud
- 405 – meetodit ei leitud
- 500 - sisemine serveri viga
- 503 – teenus pole saadaval
- 505 – HTTP versiooni ei toetata
HTTP olekukoodi meetodid JSP-s
Mõned JSP olekukoodimeetodid on loetletud allpool.
- Public void setStatus(intstatusCode): See määrab olekukoodi, mille tahame sellel JSP-lehel määrata. See annab meile teate seadistatud olekukoodi kohta
- Public void sendRedirect (stringi URL): See genereerib 302 vastuse koos asukoha päisega, mis annab uue dokumendi URL-i
- Public void sendError(intcode,Stringmsg): See saadab olekukoodi koos lühisõnumiga ja see vormindatakse HTML-dokumendis.
Näide:
Selles näites saadame veateate selgesõnaliselt JSP-lehele.
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Guru Status Code</title> </head> <body> <% response.sendError(404,"Guru Page Not Found"); %> </body> </html>
Koodi selgitus:
Koodirida 10: Kasutades vastuseobjekti saadame vea kahe parameetriga lehele.
- Olekukood – see võib olla ükskõik milline ülalnimetatutest. Sel juhul oleme kirjeldanud kui 404
- Sõnum – see võib olla mis tahes konkreetne teade, milles tahame tõrke näidata
Kui käivitate ülaltoodud koodi, saate järgmise väljundi:
Väljund:
Siin saame veakoodi 404, mis saadeti koodist ja kuvab väljundis ka teate "Guru lehte ei leitud".
kokkuvõte
- Sellest artiklist oleme õppinud kliendi päringu ja serveri vastuse kohta, kuidas päring kinni peetakse ja vastustega manipuleeritakse.
- JSP toimingud mis kasutavad servletimootori käitumise juhtimiseks XML-i süntaksis konstruktsioone.
- Kui veebilehte küsitakse, saadab see HTTP-päises olevale veebiserverile teabe.
- Kui päring on töödeldud ja seejärel genereeritakse vastus veebiserverist. See koosneb olekurealt, vastuse päistest, tühjast reast ja dokumendist.
- Kui päring on töödeldud, genereeritakse vastus. Vastuse olekurida koosneb HTTP versioonist, olekukoodist ja seotud sõnumist.