JSP-asiakaspyyntö

JSP-toiminnot, jotka käyttävät XML-syntaksin konstrukteja servlet-moottorin toiminnan ohjaamiseen. Opimme yksityiskohtaisemmin erilaisista JSP-toimintoelementeistä, kuten asiakaspyynnöstä, palvelimen vastauksesta ja HTTP-tilakoodeista.

JSP-asiakaspyyntö

  • Kun verkkosivua pyydetään, se lähettää tiedot web-palvelimelle HTTP-otsikossa.
  • Voimme käyttää näitä tietoja käyttämällä HTTPServletRequest-objektia.
  • Selaimen lähettämät tiedot tallennetaan HTTP-pyynnön pyyntöotsikkoon.
  • Käytämme erilaisia ​​otsikoita lähettääksemme tietoja pyyntöobjektiin.

Otsikot JSP:ssä

JSP:n eri otsikot on kuvattu alla:

Ylätunniste Descriptioni esimerkki
Hyväksyä Se määrittää MIME-tyypit, joita selain tai muut asiakkaat voivat käsitellä Kuva/png tai kuva/jpeg
Hyväksy-merkki Se käyttää selaimen käyttämää merkistöä tietojen näyttämiseen ISO-8859-1
Hyväksy - koodaus Se määrittää selaimen käsittelemän koodaustyypin Gzip tai pakkaa
Hyväksy-kieli Se määrittää asiakkaiden määrittämän kielen En,en_us
Lupa Asiakkaiden käyttämä ylätunniste yrittäessään käyttää salasanalla suojattuja verkkosivuja  
Yhteys Se osoittaa, pystyykö asiakas käsittelemään pysyviä HTTP-yhteyksiä (selain voi hakea useita tiedostoja) Pitää hengissä
Sisällön pituus Koskee postituspyyntöjä. Se antaa koon post data tavuja  
Cookie Palauttaa evästeen palvelimelle (selaimelle aiemmin lähetetyt)  
Isäntä Määrittää alkuperäisen URL-osoitteen isännän ja portin  
Jos sitä on muutettu sen jälkeen Se osoittaa, että se vaatii vain sivun, jos sitä on muutettu tai muokattu  
Jos sitä ei ole muutettu sen jälkeen Se osoittaa, että se vaatii sivun vain, jos sitä ei ole muutettu tai muokattu  
viittaava Osoittaa viittaavan URL-sivun URL-osoitteen  
Käyttäjä agentti Tunnistaa selaimen tai asiakkaan tekemän pyynnön  

HTTP-otsikkomenetelmät JSP:ssä

Seuraavia menetelmiä käytetään HTTP-otsikon lukemiseen JSP-sivulla:

  1. Eväste[] getCookies() – palauttaa taulukon, joka sisältää asiakkaan lähettämät evästeobjektit
  2. Luettelo getAttributeNames() – sisältää luettelon attribuuttien nimistä pyynnöstä
  3. Luettelo getHeaderNames() – sisältää otsikon nimien luettelon.
  4. Luettelo getParameterNames() – sisältää luettelon parametrien nimien saamisesta pyynnössä.
  5. HttpSessiongetSession() – palauttaa pyyntöön liittyvän nykyisen istunnon tai jos sillä ei ole istuntoa, se luo uuden.
  6. Locale getLocale() – palauttaa ensisijaisen kielen, jolla asiakas hyväksyy sisällön. Se on määritetty vastaukselle. Oletuksena arvo on palvelimen oletuskieli.
  7. Objekti getAttribute (merkkijonon nimi) – palauttaa nimetyn attribuutin arvon objektina.
  8. ServletInputStreamgetInputStream() – noutaa pyynnön kehon binääritietona.
  9. Merkkijono getAuthType() – palauttaa todennusmallin nimen servletin suojaamiseksi
  10. Merkkijono getCharacterEncoding() – palauttaa pyynnön rungossa käytetyn merkkikoodauksen nimen.
  11. Merkkijono getContentType() – palauttaa pyynnön rungon MIME-tyypin.
  12. Merkkijono getContextPath() – palauttaa pyynnön osan URI osoittaa URI:n kontekstipolun
  13. Merkkijono getHeader (merkkijonon nimi) – palauttaa pyynnön otsikon merkkijonona
  14. merkkijono getMethod() – palauttaa HTTP-menetelmän nimen, kuten GET, POST
  15. Merkkijono getParameter(merkkijonon nimi) – palauttaa pyynnön parametrin merkkijonona.
  16. Merkkijono getPathInfo() – palauttaa URL-osoitteeseen liittyvät polkutiedot
  17. Merkkijono getQueryString() – palauttaa kyselymerkkijonon, joka liittyy pyynnön URL-osoitteeseen
  18. Merkkijono getServletPath() – palauttaa pyynnön URL-osoitteiden osan, joka kutsuu JSP:tä
  19. Merkkijono[] getParameterValues(merkkijonon nimi) – palauttaa merkkijonoobjektien joukon, joka sisältää pyyntöparametrin arvot

Esimerkiksi:

Alla olevassa esimerkissä käytämme erilaisia ​​menetelmiä pyyntöobjektin avulla

<%@ 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>");
	}

%>

Koodin selitys:

Koodirivi 17: Pyyntöobjektin avulla saamme kyseisen istunnon istuntoobjektin ja tämän istunnon objektiarvon

Koodirivi 19: Pyyntöobjektia käyttämällä saamme kyseisen istunnon i.een_US locale -asetuksen tälle JSP:lle.

Koodirivi 21: Pyyntöobjektin avulla saamme polkutiedot kyseiselle JSP:lle. Tässä tapauksessa se on tyhjä, koska URL-osoitteelle ei ole mainittu polkua.

Koodirivi 23: Pyyntöobjektia käyttämällä saamme kontekstipolun eli juuripolun

Koodirivi 25: Pyyntöobjektin avulla saamme palvelimen nimen.

Koodirivi 27: Pyyntöobjektin avulla saamme palvelinportin.

Koodirivit 29-35: Pyyntöobjektia käyttämällä saamme otsikon nimiä, jotka tulevat esiin luettelona, ​​ja siten saamme kaikki otsikkoarvot otsikon nimissä.

Tässä saamme kaikki otsikkoarvot muodossa a Cookie, isäntä, yhteys, hyväksy kieli, hyväksy koodaus.

Kun suoritat yllä olevan koodin, saat seuraavan tulosteen:

JSP-asiakaspyyntö

ulostulo:

Saamme sarjan arvoja, kuten istunnon nimi, aluenimi, polun nimi, palvelimen nimi, portin nimi, isäntä, kontekstipolku ja kaikki sen otsikkoarvot. JSP.

JSP-palvelinvastaus

  • Kun pyyntö käsitellään ja sitten vastaus luodaan verkkopalvelimelta. Se koostuu tilarivistä, vastausotsikoista, tyhjästä rivistä ja asiakirjasta.
  • Se on HTTPServletResponseclass-objekti, joka on vastausobjekti.
  • Tilarivi on HTML-versio.

Vastausten otsikot JSP:ssä

JSP:n vastausotsikot mainitaan alla:

Ylätunniste Descriptioni
allow Se määrittää pyyntömenetelmät, kuten GET, POST, jota palvelin pyytää
Välimuistin hallinta Vastausasiakirja voidaan tallentaa välimuistiin. Se voi olla julkinen, yksityinen ja ilman välimuistia. Mikään välimuisti ei määrää, että asiakirjaa ei saa tallentaa välimuistiin
Yhteys Se neuvoo, tuleeko selaimen käyttää tallennettuja HTTPConnections-yhteyksiä vai ei. Sulje arvo tarkoittaa, että selaimen ei pitäisi käyttää pysyviä yhteyksiä HTTPConnectionsissa ja "keep-alive" tarkoittaa pysyvien yhteyksien käyttöä
Sisältö-asetelma Kysy käyttäjältä, tallennetaanko vastaus levylle vai ei
Sisällön koodaus Sivu on koodattava lähetyksen aikana
Sisällön pituus Tavujen määrä vastauksessa
Sisältötyyppi Se määrittää MIME-vastauksen tyypin
Vanhenee Määrittää, milloin sisältö on katsottava vanhentuneeksi, eikä sitä saa tallentaa välimuistiin
Viimeksi muokattu Se osoittaa, milloin asiakirjaa on viimeksi muokattu
Sijainti Se tulee sisällyttää kaikkiin vastauksiin, joiden tilakoodi on 300 tilakoodina
virkistää Se määrittää, kuinka päivitetty sivu löytyy.
Yritä uudelleen Sitä voidaan käyttää 503-vastauksen kanssa kertomaan asiakkaalle, kuinka pian se voi toistaa pyynnön
Aseta eväste Määrittää sivuun liittyvän evästeen

HTTP-vastausotsikkomenetelmät JSP:ssä

Seuraavat ovat menetelmät JSP:ssä käyttäen vastausobjektia:

  1. Merkkijono encodeRedirectURL(merkkijono URL) – koodaa URL-osoitteen redirectURL-menetelmällä.
  2. Merkkijono encodeURL(String URL) – koodaa URL-osoitteen lisäämällä istuntotunnuksen.
  3. Boolean sisältää Otsikko(merkkijonon nimi) – se sisältää otsikon JSP:ssä vai ei.
  4. Boolen isCommited() – onko vastaus tehty vai ei.
  5. Void addCookie (Cookie cookie) – lisää evästeen vastaukseen
  6. Void addDateHeader (merkkijonon nimi, merkkijonon arvo) – lisää vastauksen otsikon päivämäärän nimen ja arvon
  7. Void addHeader (merkkijonon nimi, merkkijonon arvo) – lisää vastauksen otsikon, jossa on nimi ja arvo
  8. Void addIntHeader(merkkijonon nimi, int-arvo) – lisää vastauksen otsikon, jossa on nimi ja kokonaislukuarvo
  9. Tyhjä huuhteluBuffer() - pakottaa puskurin sisällön tulostamaan asiakkaalle.
  10. Void reset() – tyhjentää tiedot puskurista.
  11. Void resetBuffer - tyhjentää vastauksen sisältöpuskurin tyhjentämättä tilakoodeja.
  12. Void sendError(intsc,Stringmsg) – lähettää asiakkaalle virhevastauksen tilakoodilla.
  13. Void sendRedirect (merkkijonon sijainti) – lähettää tilapäisen uudelleenohjausvastauksen asiakkaalle.
  14. Tyhjä asetettuBufferKoko (int koko) - asettaa rungon puskurin koon
  15. Void setCharacterEncoding (merkkijono) – asettaa merkkikoodauksen
  16. Void setContentType (merkkijonotyyppi) – määrittää vastauksen sisältötyypin
  17. Void setContentLength(intlen) – määrittää vastauksen sisällön pituuden
  18. Void setLocale(Locale lcl) – määrittää vastauksen aluetyypin
  19. Void setStatus(intsc) – asettaa vastauksen tilakoodin

Esimerkiksi:

Tässä esimerkissä käsittelemme erilaisia ​​menetelmiä 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>

Koodin selitys:

Koodirivi 13: Käyttämällä vastausobjektia saamme tämän JSP-istunnon locale-objektin

Koodirivi 15: Käyttämällä vastausobjektia flushbufferia käytetään puskurin sisällön pakottamiseksi asiakkaalle

Koodirivi 16: Käyttämällä vastausobjektia saamme kirjoitusobjektin, joka saa ulostulon lähtövirrassa

Koodirivi18: Käyttämällä vastausobjektia saamme sisältötyypin eli MIME-tyypin vastausobjektin

Koodirivi 21: Käyttämällä vastausobjektia sitä käytetään automaattiseen lataukseen 5 sekunnin välein, kun 5 on asetettu toiseksi parametriksi

Kun suoritat yllä olevan koodin, saat seuraavan tulosteen:

JSP-palvelinvastaus

lähtö:

  • Täältä saamme ulostulon, koska tämä on getWriterin kirjoitusobjektista, joka antaa meille objektin ja voimme tulostaa tulosvirtaan.
  • Saamme maa-asetuksen muodossa en_us ja sisältötyypin muodossa text/html
  • Saamme merkistön ISO 8859:nä
  • Tämän päivän päivämäärä nykyisenä päivämääränä.

JSP HTTP-tilakoodit

  • Kun pyyntö on käsitelty, syntyy vastaus. Vastauksen tilarivi koostuu HTTP-versiosta, tilakoodista ja siihen liittyvästä viestistä.
  • Viesti liittyy suoraan tilakoodiin ja HTTP-versioon, ja palvelin määrittää sen.
  • Oletusarvoisesti 200 on asetettu tilakoodiksi JSP:ssä, joten meidän ei tarvitse määrittää erikseen.
  • Voimme asettaa vastauksena.setStatus() -menetelmäksi

Koodit jakautuvat seuraaviin 5 luokkaan:

  • 100-199 – Tässä asiakas ilmoittaa, että sen pitäisi vastata jollain toimenpiteellä
  • 200-299 – Se tarkoittaa, että pyyntö on onnistunut
  • 300-399 – Niitä käytetään tiedostoille, jotka on siirretty ja sisältävät yleensä uuden osoitteen osoittavan sijaintiotsikon
  • 400-499 – Osoittaa asiakkaan tekemän virheen
  • 500-599 – Osoittaa palvelimen aiheuttaman virheen

Alla on joitakin yleisiä tilakoodeja:

  • 200 – Ilmaisee, että kaikki on hyvin
  • 301 – Se on muuttanut pysyvästi
  • 304 – Ei muokattu viimeisen muutoksen jälkeen
  • 400 Virheellinen pyyntö
  • 404 ei löydetty
  • 405 – Menetelmää ei löydy
  • 500 – Sisäinen palvelinvirhe
  • 503 Palvelu ei ole käytettävissä
  • 505 – HTTP-versiota ei tueta

HTTP-tilakoodimenetelmät JSP:ssä

Jotkut JSP:n tilakoodimenetelmistä on lueteltu alla:

  1. Public void setStatus(intstatusCode): Se asettaa tilakoodin, jonka haluamme asettaa kyseiselle JSP-sivulle. Tämä antaa meille viestin tilakoodista, joka on asetettu
  2. Julkinen void sendRedirect(String URL): Se tuottaa 302-vastauksen sekä sijaintiotsikon, joka antaa uuden asiakirjan URL-osoitteen
  3. Public void sendError(intcode,Stringmsg): Se lähettää tilakoodin tekstiviestin mukana ja muotoillaan HTML-dokumentin sisällä.

Esimerkiksi:

Tässä esimerkissä lähetämme virheilmoituksen JSP-sivulle eksplisiittisesti.

<%@ 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>

Koodin selitys:

Koodirivi 10: Vastausobjektia käyttämällä lähetämme virheen sivulle, jossa on kaksi parametria.

  1. Tilakoodi – Se voi olla mikä tahansa yllä olevista. Tässä tapauksessa olemme kuvanneet numeroa 404
  2. Viesti – Se voi olla mikä tahansa viesti, jonka haluamme näyttää virheen

Jos suoritat yllä olevan koodin, saat seuraavan tulosteen:

JSP HTTP-tilakoodit

lähtö:

Täältä saamme virhekoodin 404, joka lähetettiin koodista ja näyttää myös "Guru-sivua ei löydy" -viestin, joka näkyy ulostulossa.

Yhteenveto

  • Tässä artikkelissa olemme oppineet asiakkaan pyynnöstä ja palvelimen vastauksesta, kuinka pyyntö siepataan ja miten vastauksia käsitellään.
  • JSP-toiminnot jotka käyttävät XML-syntaksin konstrukteja ohjaamaan servlet-moottorin toimintaa.
  • Kun verkkosivua pyydetään, se lähettää tiedot web-palvelimelle HTTP-otsikossa.
  • Kun pyyntö käsitellään ja sitten vastaus luodaan verkkopalvelimelta. Se koostuu tilarivistä, vastausotsikoista, tyhjästä rivistä ja asiakirjasta.
  • Kun pyyntö on käsitelty, syntyy vastaus. Vastauksen tilarivi koostuu HTTP-versiosta, tilakoodista ja siihen liittyvästä viestistä.