Žádost klienta JSP

Akce JSP, které používají konstrukce v syntaxi XML k řízení chování servletového enginu. Dozvíme se podrobněji o různých prvcích akcí JSP, jako je požadavek klienta, odpověď serveru, stavové kódy HTTP.

Žádost klienta JSP

  • Když je webová stránka požadována, odešle informace na webový server v hlavičce HTTP.
  • Tyto informace můžeme použít pomocí objektu HTTPServletRequest.
  • Informace odeslané prohlížečem jsou uloženy v záhlaví požadavku HTTP požadavku.
  • K odesílání informací do objektu požadavku používáme různé hlavičky.

Záhlaví v JSP

Různé hlavičky v JSP jsou popsány níže:

Hlavička Description Příklad
akceptovat Určuje typy MIME, které prohlížeč nebo jiní klienti zvládnou Obrázek/png nebo obrázek/jpeg
Accept-charset K zobrazení informací používá znakovou sadu používanou prohlížečem ISO-8859-1
Accept- Kódování Určuje typ kódování zpracovávaného prohlížečem Gzip nebo komprimujte
Přijímací jazyk Specifikuje klienty zadaný jazyk En, en_us
Povolení Záhlaví používané klienty při pokusu o přístup na webové stránky chráněné heslem  
Přípojka Označuje, zda klient dokáže zpracovat trvalá připojení HTTP (prohlížeč může načíst více souborů) Udržet naživu
Obsahová délka Platí pro žádosti o zasílání příspěvků. Udává velikost dat příspěvku v bajtech  
sušenka Vrátí soubory cookie na server (ty, které byly dříve odeslány do prohlížeče)  
hostitel Určuje hostitele a port původní adresy URL  
Pokud byly od té doby změněny Označuje, že vyžaduje pouze stránku, pokud byla změněna nebo upravena  
Pokud od té doby nezměněno Označuje, že vyžaduje stránku pouze v případě, že nebyla změněna nebo upravena  
Referrer Označuje URL odkazující URL stránky  
Uživatelský agent Identifikuje prohlížeč nebo požadavek klienta  

Metody záhlaví HTTP v JSP

Ke čtení hlavičky HTTP na stránce JSP se používají následující metody:

  1. Cookie[] getCookies() – vrátí pole obsahující objekty cookie, které klient odeslal
  2. Výčet getAttributeNames() – obsahuje výčet jmen atributů pro požadavek
  3. Výčet getHeaderNames() – obsahuje výčet jmen hlavičky .
  4. Výčet getParameterNames() – obsahuje výčet získání názvů parametrů v požadavku.
  5. HttpSessiongetSession() – vrátí aktuální relaci spojenou s požadavkem, nebo pokud relaci nemá, vytvoří novou.
  6. Národní prostředí getLocale() – vrátí preferované národní prostředí, ve kterém klient přijme obsah. Bylo přiřazeno k odpovědi. Ve výchozím nastavení bude hodnotou výchozí národní prostředí serveru.
  7. Object getAttribute(název řetězce) – vrátí hodnotu pojmenovaného atributu jako objekt.
  8. ServletInputStreamgetInputStream() – načte tělo požadavku jako binární data.
  9. Řetězec getAuthType() – vrací název autentizačního schématu pro ochranu servletu
  10. Řetězec getCharacterEncoding() – vrací název kódování znaků použitého v těle požadavku.
  11. String getContentType() – vrací MIME typ těla požadavku.
  12. Řetězec getContextPath() – vrací část požadavku URI označuje kontextovou cestu URI
  13. String getHeader(název řetězce) – vrátí hlavičku požadavku jako řetězec
  14. String getMethod() – vrátí název metody HTTP jako GET, POST
  15. String getParameter(název řetězce) – vrátí parametr požadavku jako řetězec.
  16. Řetězec getPathInfo() – vrátí informace o cestě spojené s URL
  17. String getQueryString() – vrátí řetězec dotazu, který je přidružen k adrese URL požadavku
  18. Řetězec getServletPath() – vrátí část adres URL požadavku, která volá JSP
  19. String[] getParameterValues(název řetězce) – vrátí pole objektů typu string obsahující hodnoty, které má parametr požadavku

Příklad:

V níže uvedeném příkladu používáme různé metody pomocí objektu požadavku

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

%>

Vysvětlení kódu:

Code Řádek 17: Pomocí objektu požadavku získáváme objekt relace této konkrétní relace a získáme hodnotu objektu této relace

Code Řádek 19: Pomocí objektu požadavku získáváme národní prostředí této konkrétní relace i.een_US locale pro daný JSP.

Code Řádek 21: Pomocí objektu požadavku získáváme informace o cestě pro tento JSP. V tomto případě je null, protože není uvedena žádná cesta pro URL.

Code Řádek 23: Pomocí objektu požadavku získáváme kontextovou cestu, tj. kořenovou cestu

Code Řádek 25: Pomocí objektu požadavku získáváme název serveru.

Code Řádek 27: Pomocí objektu požadavku získáváme port serveru.

Code Řádek 29–35: Pomocí objektu požadavku získáváme názvy hlaviček, které vycházejí jako výčet, a proto dostáváme všechny hodnoty hlaviček v názvech hlaviček.

V tomto získáme všechny hodnoty záhlaví jako a sušenka, hostitel, připojení, přijmout jazyk, přijmout kódování.

Když spustíte výše uvedený kód, získáte následující výstup:

Žádost klienta JSP

Výstup:

Získáváme řadu hodnot, jako je název relace, název národního prostředí, název cesty, název serveru, název portu, hostitel, kontextová cesta a všechny hodnoty záhlaví. JSP.

Odezva serveru JSP

  • Když je požadavek zpracován a poté je z webového serveru vygenerována odpověď. Skládá se ze stavového řádku, záhlaví odpovědí, prázdného řádku a dokumentu.
  • Je to objekt třídy HTTPServletResponseclass, což je objekt odpovědi.
  • Stavový řádek je verze HTML.

Záhlaví odpovědí v JSP

Záhlaví odpovědí v JSP jsou zmíněna níže:

Hlavička Description
povolit Určuje metody požadavku jako GET, POST, které server požaduje
Ovládání mezipaměti Dokument odpovědi lze uložit do mezipaměti. Může být veřejný, soukromý a bez mezipaměti. Žádná mezipaměť neurčuje, že dokument by neměl být ukládán do mezipaměti
Přípojka Dává pokyn, zda má prohlížeč používat uložená připojení HTTPS nebo ne. Zavřít hodnota znamená, že prohlížeč by neměl používat persistent v HTTPConnections a „keep-alive“ znamená používat trvalá připojení
Obsah-dispozice Zeptat se uživatele, zda uložit odpověď na disk nebo ne
Kódování obsahu Stránka musí být během přenosu zakódována
Obsahová délka Počet bajtů v odpovědi
Typ obsahu Určuje typ MIME odpovědi
Vyprší Určuje, do kdy by měl být obsah považován za zastaralý a neměl by být uložen do mezipaměti
Poslední úprava Označuje, kdy byl dokument naposledy změněn
Aktuální poloha Měl by být součástí všech odpovědí, které mají stavový kód 300 jako stavový kód
Obnovit Určuje, jak najít aktualizovanou stránku.
Opakovat-poté Může být použit s odpovědí 503, aby řekl klientovi, jak brzy může opakovat požadavek
Nastavit soubor cookie Určuje soubor cookie spojený se stránkou

Metody záhlaví odpovědi HTTP v JSP

Níže jsou uvedeny metody v JSP pomocí objektu odpovědi:

  1. String encodeRedirectURL(String URL) – zakóduje adresu URL v metodě redirectURL.
  2. String encodeURL(String URL) – zakóduje adresu URL zahrnutím ID relace.
  3. Boolean obsahujeHeader (název řetězce) – obsahuje záhlaví v JSP nebo ne.
  4. Boolean isCommited() – odpověď byla učiněna nebo ne.
  5. Void addCookie (Cookie cookie) – přidá cookie do odpovědi
  6. Void addDateHeader(název řetězce, hodnota řetězce) – přidá datum hlavičky odpovědi, název a hodnotu
  7. Void addHeader(název řetězce, hodnota řetězce) – přidá hlavičku odpovědi s názvem a hodnotou
  8. Void addIntHeader(název řetězce, hodnota int) – přidá hlavičku odpovědi s názvem a celočíselnou hodnotou
  9. Void flushBuffer() - vynutí obsah ve vyrovnávací paměti na výstup klientovi.
  10. Void reset() – vymaže data ve vyrovnávací paměti.
  11. Void resetBuffer - vymaže obsah vyrovnávací paměti v odpovědi bez vymazání stavových kódů.
  12. Void sendError(intsc,Stringmsg) – odešle klientovi chybovou odpověď pomocí stavového kódu.
  13. Void sendRedirect (umístění řetězce) – odešle klientovi dočasnou odpověď přesměrování.
  14. Prázdná sadaBufferVelikost (int size) – nastavuje velikost vyrovnávací paměti těla
  15. Void setCharacterEncoding (znaková sada řetězce) – nastavuje kódování znaků
  16. Void setContentType (typ řetězce) – nastavuje typ obsahu odpovědi
  17. Void setContentLength(intlen) – nastavuje délku obsahu odpovědi
  18. Void setLocale(Locale lcl) – nastavuje typ národního prostředí odpovědi
  19. Void setStatus(intsc) – nastavuje stavový kód odpovědi

Příklad:

V tomto příkladu se zabýváme různými metodami getLocale, flushbuffer, getWriter, získat 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>

Vysvětlení kódu:

Code Řádek 13: Pomocí objektu odpovědi získáme objekt národního prostředí této relace JSP

Code Řádek 15: Pomocí objektu odpovědi se flushbuffer používá k vynucení obsahu vyrovnávací paměti do klienta

Code Řádek 16: Pomocí objektu odpovědi získáme objekt Writer, který dostane výstup ve výstupním proudu

Code Řádek 18: Pomocí objektu odpovědi získáme typ obsahu, tj. typ MIME objektu odpovědi

Code Řádek 21: Pomocí objektu odezvy se používá k automatickému načítání každých 5 sekund, protože 5 je nastaveno jako druhý parametr

Když spustíte výše uvedený kód, získáte následující výstup:

Odezva serveru JSP

Výstup:

  • Zde získáme výstup, protože je to z objektu writer z příkazu getWriter, což nám dává objekt a my ho můžeme vypsat do výstupního streamu.
  • Dostaneme národní prostředí jako en_us a typ obsahu jako text/html
  • Získáme znakovou sadu jako ISO 8859
  • Dnešní datum jako aktuální datum.

Stav HTTP JSP Codes

  • Když je požadavek zpracován, je vygenerována odpověď. Stavový řádek odpovědi se skládá z verze HTTP, stavového kódu a související zprávy.
  • Zpráva je přímo spojena se stavovým kódem a verzí HTTP a je určena serverem.
  • Ve výchozím nastavení je v JSP nastaveno 200 jako stavový kód, takže je nemusíme nastavovat explicitně.
  • Můžeme nastavit jako metodu response.setStatus().

Kódy spadají do následujících 5 kategorií:

  • 100-199 – Zde klient uvádí, že by měl reagovat nějakou akcí
  • 200-299 – Znamená, že požadavek byl úspěšný
  • 300-399 – Používají se pro soubory, které byly přesunuty a obvykle obsahují hlavičku umístění označující novou adresu
  • 400-499 – Označuje chybu klienta
  • 500-599 – Označuje chybu serveru

Některé běžné stavové kódy jsou uvedeny níže:

  • 200 – Označuje, že je vše v pořádku
  • 301 – Trvale se přestěhoval
  • 304 – Nezměněno od poslední změny
  • 400 – špatný požadavek
  • 404 nenalezeno
  • 405 – Metoda nenalezena
  • 500 – Interní chyba serveru
  • 503 služba nedostupná
  • 505 – verze HTTP není podporována

Stav HTTP Code Metody v JSP

Některé z metod stavového kódu v JSP jsou uvedeny níže:

  1. Public void setStatus(intstatusCode): Nastaví stavový kód podle toho, co chceme nastavit na této stránce JSP. To nám dá zprávu o nastaveném stavovém kódu
  2. Public void sendRedirect (String URL): Vygeneruje odpověď 302 spolu s hlavičkou umístění s URL nového dokumentu
  3. Public void sendError(intcode,Stringmsg): Odešle stavový kód spolu s krátkou zprávou a je naformátován v dokumentu HTML.

Příklad:

V tomto příkladu explicitně posíláme chybu na stránku JSP.

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

Vysvětlení kódu:

Code Řádek 10: Pomocí objektu odpovědi posíláme chybu na stránku se dvěma parametry.

  1. Stavový kód – Může to být kterýkoli z výše uvedených. V tomto případě jsme popsali jako 404
  2. Zpráva – Může to být jakákoli konkrétní zpráva, kterou chceme zobrazit chybu

Pokud provedete výše uvedený kód, získáte následující výstup:

Stav HTTP JSP Codes

Výstup:

Zde se nám zobrazí chybový kód 404, který byl odeslán z kódu a také se zobrazuje.Guru Ve výstupu se zobrazuje zpráva „Stránka nenalezena“.

Shrnutí

  • V tomto článku jsme se dozvěděli o požadavku klienta a odpovědi serveru o tom, jak je požadavek zachycen a jak se s odpověďmi manipuluje.
  • akce JSP které používají konstrukce v syntaxi XML k řízení chování servletového enginu.
  • Když je webová stránka požadována, odešle informace na webový server v hlavičce HTTP.
  • Když je požadavek zpracován a poté je z webového serveru vygenerována odpověď. Skládá se ze stavového řádku, záhlaví odpovědí, prázdného řádku a dokumentu.
  • Když je požadavek zpracován, je vygenerována odpověď. Stavový řádek odpovědi se skládá z verze HTTP, stavového kódu a související zprávy.

Shrňte tento příspěvek takto: