Azioni JSP che utilizzano costrutti nella sintassi XML per controllare il comportamento del motore servlet. Impareremo più in dettaglio sui vari elementi di azione JSP come la richiesta del client, la risposta del server, i codici di stato HTTP.
In questo tutorial imparerai-
Richiesta client JSP
Risposta del server JSP
Codici di stato HTTP JSP
Richiesta client JSP
Quando la pagina Web viene richiesta, invia le informazioni al server Web nell'intestazione HTTP.
Possiamo utilizzare queste informazioni utilizzando l'oggetto HTTPServletRequest.
Le informazioni inviate dal browser vengono memorizzate nell'intestazione della richiesta HTTP.
Stiamo utilizzando intestazioni diverse per inviare informazioni all'oggetto richiesta.
Di seguito vengono descritte intestazioni diverse:
Intestazione
Descrizione
Esempio
Accettare
Specifica i tipi MIME che il browser o altri client possono gestire
Immagine / png o immagine / jpeg.webp
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 gestito dal browser
Comprimi o comprimi
Accetta la lingua
Specifica la lingua specificata dai client
En, en_us
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)
Keep-alive
Lunghezza del contenuto
Applicabile alle richieste di post. Fornisce la dimensione dei dati di post in byte
Cookie
Restituisce i cookie al server (quelli che erano stati precedentemente inviati al browser)
Ospite
Specifica l'host e la porta dell'URL originale
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 l'URL della pagina URL di riferimento
Agente utente
Identifica il browser o il client che effettua la richiesta
I seguenti metodi vengono utilizzati per leggere l'intestazione HTTP nella pagina JSP:
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
Enumeration getHeaderNames () - contiene l'enumerazione dei nomi dell'intestazione.
Enumerazione getParameterNames (): contiene l'enumerazione per ottenere i nomi dei parametri nella richiesta.
HttpSessiongetSession (): restituisce la sessione corrente associata alla richiesta o, se non ha una sessione, ne creerà una nuova.
Locale getLocale () - restituisce la locale preferita in cui il client accetterà il contenuto. È stata assegnata alla risposta. Per impostazione predefinita, il valore sarà la locale predefinita del server.
Object getAttribute (String name) - restituisce il valore dell'attributo denominato come oggetto.
ServletInputStreamgetInputStream () - recupera il corpo della richiesta come dati binari.
String getAuthType () - restituisce il nome dello schema di autenticazione per proteggere il servlet
String getCharacterEncoding (): restituisce il nome della codifica dei caratteri utilizzata nel corpo della richiesta.
String getContentType () - restituisce il tipo MIME del corpo della richiesta.
String getContextPath () - restituisce la parte dell'URI della richiesta che indica il percorso del contesto dell'URI
String getHeader (String name): restituisce l'intestazione della richiesta come stringa
String getMethod () - restituisce il nome del metodo HTTP come GET, POST
String getParameter (String name): restituisce il parametro della richiesta come stringa.
String getPathInfo (): restituisce le informazioni sul percorso associate all'URL
String getQueryString (): restituisce la stringa di query associata all'URL della richiesta
String getServletPath () - restituisce la parte degli URL della richiesta che chiama il JSP
String [] getParameterValues (String name) - restituisce l'array di oggetti stringa contenenti i valori di cui dispone il parametro request
Esempio:
Nell'esempio seguente, stiamo utilizzando diversi metodi utilizzando l'oggetto richiesta
Riga di codice 17: utilizzando l'oggetto richiesta, stiamo ottenendo l'oggetto sessione di quella particolare sessione e otteniamo il valore dell'oggetto di quella sessione
Riga di codice 19: utilizzando l'oggetto richiesta, stiamo ottenendo la locale di quella particolare sessione i.een_US locale per quel JSP.
Riga codice 21: utilizzando l'oggetto richiesta, stiamo ottenendo informazioni sul percorso per quel JSP. In questo caso, è nullo poiché non è menzionato alcun percorso per l'URL.
Riga di codice 23: Usando l'oggetto richiesta, stiamo ottenendo il percorso del contesto, cioè il percorso di root
Riga di codice 25: utilizzando l'oggetto richiesta, stiamo ottenendo il nome del server.
Riga di codice 27: utilizzando l'oggetto richiesta, stiamo ottenendo la porta del server.
Riga di codice 29-35: Usando l'oggetto richiesta, stiamo ottenendo nomi di intestazione che escono come enumerazione, e quindi otteniamo tutti i valori di intestazione nei nomi di intestazione.
In questo, otteniamo tutti i valori di intestazione come cookie, host, connessione, accetta la lingua, accetta la codifica.
Quando esegui il codice sopra, ottieni il seguente output:
Uscita :
Stiamo ottenendo la serie di valori come il nome della sessione, il nome della locale, il nome del percorso, il nome del server, il nome della porta, l'host, il percorso del contesto e tutti i valori di intestazione di quel JSP.
Risposta del server JSP
Quando viene elaborata una richiesta e la risposta viene generata dal server web. Consiste di una riga di stato, intestazioni di risposta, una riga vuota e un documento.
È l'oggetto di HTTPServletResponseclass, che è un oggetto risposta.
La riga di stato è una versione di HTML.
Le intestazioni delle risposte sono menzionate di seguito:
Intestazione
Descrizione
permettere
Specifica i metodi di richiesta come GET, POST che il server richiede
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 di chiusura indica che il browser non deve utilizzare connessioni persistenti in HTTPConnections e "keep-alive" significa utilizzare connessioni persistenti
Disposizione dei contenuti
Per chiedere all'utente se salvare o meno la risposta su disco
Codifica dei contenuti
La pagina deve essere codificata durante la trasmissione
Lunghezza del contenuto
Numero di byte nella risposta
Tipo di contenuto
Specifica il tipo di risposta MIME
Scade
Specifica fino a quando il contenuto deve essere considerato non aggiornato e non deve essere memorizzato nella cache
Ultima modifica
Indica quando il documento è stato modificato l'ultima volta
Posizione
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 cliente quanto tempo può ripetere la richiesta
Set-cookie
Specifica il cookie associato alla pagina
Di seguito sono riportati i metodi che utilizzano l'oggetto risposta:
String encodeRedirectURL (String URL): codifica l'URL nel metodo redirectURL.
String encodeURL (String URL): codifica l'URL includendo l'ID di sessione.
<%Locale lcl = response.getLocale ();out.println ("Locale is: + lcl + "\ n");response.flushBuffer ();Output di PrintWriter = response.getWriter ();output.println ("Questo è dall'oggetto writer");Tipo stringa = response.getContentType ();out.println ("Il tipo di contenuto: + tipo + "\ n");// Imposta l'aggiornamento, il tempo di caricamento automatico su 5 secondiresponse.setIntHeader ("Aggiorna", 5);// Ottieni l'ora correnteDate dt = new Date ();out.println ("La data odierna è: + dt.toString () + "\ n");%>
Spiegazione del codice:
Riga di codice 13: utilizzando l'oggetto risposta, otteniamo l'oggetto locale di questa sessione JSP
Riga di codice 15: utilizzando l'oggetto risposta, flushbuffer viene utilizzato per forzare il contenuto del buffer nel client
Riga di codice 16: utilizzando l'oggetto risposta, otteniamo l'oggetto scrittore che ottiene l'output nel flusso di output
Riga di codice18: Utilizzando l'oggetto risposta, otteniamo il tipo di contenuto, ovvero il tipo MIME dell'oggetto risposta
Riga di codice 21: utilizzando l'oggetto 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é proviene dall'oggetto writer da getWriter, che ci fornisce l'oggetto e possiamo produrre l'output nel flusso di output.
Otteniamo la locale come en_us e il tipo di contenuto come text / html
Otteniamo charset come ISO 8859
La data odierna come data corrente.
Codici di stato HTTP JSP
Quando la richiesta viene elaborata, viene generata la risposta. La riga di stato della risposta è composta dalla versione HTTP, un codice di stato e 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 in modo esplicito.
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 è andata a buon fine
300-399: vengono utilizzati per i file che sono stati spostati e di solito includono un'intestazione della posizione che indica il nuovo indirizzo
400-499 - Indica un errore del client
500-599: indica un errore del server
Alcuni dei codici di stato comuni sono di seguito:
200 - Indica che va tutto bene
301 - Si è trasferito definitivamente
304 - Non modificato dall'ultima modifica
400 - Cattiva richiesta
404 non trovato
405 - Metodo non trovato
500 - Errore interno del server
503 servizio non disponibile
505 - Versione HTTP non supportata
Alcuni dei suoi metodi sono elencati di seguito:
Public void setStatus (intstatusCode)
Imposta il codice di stato a seconda di quello che vogliamo impostare in quella pagina JSP Questo ci darà il messaggio del codice di stato che è stato impostato
Public void sendRedirect (String URL)
Genera una risposta 302 insieme all'intestazione della posizione che fornisce l'URL del nuovo documento
SendError void pubblico (intcode, Stringmsg)
Invia il codice di stato insieme al breve messaggio e viene 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"%> Codice di stato del guru <% response.sendError (404, "Guru Page Not Found"); %>
Spiegazione del codice:
Riga di codice 10: utilizzando l'oggetto risposta inviamo l'errore a una pagina con due parametri.
Codice di stato: può essere uno dei precedenti. In questo caso, abbiamo descritto come 404
Messaggio: può essere qualsiasi messaggio specifico in cui si desidera visualizzare l'errore
Se esegui il codice sopra, ottieni il seguente output:
Produzione:
Qui otteniamo il codice di errore 404, che è stato inviato dal codice e visualizza anche il messaggio "Pagina guru non trovata" visualizzato nell'output.
Sommario:
In questo articolo, abbiamo imparato a conoscere la richiesta del client e la risposta del server su come la richiesta viene intercettata e come vengono manipolate le risposte.
Inoltre, abbiamo imparato a conoscere i codici di stato HTTP per mostrare codici di errore o codici di successo per un particolare file.