JSP-klientforespørsel

JSP-handlinger som bruker konstruksjoner i XML-syntaks for å kontrollere oppførselen til servletmotoren. Vi vil lære mer i detalj om ulike JSP Action-elementer som klientforespørsel, serversvar, HTTP-statuskoder.

JSP-klientforespørsel

  • Når nettsiden blir forespurt, sender den informasjon til webserveren i HTTP-overskriften.
  • Vi kan bruke denne informasjonen ved å bruke HTTPServletRequest-objektet.
  • Informasjon sendt av nettleseren lagres i forespørselshodet til HTTP-forespørselen.
  • Vi bruker forskjellige overskrifter for å sende informasjon til forespørselsobjektet.

Overskrifter i JSP

Ulike overskrifter i JSP er beskrevet nedenfor:

Header Tekniske beskrivelser Eksempel
Aksepterer Den spesifiserer MIME-typer som nettleseren eller andre klienter kan håndtere Bilde/png eller bilde/jpeg
Godta-tegnsett Den bruker tegnsettet som brukes av nettleseren for å vise informasjonen ISO-8859-1
Godta- Koding Den spesifiserer type koding som håndteres av nettleseren Gzip eller komprimere
Aksepter-språk Den spesifiserer klientens spesifiserte språk No,en_us
autorisasjon Overskrift som brukes av klienter når de prøver å få tilgang til passordbeskyttede nettsider  
Tilkobling Den indikerer om klienten kan håndtere vedvarende HTTP-tilkoblinger (nettleseren kan hente flere filer) Holde i live
Innholdslengde Gjelder for å legge inn forespørsler. Det gir størrelsen på postdata av byte  
Cookie Returnerer informasjonskapsel til serveren (de som tidligere ble sendt til nettleseren)  
Host Angir verten og porten til den opprinnelige URL-adressen  
Hvis endret siden Det indikerer at det bare krever en side hvis den er endret eller modifisert  
Hvis uendret siden Det indikerer at det bare krever en side hvis den ikke er endret eller modifisert  
referent Indikerer URL-en til henvisnings-URL-siden  
Bruker agent Identifiserer nettleser eller klient som sender forespørsel  

HTTP-headermetoder i JSP

Følgende metoder brukes til å lese HTTP-overskriften på JSP-siden:

  1. Cookie[] getCookies() – returnerer en matrise som inneholder informasjonskapselobjekter som klienten har sendt
  2. Oppregning getAttributeNames() – inneholder oppregning av navn på attributter for forespørsel
  3. Oppregning getHeaderNames() – inneholder oppregning av navn på overskrift.
  4. Oppregning getParameterNames() – inneholder oppregning for å få parameternavn i forespørselen.
  5. HttpSessiongetSession() – returnerer gjeldende økt knyttet til forespørselen, eller hvis den ikke har en økt, vil den opprette en ny.
  6. Locale getLocale() – returnerer den foretrukne lokaliteten som klienten vil godta innhold i. Den har blitt tilordnet til svaret. Som standard vil verdien være standardlokaliteten til serveren.
  7. Objekt getAttribute(strengnavn) – returnerer verdien av navngitt attributt som et objekt.
  8. ServletInputStreamgetInputStream() – henter kroppen av forespørselen som binære data.
  9. String getAuthType() – returnerer navnet på autentiseringsskjemaet for å beskytte servlet
  10. String getCharacterEncoding() – returnerer navnet på tegnkodingen som brukes i forespørselens brødtekst.
  11. String getContentType() – returnerer MIME-typen for forespørselen.
  12. String getContextPath() – returnerer delen av forespørsels-URI angir kontekstbanen til URI
  13. String getHeader(strengnavn) – returnerer forespørselshodet som en streng
  14. String getMethod() – returnerer navnet på HTTP-metoden som GET, POST
  15. String getParameter(strengnavn) – returnerer parameteren til forespørselen som en streng.
  16. String getPathInfo() – returnerer baneinformasjonen knyttet til URL-en
  17. String getQueryString() – returnerer søkestrengen som er knyttet til forespørsels-URLen
  18. String getServletPath() – returnerer den delen av URL-ene til forespørselen som kaller JSP
  19. String[] getParameterValues(Stringnavn) – returnerer matrisen av strengobjekter som inneholder verdiene som forespørselsparameteren har

Eksempel:

I eksemplet nedenfor bruker vi forskjellige metoder ved å bruke forespørselsobjekt

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

%>

Forklaring av koden:

Kodelinje 17: Ved å bruke forespørselsobjektet får vi sesjonsobjektet for den spesielle økten, og vi får objektverdien til den økten

Kodelinje 19: Ved å bruke forespørselsobjektet får vi lokaliteten for den spesielle sesjonen i.een_US-lokaliteten for den JSP-en.

Kodelinje 21: Ved å bruke forespørselsobjektet får vi baneinformasjon for den JSP-en. I dette tilfellet er den null siden det ikke er nevnt noen bane for URL.

Kodelinje 23: Ved å bruke forespørselsobjekt får vi kontekstbane, dvs. rotbane

Kodelinje 25: Ved å bruke forespørselsobjektet får vi servernavnet.

Kodelinje 27: Ved å bruke forespørselsobjekt får vi serverport.

Kodelinje 29-35: Ved å bruke forespørselsobjekt får vi overskriftsnavn som kommer ut som opplisting, og derfor får vi alle overskriftsverdier i overskriftsnavnene.

I dette får vi alle overskriftsverdier som en Cookie, vert, tilkobling, godta språk, godta koding.

Når du kjører koden ovenfor, får du følgende utgang:

JSP-klientforespørsel

Produksjon:

Vi får serien med verdier som øktnavn, lokalitetsnavn, banenavn, servernavn, portnavn, vert, kontekstbane og alle overskriftsverdiene til det JSP.

JSP-serverrespons

  • Når en forespørsel behandles og deretter genereres svaret fra webserveren. Den består av en statuslinje, svarhoder, en tom linje og dokument.
  • Det er objektet til HTTPServletResponseclass, som er et responsobjekt.
  • Statuslinjen er en versjon av HTML.

Responshoder i JSP

Svarhoder i JSP er nevnt nedenfor:

Header Tekniske beskrivelser
Allow Den spesifiserer forespørselsmetodene som GET, POST som serveren ber om
Cache-kontroll Svardokumentet kan bufres. Det kan være offentlig, privat og uten cache. Ingen hurtigbuffer angir at dokumentet ikke skal bufres
Tilkobling Den instruerer om nettleseren skal bruke savedHTTPConnections eller ikke. Nærverdi representerer at nettleseren ikke skal bruke persistent i HTTPConnections og "holde i live" betyr bruk av vedvarende tilkoblinger
Innholdsdisposisjon For å spørre brukeren om svaret skal lagres på disken eller ikke
Innholdskoding Siden må kodes under overføring
Innholdslengde Antall byte i svaret
Innholdstype Den spesifiserer MIME-typen for svar
Utløper Angir til når innholdet skal anses som utdatert og ikke skal bufres
Sist endret Den indikerer når dokumentet sist ble endret
Vårt kontor: Den skal inkluderes med alle svar som har statuskode har 300 som statuskode
Forfriske Den spesifiserer hvordan du finner den oppdaterte siden.
Prøv på nytt etter Den kan brukes med 503-svar for å fortelle klienten hvor snart den kan gjenta forespørselen
Sett-cookie Angir informasjonskapselen knyttet til siden

HTTP-responshodemetoder i JSP

Følgende er metodene i JSP som bruker responsobjekt:

  1. String encodeRedirectURL(String URL) – koder URL-en i redirectURL-metoden.
  2. String encodeURL(String URL) – koder URL-en ved å inkludere økt-ID.
  3. Boolean containsHeader(strengnavn) – den inneholder en overskrift i JSP eller ikke.
  4. Boolean isCommited() – svar har blitt forpliktet eller ikke.
  5. Void addCookie (Cookie-informasjonskapsel) – legger til informasjonskapsel i svaret
  6. Void addDateHeader(strengnavn, strengverdi) – legger til svaroverskriftsdatonavn og -verdi
  7. Void addHeader (strengnavn, strengverdi) – legger til svarhode med navn og verdi
  8. Void addIntHeader(strengnavn,int verdi) – legger til svarhode med navn og heltallsverdi
  9. Ugyldig spylingBuffer() - tvinger innhold i bufferen til utdata til klienten.
  10. Void reset() – sletter data i bufferen.
  11. Ugyldig tilbakestillingBuffer - sletter innholdsbufferen i svaret uten å slette statuskoder.
  12. Void sendError(intsc,Stringmsg) – sender et feilsvar til klienten ved hjelp av statuskode.
  13. Void sendRedirect (strengplassering) – sender et midlertidig omdirigeringssvar til klienten.
  14. Ugyldig sattBufferStørrelse (int størrelse) – angir bufferstørrelsen på kroppen
  15. Void setCharacterEncoding (strengtegnsett) – setter tegnkoding
  16. Void setContentType(String type) – angir innholdstypen for svaret
  17. Void setContentLength(intlen) – angir innholdslengden på svaret
  18. Void setLocale(Locale lcl) – angir lokalitetstypen for svaret
  19. Void setStatus(intsc) – angir statuskoden for svaret

Eksempel:

I dette eksemplet dekker vi forskjellige metoder 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>

Forklaring av koden:

Kodelinje 13: Ved å bruke responsobjekt får vi lokalitetsobjekt for denne JSP-økten

Kodelinje 15: Ved å bruke responsobjekt brukes flushbuffer til å tvinge bufferinnholdet inn i klienten

Kodelinje 16: Ved å bruke responsobjekt får vi writer-objekt som får utdata i utdatastrømmen

Kodelinje 18: Ved å bruke responsobjekt får vi innholdstype dvs. MIME-type responsobjekt

Kodelinje 21: Ved å bruke responsobjekt brukes det til å laste automatisk hvert 5. sekund ettersom 5 er satt som den andre parameteren

Når du kjører koden ovenfor, får du følgende utgang:

JSP-serverrespons

Utgang:

  • Her får vi output da dette er fra writer object fra getWriter, som gir oss objekt og vi kan output i output stream.
  • Vi får lokaliteten som en_us og innholdstype som tekst/html
  • Vi får tegnsett som ISO 8859
  • Dagens dato som gjeldende dato.

JSP HTTP-statuskoder

  • Når forespørselen er behandlet, genereres svaret. Svarstatuslinjen består av HTTP-versjon, en statuskode og en tilhørende melding.
  • Meldingen er direkte knyttet til statuskoden og HTTP-versjonen, og den bestemmes av serveren.
  • Som standard er 200 satt som en statuskode i JSP, så vi trenger ikke å angi eksplisitt.
  • Vi kan angi som response.setStatus() metode

Kodene faller i følgende 5 kategorier:

  • 100-199 – Her angir klienten at den bør svare med noen handling
  • 200-299 – Det betyr at forespørselen er vellykket
  • 300-399 – De brukes for filer som har blitt flyttet og inkluderer vanligvis en plasseringsoverskrift som indikerer ny adresse
  • 400-499 – Indikerer feil fra klienten
  • 500-599 – Indikerer feil fra serveren

Noen av de vanlige statuskodene er nedenfor:

  • 200 – Indikerer at alt er i orden
  • 301 – Den har flyttet permanent
  • 304 – Ikke endret siden siste endring
  • 400 – Dårlig forespørsel
  • 404 – Ikke funnet
  • 405 – Metoden ble ikke funnet
  • 500 - Intern serverfeil
  • 503 – Tjenesten er utilgjengelig
  • 505 – HTTP-versjon støttes ikke

HTTP-statuskodemetoder i JSP

Noen av statuskodemetodene i JSP er oppført nedenfor:

  1. Offentlig void setStatus(intstatusCode): Den setter statuskoden som vi vil angi på den JSP-siden. Dette vil gi oss meldingen om statuskoden som er satt
  2. Offentlig void sendRedirect(String URL): Den genererer 302-svar sammen med lokasjonsoverskriften som gir URL-en til det nye dokumentet
  3. Public void sendError(intcode,Stringmsg): Den sender statuskoden sammen med den korte meldingen, og den er formatert i HTML-dokumentet.

Eksempel:

I dette eksemplet sender vi en feilmelding til JSP-siden eksplisitt.

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

Forklaring av koden:

Kodelinje 10: Ved å bruke responsobjekt sender vi feilen til en side med to parametere.

  1. Statuskode – Det kan være en av de ovennevnte. I dette tilfellet har vi beskrevet som 404
  2. Melding – Det kan være en hvilken som helst spesifikk melding som vi vil vise feilen

Hvis du kjører koden ovenfor, får du følgende utgang:

JSP HTTP-statuskoder

Utgang:

Her får vi feilkode som 404, som ble sendt fra koden og viser også "Guru Page not found"-meldingen som vises i utdataene.

Sammendrag

  • I denne artikkelen har vi lært om klientforespørsel og serverrespons om hvordan forespørselen blir fanget opp og hvordan svarene manipuleres.
  • JSP-handlinger som bruker konstruksjoner i XML-syntaks for å kontrollere oppførselen til servletmotoren.
  • Når nettsiden blir forespurt, sender den informasjon til webserveren i HTTP-overskriften.
  • Når en forespørsel behandles og deretter genereres svaret fra webserveren. Den består av en statuslinje, svarhoder, en tom linje og dokument.
  • Når forespørselen er behandlet, genereres svaret. Svarstatuslinjen består av HTTP-versjon, en statuskode og en tilhørende melding.