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:

  1. Küpsis[] getCookies() – tagastab massiivi, mis sisaldab kliendi saadetud küpsiseobjekte
  2. Loend getAttributeNames() – sisaldab päringu atribuutide nimede loendit
  3. Loend getHeaderNames() – sisaldab päise nimede loendit.
  4. Loend getParameterNames() – sisaldab päringus olevate parameetrite nimede loendit.
  5. HttpSessiongetSession() – tagastab päringuga seotud praeguse seansi või kui tal pole seanssi, loob uue.
  6. Lokaat getLocale() – tagastab eelistatud lokaadi, milles klient sisu vastu võtab. See on vastusele määratud. Vaikimisi on väärtuseks serveri vaikelokaad.
  7. Objekti getAttribute (stringi nimi) – tagastab nimega atribuudi väärtuse objektina.
  8. ServletInputStreamgetInputStream() – otsib päringu keha binaarandmetena.
  9. String getAuthType() – tagastab servleti kaitsmiseks autentimisskeemi nime
  10. String getCharacterEncoding() – tagastab päringu sisus kasutatud märgikodeeringu nime.
  11. String getContentType() – tagastab päringu kehatüübi MIME.
  12. String getContextPath() – tagastab päringu osa URI näitab URI kontekstiteed
  13. String getHeader (stringi nimi) – tagastab päringu päise stringina
  14. String getMethod() – tagastab HTTP-meetodi nime, näiteks 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 selle päringu URL-ide osa, mis kutsub JSP-d
  19. 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:

JSP kliendi taotlus

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:

  1. String encodeRedirectURL(String URL) – kodeerib URL-i redirectURL meetodil.
  2. String encodeURL (String URL) – kodeerib URL-i, lisades seansi ID.
  3. Boolean sisaldab päist (stringi nimi) – see sisaldab JSP-s päist või mitte.
  4. Boolean isCommited() – on vastus toime pandud või mitte.
  5. Kehtetu addCookie (küpsiseküpsis) – lisab vastusele küpsise
  6. Kehtetu addDateHeader (stringi nimi, stringi väärtus) – lisab vastuse päise kuupäeva nime ja väärtuse
  7. Kehtetu lisapäis (stringi nimi, stringi väärtus) – lisab vastuse päise nime ja väärtusega
  8. Kehtetu addIntHeader (stringi nimi, int väärtus) – lisab vastuse päise koos nime ja täisarvu väärtusega
  9. Tühi loputusBuffer() - sunnib puhvris oleva sisu kliendile väljastama.
  10. Kehtetu lähtestamine () – kustutab puhvris olevad andmed.
  11. Kehtetu lähtestamineBuffer - tühjendab vastuse sisupuhvri ilma olekukoode kustutamata.
  12. Kehtetu saatmisviga(intsc,Stringmsg) – saadab olekukoodi abil kliendile veateate.
  13. Kehtetu sendRedirect (stringi asukoht) – saadab kliendile ajutise ümbersuunamisvastuse.
  14. Tühine komplektBufferSuurus (int suurus) - määrab keha puhvri suuruse
  15. Void set CharacterEncoding (stringi märgistik) – määrab märgikodeeringu
  16. Kehtetu setContentType (stringi tüüp) – määrab vastuse sisutüübi
  17. Kehtetu määratudSisuPikkus(intlen) – määrab vastuse sisu pikkuse
  18. Kehtetu setLocale(Locale lcl) – määrab vastuse lokaadi tüübi
  19. 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:

JSP serveri vastus

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.

  1. Public void setStatus(intstatusCode): See määrab olekukoodi, mille tahame sellel JSP-lehel määrata. See annab meile teate seadistatud olekukoodi kohta
  2. Public void sendRedirect (stringi URL): See genereerib 302 vastuse koos asukoha päisega, mis annab uue dokumendi URL-i
  3. 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.

  1. Olekukood – see võib olla ükskõik milline ülalnimetatutest. Sel juhul oleme kirjeldanud kui 404
  2. 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:

JSP HTTP olekukoodid

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.