Richiesta del client JSP
⚡ Riepilogo intelligente
La richiesta del client JSP e la risposta del server utilizzano elementi di azione JSP per controllare il motore servlet. Il browser invia informazioni tramite intestazioni HTTP, il server restituisce una riga di stato e le relative intestazioni, e i codici di stato HTTP segnalano l'esito di ciascuna richiesta.

Le azioni JSP utilizzano costrutti nella sintassi XML per controllare il comportamento del motore servlet. Approfondiremo i vari elementi delle azioni JSP, come la richiesta del client, la risposta del server e i codici di stato HTTP.
Richiesta del client JSP
- Quando la pagina web viene richiesta, invia informazioni al server web nell'intestazione HTTP.
- Possiamo utilizzare queste informazioni utilizzando l'oggetto HTTPServletRequest.
- Le informazioni inviate dal browser vengono archiviate nell'intestazione della richiesta HTTP.
- Stiamo utilizzando intestazioni diverse per inviare informazioni all'oggetto della richiesta.
Intestazioni in JSP
Le diverse intestazioni in JSP sono descritte di seguito:
| testata | Descrizione | Esempio |
|---|---|---|
| Accetta | Specifica i tipi MIME che il browser o altri client possono gestire | Immagine/png o immagine/jpeg |
| Accetta set di caratteri | Utilizza il set di caratteri utilizzato dal browser per visualizzare le informazioni | ISO-8859-1 |
| Accetta: codifica | Specifica il tipo di codifica gestita dal browser | Gzip o comprimi |
| Accetta lingua | Specifica la lingua specificata dal client | En,en_noi |
| Autorizzazione | Intestazione utilizzata dai client quando tentano di accedere a pagine Web protette da password | |
| Connessione | Indica se il client può gestire connessioni HTTP persistenti (il browser può recuperare più file) | Mantieni vivo |
| Lunghezza del contenuto | Applicabile per pubblicare richieste. Fornisce la dimensione dei dati postali in byte | |
| Cookies | Restituisce i cookie al server (quelli precedentemente inviati al browser) | |
| ospite | Specifica l'host e la porta dell'originale URL | |
| Se modificato da allora | Indica che richiede solo una pagina se è stata cambiata o modificata | |
| Se non modificato da allora | Indica che richiede una pagina solo se non è stata cambiata o modificata | |
| Referente | Indica URL di riferimento URL pagina | |
| Agente utente | Identifica il browser o il client che effettua la richiesta |
Metodi di intestazione HTTP in JSP
Per leggere l'intestazione HTTP nella pagina JSP vengono utilizzati i seguenti metodi:
- Cookie[] getCookies() – restituisce un array contenente oggetti cookie che il client ha inviato
- Enumerazione getAttributeNames() – contiene l'enumerazione dei nomi degli attributi per la richiesta
- Enumerazione getHeaderNames() – contiene un elenco dei nomi delle intestazioni.
- Enumerazione getParameterNames() – contiene l'enumerazione dei nomi dei parametri da ottenere nella richiesta.
- HttpSession getSession() – restituisce la sessione corrente associata alla richiesta o se non ha una sessione ne creerà una nuova.
- Locale getLocale() – restituisce le impostazioni locali preferite in cui il client accetterà il contenuto. È stato assegnato alla risposta. Per impostazione predefinita, il valore sarà l'impostazione locale predefinita del server.
- Oggetto getAttribute(nome stringa) – restituisce il valore dell'attributo denominato come oggetto.
- ServletInputStream getInputStream() – Recupera il corpo della richiesta come dati binari.
- Stringa getAuthType() – restituisce il nome dello schema di autenticazione per proteggere il servlet
- Stringa getCharacterEncoding() – restituisce il nome della codifica dei caratteri utilizzata nel corpo della richiesta.
- Stringa getContentType() – restituisce il tipo MIME del corpo della richiesta.
- String getContextPath() – restituisce la parte dell'URI della richiesta indica il percorso di contesto dell'URI
- String getHeader(nome stringa) – restituisce l'intestazione della richiesta come una stringa
- String getMethod() – restituisce il nome del metodo HTTP come GET, POST
- String getParameter(nome stringa) – restituisce il parametro della richiesta come una stringa.
- Stringa getPathInfo() – restituisce le informazioni sul percorso associate al URL
- String getQueryString() – restituisce la stringa di query associata alla richiesta URL
- Stringa getServletPath() – restituisce la parte di URLdella richiesta che chiama la JSP
- String[] getParameterValues(nome stringa) – restituisce l'array di oggetti stringa contenenti i valori del parametro request
Esempio:
Nell'esempio seguente, stiamo utilizzando metodi diversi utilizzando l'oggetto richiesta
<%@ 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>"); } %>
Spiegazione del codice:
Code Linea 17: Utilizzando l'oggetto richiesta, otteniamo l'oggetto sessione di quella particolare sessione e otteniamo il valore dell'oggetto di quella sessione
Code Linea 19: Utilizzando l'oggetto request, otteniamo le impostazioni locali di quella specifica sessione, ovvero le impostazioni locali en_US per quella pagina JSP.
Code Linea 21: Utilizzando l'oggetto request, otteniamo le informazioni sul percorso per quella JSP. In questo caso, è null poiché non esiste un percorso per URL menzionato.
Code Linea 23: Utilizzando l'oggetto richiesta, otteniamo il percorso del contesto, ovvero il percorso root
Code Linea 25: Utilizzando l'oggetto richiesta, otteniamo il nome del server.
Code Linea 27: Utilizzando l'oggetto richiesta, otteniamo la porta del server.
Code Linea 29-35: Utilizzando l'oggetto richiesta, otteniamo nomi di intestazione che risultano come enumerazione e quindi otteniamo tutti i valori di intestazione nei nomi di intestazione.
In questo, otteniamo tutti i valori dell'intestazione come a Cookies , host, connessione, accetta lingua, accetta codifica.
Quando esegui il codice sopra, ottieni il seguente output:
Produzione:
Stiamo ottenendo la serie di valori come nome sessione, nome locale, nome percorso, nome server, nome porta, host, percorso contesto e tutti i valori di intestazione di quello JSP.
Risposta del server JSP
- Quando una richiesta viene elaborata e quindi la risposta viene generata dal server web. È costituito da una riga di stato, intestazioni di risposta, una riga vuota e un documento.
- Si tratta di un oggetto della classe HTTPServletResponse, che è un oggetto di risposta.
- La riga di stato è una versione di HTML.
Intestazioni di risposta in JSP
Le intestazioni di risposta in JSP sono menzionate di seguito:
| testata | Descrizione |
|---|---|
| Consentire | Specifica i metodi di richiesta come GET, POST richiesti dal server |
| Controllo della cache | Il documento di risposta può essere memorizzato nella cache. Può essere pubblico, privato e senza cache. Nessuna cache specifica che il documento non deve essere memorizzato nella cache |
| Connessione | Indica se il browser deve utilizzare o meno le connessioni HTTP salvate. Il valore Close indica che il browser non deve utilizzare connessioni persistenti in HTTP e "keep-alive" significa utilizzare connessioni persistenti |
| Disposizione dei contenuti | Per chiedere all'utente se salvare o meno la risposta su disco |
| Codifica del contenuto | La pagina deve essere codificata durante la trasmissione |
| Lunghezza del contenuto | Numero di byte nella risposta |
| Tipo di contenuto | Specifica il tipo MIME di risposta |
| Scade | Specifica fino a quando il contenuto dovrà essere considerato obsoleto e non dovrà essere memorizzato nella cache |
| Ultima modifica | Indica quando il documento è stato modificato l'ultima volta |
| Località | Dovrebbe essere incluso in tutte le risposte che hanno il codice di stato 300 come codice di stato |
| ricaricare | Specifica come trovare la pagina aggiornata. |
| Riprova dopo | Può essere utilizzato con la risposta 503 per indicare al client quanto presto potrà ripetere la richiesta |
| Set-biscotto | Specifica il cookie associato alla pagina |
Metodi di intestazione della risposta HTTP in JSP
Di seguito sono riportati i metodi in JSP che utilizzano l'oggetto risposta:
- Codifica stringaReindirizzamentoURL(Corda URL) - codifica il URL in reindirizzamentoURL metodo.
- Codifica della stringaURL(Corda URL) - codifica il URL includendo l'ID di sessione.
- Booleano contieneHeader(nome stringa) – contiene o meno un'intestazione nel JSP.
- Booleano isCommited() – la risposta è stata impegnata o meno.
- Void addCookie(Cookie cookie) – aggiunge cookie alla risposta
- Void addDateHeader(nome stringa, valore stringa) – aggiunge il nome e il valore della data dell'intestazione della risposta
- Void addHeader(nome stringa, valore stringa) – aggiunge l'intestazione della risposta con nome e valore
- Void addIntHeader(nome stringa, valore int) – aggiunge un'intestazione di risposta con nome e valore intero
- VuotoBuffer() - forza il contenuto del buffer nell'output verso il client.
- Ripristino vuoto() – cancella i dati nel buffer.
- Reset del vuotoBuffer - cancella il buffer del contenuto nella risposta senza cancellare i codici di stato.
- Void sendError(int sc,String msg) – invia una risposta di errore al client utilizzando il codice di stato.
- Void sendRedirect(Posizione stringa) – invia una risposta di reindirizzamento temporanea al client.
- Insieme vuotoBufferDimensione (dimensione intera) – imposta la dimensione del buffer del corpo
- Void setCharacterEncoding(stringa set di caratteri) – imposta la codifica dei caratteri
- Void setContentType(tipo stringa) – imposta il tipo di contenuto della risposta
- Void setContentLength(int len) – imposta la lunghezza del contenuto della risposta
- Void setLocale(Locale lcl) – imposta il tipo locale della risposta
- Void setStatus(int sc) – imposta il codice di stato della risposta
Esempio:
In questo esempio, trattiamo diversi metodi 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>
Spiegazione del codice:
Code Linea 13: Utilizzando l'oggetto risposta, otteniamo l'oggetto locale di questa sessione JSP
Code Linea 15: Utilizzando l'oggetto di risposta, flushbuffer viene utilizzato per forzare il contenuto del buffer nel client
Code Linea 16: Utilizzando l'oggetto risposta, otteniamo l'oggetto scrittore che ottiene l'output nel flusso di output
Code Linea 18: Utilizzando l'oggetto risposta, otteniamo il tipo di contenuto, ovvero il tipo MIME dell'oggetto risposta
Code Linea 21: Utilizzando l'oggetto di risposta, viene utilizzato per il caricamento automatico ogni 5 secondi poiché 5 è impostato come secondo parametro
Quando esegui il codice sopra, ottieni il seguente output:
Produzione:
- Qui otteniamo l'output poiché questo proviene dall'oggetto scrittore da getWriter, che ci fornisce l'oggetto e possiamo inviarlo al flusso di output.
- Otteniamo la locale come en_us e il tipo di contenuto come text/html
- Otteniamo il set di caratteri come ISO 8859
- La data odierna come data corrente.
Stato HTTP JSP Codes
- Quando la richiesta viene elaborata, viene generata la risposta. La riga di stato della risposta è composta dalla versione HTTP, da un codice di stato e da un messaggio associato.
- Il messaggio è direttamente associato al codice di stato e alla versione HTTP ed è determinato dal server.
- Per impostazione predefinita, 200 è impostato come codice di stato in JSP, quindi non è necessario impostarlo esplicitamente.
- Possiamo impostare come metodo Response.setStatus()
I codici rientrano nelle seguenti 5 categorie:
- 100-199 – Qui il cliente indica che dovrebbe rispondere con qualche azione
- 200-299 – Significa che la richiesta ha avuto successo
- 300-399 – Vengono utilizzati per i file che sono stati spostati e solitamente includono un'intestazione di posizione che indica il nuovo indirizzo
- 400-499 – Indica un errore da parte del client
- 500-599 – Indica un errore da parte del server
Di seguito sono riportati alcuni dei codici di stato comuni:
- 200 – Indica che va tutto bene
- 301 – Si è spostato definitivamente
- 304 – Non modificato dall'ultima modifica
- 400 – Richiesta errata
- 404 non trovato
- 405 – Metodo non trovato
- 500 - Errore interno del server
- 503 servizio non disponibile
- 505 – Versione HTTP non supportata
Stato HTTP Code Metodi in JSP
Alcuni dei metodi dei codici di stato in JSP sono elencati di seguito:
- Pubblico void setStatus(int statusCode): Imposta il codice di stato che vogliamo impostare in quella pagina JSP. Questo ci darà il messaggio del codice di stato che è stato impostato
- Pubblico void sendRedirect(String URL): Genera una risposta 302 insieme all'intestazione location che fornisce URL del nuovo documento
- Public void sendError(int code,String msg): Invia il codice di stato insieme al messaggio breve ed è formattato all'interno del documento HTML.
Esempio:
In questo esempio, stiamo inviando esplicitamente l'errore alla pagina 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>
Spiegazione del codice:
Code Linea 10: Utilizzando l'oggetto risposta stiamo inviando l'errore a una pagina con due parametri.
- Codice di stato: può essere uno qualsiasi dei precedenti. In questo caso, lo abbiamo descritto come 404
- Messaggio: può essere qualsiasi messaggio specifico che vogliamo mostrare l'errore
Se esegui il codice sopra, otterrai il seguente output:
Produzione:
Qui otteniamo il codice di errore 404, che è stato inviato dal codice e visualizza anche "Guru Messaggio "Pagina non trovata" visualizzato nell'output.



