JSP-klientforespørsel

⚡ Smart oppsummering

JSP-klientforespørsler og serverrespons bruker JSP-handlingselementer for å kontrollere servletmotoren. Nettleseren sender informasjon via HTTP-overskrifter, serveren returnerer en statuslinje og overskrifter, og HTTP-statuskoder rapporterer resultatet av hver forespørsel.

  • 📨 Kundeforespørsel: Nettleseren sender data til serveren i HTTP-forespørselsoverskrifter, lest via HttpServletRequest.
  • 🧾 Forespørselshoder: Godta, Godta-språk, Tilkobling, Informasjonskapsel, Vert og Brukeragent beskriver klienten.
  • 📤 Serversvar: HttpServletResponse returnerer en statuslinje, svaroverskrifter og dokumentet.
  • 🔧 Responsmetoder: addHeader(), sendRedirect(), sendError() og setStatus() former svaret.
  • 🔢 status Codes: Gruppert 100–599; vanlige inkluderer 200, 301, 404 og 500.
  • 🧪 Eksempler: Fungerende JSP-sider leser overskrifter, angir et oppdateringsintervall og sender en 404-feil.

JSP-klientforespørsel

JSP-handlinger bruker konstruksjoner i XML-syntaks for å kontrollere oppførselen til servlet-motoren. Vi vil lære mer detaljert om ulike JSP-handlingselementer som klientforespørsel, serverrespons og 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 originalen URL
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 å henvise URL side
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 opplisting av navn på overskriften.
  4. Oppregning getParameterNames() – inneholder oppregning for å få parameternavn i forespørselen.
  5. HttpSession getSession() – 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. ServletInputStream getInputStream() – henter forespørselsteksten 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 stiinformasjonen som er knyttet til URL
  17. String getQueryString() – returnerer spørrestrengen som er knyttet til forespørselen URL
  18. String getServletPath() – returnerer delen av URLs av forespørselen som kaller JSP-en
  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:

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

Code Linje 19: Ved å bruke request-objektet får vi språkinnstillingene for den bestemte økten, dvs. en_US språkinnstillinger for den JSP-en.

Code Linje 21: Ved å bruke request-objektet får vi stiinformasjon for den JSP-en. I dette tilfellet er den null, ettersom det ikke finnes noen sti for URL nevnt.

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

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

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

Code Linje 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

Utgang:

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 HTTPServletResponse-klassen, 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. StrengkodeOmdirigeringURL(Streng URL) - koder for URL i omdirigeringURL metoden.
  2. StrengkodingURL(Streng URL) - koder for URL 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. Ugyldig addCookie(Cookie cookie) – 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. Ugyldig sendError(int sc,String msg) – 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. Ugyldig setContentLength(int len) – angir innholdslengden på svaret
  18. Void setLocale(Locale lcl) – angir lokalitetstypen for svaret
  19. Ugyldig settStatus(int sc) – angir statuskoden for svaret

Eksempel:

I dette eksemplet dekker vi forskjellige metoder: getLocale, flushbuffer og getWriter, getContentType, 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:

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

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

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

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

Code Linje 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 utdataene, slik som dette er fra writer-objektet fra getWriter, som gir oss objektet og vi kan sende ut i utdatastrømmen.
  • 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-status Codes

  • 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-status Code Metoder i JSP

Noen av statuskodemetodene i JSP er oppført nedenfor:

  1. Offentlig void settStatus(int statusCode): 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 plasseringshodet som gir URL av det nye dokumentet
  3. Offentlig void sendError(int kode,String melding): 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:

Code Linje 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-status Codes

Utgang:

Her får vi feilkode 404, som ble sendt fra koden og viser også "Guru Meldingen «Siden ble ikke funnet» vises i utdataene.

Spørsmål og svar

HttpServletRequest bærer data sendt av klienten til serveren, for eksempel overskrifter og parametere. HttpServletResponse bærer data sendt tilbake fra serveren, inkludert statuskoder, svaroverskrifter og dokumentinnhold.

Statuskode 404 betyr at den forespurte ressursen ikke ble funnet på serveren. I JSP kan du sende den eksplisitt med response.sendError(404, “message”) for å vise en tilpasset «ikke funnet»-side.

Bruk forespørselsobjektet: getHeaderNames() returnerer en opplisting av headernavn, og getHeader(navn) returnerer hver headerverdi. Iterer over navnene for å lese hver header som sendes av klienten.

AI kan analysere headerlogger, flagge manglende eller feilkonfigurerte headere, oppdage sikkerhetsproblemer som manglende hurtigbufferkontroll og oppsummere trafikkmønstre.ping utviklere feilsøker og optimaliserer forespørsels- og svarhåndtering raskere.

Ja. AI kan generere JSP-skript som leser forespørselsparametere og -overskrifter, angir svaroverskrifter og sender statuskoder fra en beskrivelse i et enkelt språk, som utviklere deretter gjennomgår for korrekthet og sikkerhet.

Oppsummer dette innlegget med: