JSP-klientanmodning

⚡ Smart opsummering

JSP-klientanmodninger og serverrespons bruger JSP-handlingselementer til at styre servlet-motoren. Browseren sender information via HTTP-headere, serveren returnerer en statuslinje og headere, og HTTP-statuskoder rapporterer resultatet af hver anmodning.

  • 📨 Kundeanmodning: Browseren sender data til serveren i HTTP-request headers, læst via HttpServletRequest.
  • 🧾 Anmodningsoverskrifter: Accept, Accept-sprog, Forbindelse, Cookie, Vært og Brugeragent beskriver klienten.
  • 📤 Serversvar: HttpServletResponse returnerer en statuslinje, svarheadere og dokumentet.
  • 🔧 Svarmetoder: addHeader(), sendRedirect(), sendError() og setStatus() former svaret.
  • 🔢 Status Codes: Grupperet 100–599; almindelige omfatter 200, 301, 404 og 500.
  • 🧪 eksempler: Arbejdende JSP-sider læser headere, indstiller et opdateringsinterval og sender en 404-fejl.

JSP-klientanmodning

JSP-handlinger bruger konstruktioner i XML-syntaks til at styre servlet-motorens opførsel. Vi vil lære mere detaljeret om forskellige JSP-handlingselementer som klientanmodning, serverrespons og HTTP-statuskoder.

JSP-klientanmodning

  • Når websiden anmodes om, sender den information til webserveren i HTTP-headeren.
  • Vi kan bruge disse oplysninger ved hjælp af HTTPServletRequest-objektet.
  • Oplysninger sendt af browseren gemmes i anmodningshovedet på HTTP-anmodningen.
  • Vi bruger forskellige overskrifter til at sende information til anmodningsobjektet.

Overskrifter i JSP

Forskellige overskrifter i JSP er beskrevet nedenfor:

Header Beskrivelse Eksempel
Acceptere Det specificerer MIME-typer, som browser eller andre klienter kan håndtere Image/png eller image/jpeg
Accepter-tegnsæt Den bruger det tegnsæt, som browseren bruger til at vise oplysningerne ISO-8859-1
Accepter- Kodning Det specificerer typen af ​​kodning, der håndteres af browseren Gzip eller komprimere
Accepter-sprog Det specificerer klientens angivne sprog En, en_us
Tilladelse Header brugt af klienter, når de forsøger at få adgang til adgangskodebeskyttede websider
Forbindelse Det angiver, om klienten kan håndtere vedvarende HTTP-forbindelser (browser kan hente flere filer) Holde i live
Indholdslængde Gælder for at sende anmodninger. Det giver størrelsen på postdata på bytes
Cookie Returnerer cookie til serveren (dem, der tidligere blev sendt til browseren)
Host Angiver værten og porten for originalen URL
Hvis ændret siden Det angiver, at det kun kræver en side, hvis den er blevet ændret eller modificeret
Hvis uændret siden Det angiver, at det kun kræver en side, hvis den ikke er blevet ændret eller modificeret
Henviser indikerer URL at henvise URL side
Bruger-agent Identificerer browser eller klient, der fremsætter anmodning

HTTP-headermetoder i JSP

Følgende metoder bruges til at læse HTTP-headeren på JSP-siden:

  1. Cookie[] getCookies() – returnerer et array, der indeholder cookie-objekter, som klienten har sendt
  2. Enumeration getAttributeNames() – indeholder opremsning af navne på attributter til anmodning
  3. Enumeration getHeaderNames() – indeholder en opregning af navne på headeren.
  4. Enumeration getParameterNames() – indeholder opregning af at få parameternavne i anmodningen.
  5. HttpSession getSession() – returnerer den aktuelle session, der er knyttet til anmodningen, eller hvis den ikke har en session, vil den oprette en ny.
  6. Lokalitet getLocale() – returnerer den foretrukne lokalitet, som klienten vil acceptere indhold i. Den er blevet tildelt til svaret. Som standard vil værdien være serverens standardlokalitet.
  7. Objekt getAttribute(strengnavn) – returnerer værdien af ​​navngivet attribut som et objekt.
  8. ServletInputStream getInputStream() – henter anmodningens brødtekst som binære data.
  9. String getAuthType() – returnerer navnet på godkendelsesskemaet for at beskytte servlet
  10. String getCharacterEncoding() – returnerer navnet på den tegnkodning, der bruges i anmodningens brødtekst.
  11. String getContentType() – returnerer MIME-typen af ​​brødteksten for anmodningen.
  12. Streng getContextPath() – returnerer den del af anmodnings-URI, der angiver kontekststien til URI
  13. Streng getHeader(strengnavn) – returnerer anmodningshovedet som en streng
  14. String getMethod() – returnerer navnet på HTTP-metoden som GET, POST
  15. String getParameter(String name) – returnerer parameteren for anmodningen som en streng.
  16. String getPathInfo() – returnerer stioplysningerne knyttet til URL
  17. String getQueryString() – returnerer den forespørgselsstreng, der er knyttet til anmodningen URL
  18. String getServletPath() – returnerer delen af URLs af anmodningen, der kalder JSP'en
  19. String[] getParameterValues(Stringnavn) – returnerer arrayet af strengobjekter, der indeholder de værdier, som anmodningsparameteren har

Eksempel:

I eksemplet nedenfor bruger vi forskellige metoder ved hjælp af anmodningsobjekt

<%@ 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 af koden:

Code Linje 17: Ved at bruge anmodningsobjekt får vi sessionsobjektet for den pågældende session, og vi får objektværdien for den session

Code Linje 19: Ved at bruge request-objektet får vi lokaliteten for den pågældende session, dvs. en_US lokaliteten for den pågældende JSP.

Code Linje 21: Ved hjælp af request-objektet henter vi stioplysninger for den pågældende JSP. I dette tilfælde er den null, da der ikke er nogen sti til URL nævnte.

Code Linje 23: Ved at bruge anmodningsobjekt får vi kontekststi, dvs. rodsti

Code Linje 25: Ved at bruge anmodningsobjektet får vi servernavnet.

Code Linje 27: Ved at bruge anmodningsobjekt får vi serverport.

Code Linje 29-35: Ved at bruge anmodningsobjekt får vi headernavne, der kommer ud som opregning, og derfor får vi alle headerværdier i headernavnene.

I denne får vi alle overskriftsværdier som en Cookie, vært, forbindelse, acceptere sprog, acceptere kodning.

Når du udfører ovenstående kode, får du følgende output:

JSP-klientanmodning

Output:

Vi får rækken af ​​værdier som sessionsnavn, lokalitetsnavn, stinavn, servernavn, portnavn, vært, kontekststi og alle overskriftens værdier JSP.

JSP-serversvar

  • Når en anmodning behandles, og derefter genereres svaret fra webserveren. Den består af en statuslinje, svaroverskrifter, en tom linje og dokument.
  • Det er objektet for HTTPServletResponse-klassen, som er et response-objekt.
  • Statuslinjen er en version af HTML.

Response Headers i JSP

Svaroverskrifter i JSP er nævnt nedenfor:

Header Beskrivelse
Tillad Det specificerer anmodningsmetoderne som GET, POST, som serveren anmoder om
Cache-kontrol Svardokumentet kan cachelagres. Det kan være offentligt, privat og uden cache. Ingen cache angiver, at dokumentet ikke skal cachelagres
Forbindelse Den instruerer om browseren skal bruge savedHTTPConnections eller ej. Tæt værdi repræsenterer, at browseren ikke bør bruge persistent i HTTPConnections, og "holde i live" betyder brug af vedvarende forbindelser
Indholdsdisposition At spørge brugeren, om svaret skal gemmes på disken eller ej
Indholdskodning Siden skal kodes under transmissionen
Indholdslængde Antal bytes i svaret
Indholdstype Den specificerer MIME-typen for svar
Udløber Angiver, hvornår indholdet skal betragtes som forældet og ikke skal cachelagres
Sidst ændret Det angiver, hvornår dokumentet sidst blev ændret
Lokation Den skal inkluderes i alle svar, der har statuskode har 300 som statuskode
Opfrisk Den specificerer, hvordan man finder den opdaterede side.
Prøv igen - efter Den kan bruges med 503-svar til at fortælle klienten, hvor hurtigt den kan gentage anmodningen
Sæt-cookie Angiver den cookie, der er knyttet til siden

HTTP Response Header-metoder i JSP

Følgende er metoderne i JSP ved hjælp af responsobjekt:

  1. String encodeRedirectURL(Snor URL) - koder for URL i omdirigeringURL fremgangsmåde.
  2. String-kodningURL(Snor URL) - koder for URL ved at inkludere sessions-ID.
  3. Boolean containsHeader(strengnavn) – den indeholder en header i JSP'en eller ej.
  4. Boolean isCommited() – svar er blevet begået eller ej.
  5. Ugyldig addCookie(Cookie cookie) – tilføjer cookie til svaret
  6. Void addDateHeader (strengnavn, strengværdi) – tilføjer svaroverskriftsdatonavn og -værdi
  7. Void addHeader (strengnavn, strengværdi) – tilføjer svarheader med navn og værdi
  8. Void addIntHeader(String name,int value) – tilføjer svarheader med navn og heltalsværdi
  9. Ugyldig skylningBuffer() - tvinger indhold i bufferen til output til klienten.
  10. Void reset() – rydder data i bufferen.
  11. Ugyldig nulstillingBuffer - rydder indholdsbufferen i svaret uden at rydde statuskoder.
  12. Ugyldig sendError(int sc,String besked) – sender et fejlsvar til klienten ved hjælp af statuskode.
  13. Void sendRedirect (strengplacering) – sender et midlertidigt omdirigeringssvar til klienten.
  14. Tomt sætBufferStørrelse (int størrelse) – indstiller bufferstørrelsen på kroppen
  15. Void setCharacterEncoding(String charset) – indstiller tegnkodning
  16. Void setContentType(String type) – indstiller indholdstypen for svaret
  17. Void sætIndholdslængde(int længde) – indstiller svarets indholdslængde
  18. Void setLocale(Locale lcl) – angiver lokalitetstypen for svaret
  19. Ugyldig sætStatus(int sc) – indstiller statuskoden for svaret

Eksempel:

I dette eksempel dækker vi forskellige 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 af koden:

Code Linje 13: Ved at bruge responsobjekt får vi lokalitetsobjekt for denne JSP-session

Code Linje 15: Ved at bruge responsobjekt bruges flushbuffer til at tvinge bufferindholdet ind i klienten

Code Linje 16: Ved at bruge responsobjekt får vi writer-objekt, som får output i outputstrømmen

Code Linje 18: Ved at bruge responsobjekt får vi indholdstype dvs. MIME-type svarobjekt

Code Linje 21: Ved at bruge responsobjektet bruges det til at autoloade hvert 5. sekund, da 5 er indstillet som den anden parameter

Når du udfører ovenstående kode, får du følgende output:

JSP-serversvar

Output:

  • Her får vi outputtet, da dette er fra writer-objektet fra getWriter, hvilket giver os objektet, og vi kan outputte i outputstrømmen.
  • Vi får lokaliteten som en_us og indholdstypen som tekst/html
  • Vi får tegnsæt som ISO 8859
  • Dagens dato som den aktuelle dato.

JSP HTTP-status Codes

  • Når anmodningen er behandlet, genereres svaret. Svarstatuslinjen består af HTTP-version, en statuskode og en tilhørende meddelelse.
  • Meddelelsen er direkte forbundet med statuskoden og HTTP-versionen, og den bestemmes af serveren.
  • Som standard er 200 indstillet som en statuskode i JSP, så vi behøver ikke at indstille det eksplicit.
  • Vi kan indstille som response.setStatus() metode

Koderne falder i følgende 5 kategorier:

  • 100-199 – Her angiver klienten, at den skal reagere med en handling
  • 200-299 – Det betyder, at anmodningen er vellykket
  • 300-399 - De bruges til filer, der er blevet flyttet og inkluderer normalt en placeringsoverskrift, der angiver ny adresse
  • 400-499 – Indikerer fejl fra klienten
  • 500-599 – Angiver fejl fra serveren

Nogle af de almindelige statuskoder er nedenfor:

  • 200 – Indikerer, at alt er i orden
  • 301 – Den er flyttet permanent
  • 304 – Ikke ændret siden sidste ændring
  • 400 – Dårlig anmodning
  • 404 Ikke fundet
  • 405 – Metoden blev ikke fundet
  • 500 - Intern serverfejl
  • 503 Service ikke tilgængelig
  • 505 – HTTP-version understøttes ikke

HTTP-status Code Metoder i JSP

Nogle af statuskodemetoderne i JSP er angivet nedenfor:

  1. Offentlig void sætStatus(int statusCode): Den indstiller statuskoden, som vi vil indstille på den JSP-side. Dette vil give os beskeden om statuskoden, som er blevet indstillet
  2. Offentlig void sendRedirect(String URL): Den genererer et 302-svar sammen med placeringsheaderen, der angiver URL af det nye dokument
  3. Offentlig void sendError(int kode,String besked): Den sender statuskoden sammen med den korte besked, og den er formateret inde i HTML-dokumentet.

Eksempel:

I dette eksempel sender vi en fejl til JSP-siden eksplicit.

<%@ 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 af koden:

Code Linje 10: Ved at bruge responsobjektet sender vi fejlen til en side med to parametre.

  1. Statuskode – Det kan være en af ​​ovenstående. I dette tilfælde har vi beskrevet som 404
  2. Besked – Det kan være en hvilken som helst specifik meddelelse, som vi ønsker at vise fejlen

Hvis du udfører ovenstående kode, får du følgende output:

JSP HTTP-status Codes

Output:

Her får vi fejlkoden 404, som blev sendt fra koden og viser også "Guru Meddelelsen "Side ikke fundet" vises i outputtet.

Ofte Stillede Spørgsmål

HttpServletRequest bærer data sendt af klienten til serveren, såsom headere og parametre. HttpServletResponse bærer data sendt tilbage fra serveren, herunder statuskoder, svarheadere og dokumentets indhold.

Statuskode 404 betyder, at den anmodede ressource ikke blev fundet på serveren. I JSP kan du sende den eksplicit med response.sendError(404, “message”) for at vise en brugerdefineret ikke-fundet-side.

Brug request-objektet: getHeaderNames() returnerer en optælling af header-navne, og getHeader(navn) returnerer hver header-værdi. Gentag navnene for at læse hver header, der sendes af klienten.

AI kan analysere header-logfiler, markere manglende eller forkert konfigurerede headere, registrere sikkerhedsproblemer såsom manglende cache-kontrol og opsummere trafikmønstre.ping Udviklere foretager fejlfinding og optimering af anmodninger og svar hurtigere.

Ja. AI kan generere JSP-scriptlets, der læser anmodningsparametre og headere, indstiller svarheadere og sender statuskoder fra en beskrivelse i et letforståeligt sprog, som udviklere derefter gennemgår for korrekthed og sikkerhed.

Opsummer dette indlæg med: