JSP-klientförfrågan

⚡ Smart sammanfattning

JSP-klientförfrågningar och serversvar använder JSP-åtgärdselement för att styra servletmotorn. Webbläsaren skickar information via HTTP-rubriker, servern returnerar en statusrad och rubriker, och HTTP-statuskoder rapporterar resultatet av varje förfrågan.

  • 📨 Kundförfrågan: Webbläsaren skickar data till servern i HTTP-förfrågningsrubriker, lästa via HttpServletRequest.
  • 🧾 Rubriker för begäran: Acceptera, Acceptera-språk, Anslutning, Cookie, Värd och Användaragent beskriver klienten.
  • 📤 Serversvar: HttpServletResponse returnerar en statusrad, svarsrubriker och dokumentet.
  • 🔧 Svarsmetoder: addHeader(), sendRedirect(), sendError() och setStatus() formar svaret.
  • 🔢 Status Codes: Grupperade 100–599; vanliga inkluderar 200, 301, 404 och 500.
  • 🧪 Exempel: Fungerande JSP-sidor läser rubriker, anger ett uppdateringsintervall och skickar ett 404-fel.

JSP-klientförfrågan

JSP-åtgärder använder konstruktioner i XML-syntax för att styra servletmotorns beteende. Vi kommer att lära oss mer i detalj om olika JSP-åtgärdselement som klientförfrågningar, serversvar och HTTP-statuskoder.

JSP-klientförfrågan

  • När webbsidan efterfrågas skickar den information till webbservern i HTTP-huvudet.
  • Vi kan använda denna information med hjälp av objektet HTTPServletRequest.
  • Information som skickas av webbläsaren lagras i förfrågningshuvudet för HTTP-förfrågan.
  • Vi använder olika rubriker för att skicka information till förfrågningsobjektet.

Rubriker i JSP

Olika rubriker i JSP beskrivs nedan:

Sidhuvud BESKRIVNING Exempelvis
Acceptera Den anger MIME-typer som webbläsaren eller andra klienter kan hantera Bild/png eller bild/jpeg
Acceptera-teckenuppsättning Den använder teckenuppsättningen som används av webbläsaren för att visa informationen ISO-8859-1
Acceptera- Kodning Den anger typ av kodning som hanteras av webbläsaren Gzip eller komprimera
Acceptera-språk Det specificerar klientens angivna språk En,en_us
Tillstånd Rubrik som används av klienter när de försöker komma åt lösenordsskyddade webbsidor
förbindelse Det indikerar om klienten kan hantera beständiga HTTP-anslutningar (webbläsaren kan hämta flera filer) Håll vid liv
Innehållslängd Gäller för postförfrågningar. Det ger storleken på postdata av byte
Cookies Returnerar cookie till servern (de som tidigare skickats till webbläsaren)
Host Anger värd och port för originalet URL
Om modifierad sedan Det indikerar att den endast kräver en sida om den har ändrats eller modifierats
Om oförändrad sedan Det indikerar att den endast kräver en sida om den inte har ändrats eller modifierats
Hänvisningsadress Tyder på URL att hänvisa URL sida
Användaragent Identifierar webbläsare eller klient som gör begäran

HTTP Header-metoder i JSP

Följande metoder används för att läsa HTTP-huvudet på JSP-sidan:

  1. Cookie[] getCookies() – returnerar en array som innehåller cookie-objekt som klienten har skickat
  2. Uppräkning getAttributeNames() – innehåller uppräkning av namn på attribut för begäran
  3. Uppräkning getHeaderNames() – innehåller en uppräkning av namn på rubriken.
  4. Uppräkning getParameterNames() – innehåller en uppräkning av att få parameternamn i begäran.
  5. HttpSession getSession() – returnerar den aktuella sessionen som är kopplad till begäran eller om den inte har en session kommer den att skapa en ny.
  6. Locale getLocale() – returnerar den föredragna lokalen som klienten kommer att acceptera innehåll i. Den har tilldelats svaret. Som standard kommer värdet att vara standardlokalen för servern.
  7. Objekt getAttribute(String name) – returnerar värdet för ett namngivet attribut som ett objekt.
  8. ServletInputStream getInputStream() – hämtar begäran som binär data.
  9. Sträng getAuthType() – returnerar namnet på autentiseringsschemat för att skydda servlet
  10. Sträng getCharacterEncoding() – returnerar namnet på teckenkodningen som används i förfrågans brödtext.
  11. Sträng getContentType() – returnerar MIME-typen av texten för begäran.
  12. Sträng getContextPath() – returnerar delen av begäran URI anger kontextsökväg för URI
  13. String getHeader(String name) – returnerar förfrågningshuvudet som en sträng
  14. String getMethod() – returnerar namnet på HTTP-metoden som GET, POST
  15. String getParameter(String name) – returnerar parametern för begäran som en sträng.
  16. Sträng getPathInfo() – returnerar sökvägsinformationen som är associerad med URL
  17. Sträng getQueryString() – returnerar frågesträngen som är associerad med begäran URL
  18. Sträng getServletPath() – returnerar delen av URLs av begäran som anropar JSP:n
  19. String[] getParameterValues(String name) – returnerar arrayen av strängobjekt som innehåller värdena som begäran-parametern har

Exempel:

I exemplet nedan använder vi olika metoder med request object

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

%>

Förklaring av koden:

Code Linje 17: Genom att använda förfrågningsobjekt får vi sessionsobjektet för den särskilda sessionen, och vi får objektvärdet för den sessionen

Code Linje 19: Med hjälp av request-objektet får vi språkinställningen för den specifika sessionen, dvs. en_US-språkinställningen för den JSP:n.

Code Linje 21: Med hjälp av request-objektet hämtar vi sökvägsinformation för den JSP:n. I det här fallet är den null eftersom det inte finns någon sökväg för URL nämns.

Code Linje 23: Genom att använda förfrågningsobjekt får vi kontextsökväg, dvs rotväg

Code Linje 25: Genom att använda request object får vi servernamnet.

Code Linje 27: Genom att använda request object får vi serverport.

Code Rad 29-35: Genom att använda förfrågningsobjekt får vi rubriknamn som kommer ut som uppräkning, och därför får vi alla rubrikvärden i rubriknamnen.

I detta får vi alla rubrikvärden som en Cookies, värd, anslutning, acceptera språk, acceptera kodning.

När du kör ovanstående kod får du följande utdata:

JSP-klientförfrågan

Produktion:

Vi får en serie värden som sessionsnamn, lokalnamn, sökvägsnamn, servernamn, portnamn, värd, kontextsökväg och alla rubrikvärden för det JSP.

JSP-serversvar

  • När en begäran behandlas och sedan genereras svaret från webbservern. Den består av en statusrad, svarsrubriker, en tom rad och dokument.
  • Det är objektet för HTTPServletResponse-klassen, som är ett svarsobjekt.
  • Statusraden är en version av HTML.

Svarsrubriker i JSP

Svarsrubriker i JSP nämns nedan:

Sidhuvud BESKRIVNING
Tillåt Den specificerar förfrågningsmetoderna som GET, POST som servern begär
Cache-kontroll Svarsdokumentet kan cachelagras. Det kan vara offentligt, privat och utan cache. Ingen cache anger att dokument inte ska cachelagras
förbindelse Den instruerar om webbläsaren ska använda sparadeHTTPConnections eller inte. Stängt värde representerar att webbläsaren inte ska använda persistent i HTTPConnections och "keep-alive" betyder att man använder persistenta anslutningar
Innehålls-disposition För att fråga användaren om svaret ska sparas på disk eller inte
Innehållskodning Sidan måste kodas under överföringen
Innehållslängd Antal byte i svaret
Typ av innehåll Den anger MIME-typen av svar
Utgår Anger tills när innehållet ska anses föråldrat och inte ska cachelagras
Senast ändrad Den indikerar när dokumentet senast ändrades
Plats Den ska inkluderas med alla svar som har statuskod har 300 som statuskod
refresh Den anger hur du hittar den uppdaterade sidan.
Försök igen efter Den kan användas med 503-svar för att berätta för klienten om hur snart den kan upprepa begäran
Set-cookie Anger den cookie som är kopplad till sidan

HTTP-svarshuvudmetoder i JSP

Följande är metoderna i JSP som använder responsobjekt:

  1. SträngkodningOmdirigeringURL(Sträng URL) - kodar för URL i omdirigeringURL metod.
  2. SträngkodningURL(Sträng URL) - kodar för URL genom att inkludera sessions-ID.
  3. Boolean containsHeader(String name) – den innehåller en rubrik i JSP:n eller inte.
  4. Boolean isCommited() – svar har begåtts eller inte.
  5. Ogiltig addCookie(Cookie cookie) – lägger till cookie i svaret
  6. Void addDateHeader (strängnamn, strängvärde) – lägger till namn och värde för svarshuvudets datum
  7. Void addHeader (strängnamn, strängvärde) – lägger till svarshuvud med namn och värde
  8. Void addIntHeader(String name,int value) – lägger till svarshuvud med namn och heltalsvärde
  9. Ogiltig spolningBuffer() - tvingar innehållet i bufferten till utdata till klienten.
  10. Void reset() – rensar data i bufferten.
  11. Ogiltig återställningBuffer - rensar innehållsbufferten i svaret utan att rensa statuskoder.
  12. Ogiltig sendError(int sc,String msg) – skickar ett felsvar till klienten med hjälp av statuskod.
  13. Void sendRedirect (Strängplats) – skickar ett tillfälligt omdirigeringssvar till klienten.
  14. Tomt inställtBufferStorlek (int storlek) – ställer in buffertstorleken på kroppen
  15. Void setCharacterEncoding(String Charset) – ställer in teckenkodning
  16. Void setContentType(strängtyp) – anger innehållstypen för svaret
  17. Void setContentLength(int längd) – ställer in innehållslängden på svaret
  18. Void setLocale(Locale lcl) – ställer in lokaltyp för svaret
  19. Ogiltig setStatus(int sc) – ställer in statuskoden för svaret

Exempel:

I det här exemplet behandlar vi olika metoder: getLocale, flushbuffer, 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>

Förklaring av koden:

Code Linje 13: Med hjälp av responsobjekt får vi lokalobjekt för denna JSP-session

Code Linje 15: Med hjälp av responsobjekt används flushbuffer för att tvinga in buffertinnehållet i klienten

Code Linje 16: Med hjälp av responsobjekt får vi writer-objekt som får utdata i utdataströmmen

Code Linje 18: Med responsobjekt får vi innehållstyp dvs MIME-typ av responsobjekt

Code Linje 21: Med responsobjekt används det för att autoladda var 5:e sekund eftersom 5 är inställd som den andra parametern

När du kör ovanstående kod får du följande utdata:

JSP-serversvar

Produktion:

  • Här får vi utdata eftersom detta är från writer-objektet från getWriter, vilket ger oss objektet och vi kan mata ut i utdataströmmen.
  • Vi får lokalen som en_us och innehållstyp som text/html
  • Vi får teckeninställning som ISO 8859
  • Dagens datum som aktuellt datum.

JSP HTTP-status Codes

  • När begäran behandlas genereras svaret. Svarsstatusraden består av HTTP-version, en statuskod och ett tillhörande meddelande.
  • Meddelandet är direkt kopplat till statuskoden och HTTP-versionen, och det bestäms av servern.
  • Som standard är 200 inställd som en statuskod i JSP, så vi behöver inte ställa in explicit.
  • Vi kan ställa in som response.setStatus() metod

Koderna delas in i följande 5 kategorier:

  • 100-199 – Här indikerar klienten att den ska svara med någon åtgärd
  • 200-299 – Det betyder att begäran är framgångsrik
  • 300-399 – De används för filer som har flyttats och innehåller vanligtvis en platsrubrik som anger ny adress
  • 400-499 – Indikerar fel av klienten
  • 500-599 – Indikerar fel från servern

Några av de vanliga statuskoderna är nedan:

  • 200 – Indikerar att allt är bra
  • 301 – Den har flyttat permanent
  • 304 – Ej modifierad sedan senaste ändring
  • 400 Dålig Förfrågan
  • 404 Ej Hittad
  • 405 – Metoden hittades inte
  • 500 – Internt serverfel
  • 503 Tjänst Otillgänglig
  • 505 – HTTP-version stöds inte

HTTP -status Code Metoder i JSP

Några av statuskodmetoderna i JSP listas nedan:

  1. Public void setStatus(int statusCode): Den ställer in statuskoden som vi vill ställa in på den JSP-sidan. Detta kommer att ge oss meddelandet om statuskoden som har ställts in
  2. Public void sendRedirect(String URL): Den genererar 302-svar tillsammans med platsrubriken som anger URL av det nya dokumentet
  3. Public void sendError(int kod,String meddelande): Den skickar statuskoden tillsammans med det korta meddelandet och det formateras i HTML-dokument.

Exempel:

I det här exemplet skickar vi ett felmeddelande till JSP-sidan uttryckligen.

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

Förklaring av koden:

Code Linje 10: Med hjälp av responsobjekt skickar vi felet till en sida med två parametrar.

  1. Statuskod – Det kan vara något av ovanstående. I det här fallet har vi beskrivit som 404
  2. Meddelande – Det kan vara vilket specifikt meddelande som helst som vi vill visa felet

Om du kör ovanstående kod får du följande utdata:

JSP HTTP-status Codes

Produktion:

Här får vi felkod 404, som skickades från koden och visar även "Guru Meddelandet "Sidan hittades inte" visas i utdata.

Vanliga frågor

HttpServletRequest bär data som skickas av klienten till servern, såsom rubriker och parametrar. HttpServletResponse bär data som skickas tillbaka från servern, inklusive statuskoder, svarsrubriker och dokumentinnehåll.

Statuskod 404 betyder att den begärda resursen inte hittades på servern. I JSP kan du skicka den explicit med response.sendError(404, “message”) för att visa en anpassad sida där den inte hittades.

Använd request-objektet: getHeaderNames() returnerar en uppräkning av headernamn, och getHeader(namn) returnerar varje headervärde. Iterera över namnen för att läsa varje header som skickas av klienten.

AI kan analysera headerloggar, flagga saknade eller felkonfigurerade headers, upptäcka säkerhetsproblem som avsaknad av cachekontroll och sammanfatta trafikmönster.ping utvecklare felsöker och optimerar hanteringen av förfrågningar och svar snabbare.

Ja. AI kan generera JSP-skript som läser förfrågningsparametrar och rubriker, ställer in svarsrubriker och skickar statuskoder från en beskrivning i enkelt språk, som utvecklare sedan granskar för korrekthet och säkerhet.

Sammanfatta detta inlägg med: