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.

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:
- Cookie[] getCookies() – returnerar en array som innehåller cookie-objekt som klienten har skickat
- Uppräkning getAttributeNames() – innehåller uppräkning av namn på attribut för begäran
- Uppräkning getHeaderNames() – innehåller en uppräkning av namn på rubriken.
- Uppräkning getParameterNames() – innehåller en uppräkning av att få parameternamn i begäran.
- 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.
- 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.
- Objekt getAttribute(String name) – returnerar värdet för ett namngivet attribut som ett objekt.
- ServletInputStream getInputStream() – hämtar begäran som binär data.
- Sträng getAuthType() – returnerar namnet på autentiseringsschemat för att skydda servlet
- Sträng getCharacterEncoding() – returnerar namnet på teckenkodningen som används i förfrågans brödtext.
- Sträng getContentType() – returnerar MIME-typen av texten för begäran.
- Sträng getContextPath() – returnerar delen av begäran URI anger kontextsökväg för URI
- String getHeader(String name) – returnerar förfrågningshuvudet som en sträng
- String getMethod() – returnerar namnet på HTTP-metoden som GET, POST
- String getParameter(String name) – returnerar parametern för begäran som en sträng.
- Sträng getPathInfo() – returnerar sökvägsinformationen som är associerad med URL
- Sträng getQueryString() – returnerar frågesträngen som är associerad med begäran URL
- Sträng getServletPath() – returnerar delen av URLs av begäran som anropar JSP:n
- 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:
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:
- SträngkodningOmdirigeringURL(Sträng URL) - kodar för URL i omdirigeringURL metod.
- SträngkodningURL(Sträng URL) - kodar för URL genom att inkludera sessions-ID.
- Boolean containsHeader(String name) – den innehåller en rubrik i JSP:n eller inte.
- Boolean isCommited() – svar har begåtts eller inte.
- Ogiltig addCookie(Cookie cookie) – lägger till cookie i svaret
- Void addDateHeader (strängnamn, strängvärde) – lägger till namn och värde för svarshuvudets datum
- Void addHeader (strängnamn, strängvärde) – lägger till svarshuvud med namn och värde
- Void addIntHeader(String name,int value) – lägger till svarshuvud med namn och heltalsvärde
- Ogiltig spolningBuffer() - tvingar innehållet i bufferten till utdata till klienten.
- Void reset() – rensar data i bufferten.
- Ogiltig återställningBuffer - rensar innehållsbufferten i svaret utan att rensa statuskoder.
- Ogiltig sendError(int sc,String msg) – skickar ett felsvar till klienten med hjälp av statuskod.
- Void sendRedirect (Strängplats) – skickar ett tillfälligt omdirigeringssvar till klienten.
- Tomt inställtBufferStorlek (int storlek) – ställer in buffertstorleken på kroppen
- Void setCharacterEncoding(String Charset) – ställer in teckenkodning
- Void setContentType(strängtyp) – anger innehållstypen för svaret
- Void setContentLength(int längd) – ställer in innehållslängden på svaret
- Void setLocale(Locale lcl) – ställer in lokaltyp för svaret
- 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:
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:
- 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
- Public void sendRedirect(String URL): Den genererar 302-svar tillsammans med platsrubriken som anger URL av det nya dokumentet
- 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.
- Statuskod – Det kan vara något av ovanstående. I det här fallet har vi beskrivit som 404
- 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:
Produktion:
Här får vi felkod 404, som skickades från koden och visar även "Guru Meddelandet "Sidan hittades inte" visas i utdata.



