Richiesta client JSP, risposta del server e amp; Codici di stato HTTP

Sommario:

Anonim

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:

  1. Cookie [] getCookies () - restituisce un array contenente oggetti cookie che il client ha inviato
  2. Enumerazione getAttributeNames () - contiene l'enumerazione dei nomi degli attributi per la richiesta
  3. Enumeration getHeaderNames () - contiene l'enumerazione dei nomi dell'intestazione.
  4. Enumerazione getParameterNames (): contiene l'enumerazione per ottenere i nomi dei parametri nella richiesta.
  5. HttpSessiongetSession (): restituisce la sessione corrente associata alla richiesta o, se non ha una sessione, ne creerà una nuova.
  6. 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.
  7. Object getAttribute (String name) - restituisce il valore dell'attributo denominato come oggetto.
  8. ServletInputStreamgetInputStream () - recupera il corpo della richiesta come dati binari.
  9. String getAuthType () - restituisce il nome dello schema di autenticazione per proteggere il servlet
  10. String getCharacterEncoding (): restituisce il nome della codifica dei caratteri utilizzata nel corpo della richiesta.
  11. String getContentType () - restituisce il tipo MIME del corpo della richiesta.
  12. String getContextPath () - restituisce la parte dell'URI della richiesta che indica il percorso del contesto dell'URI
  13. String getHeader (String name): restituisce l'intestazione della richiesta come stringa
  14. String getMethod () - restituisce il nome del metodo HTTP come GET, POST
  15. String getParameter (String name): restituisce il parametro della richiesta come stringa.
  16. String getPathInfo (): restituisce le informazioni sul percorso associate all'URL
  17. String getQueryString (): restituisce la stringa di query associata all'URL della richiesta
  18. String getServletPath () - restituisce la parte degli URL della richiesta che chiama il JSP
  19. 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

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1" pageEncoding = "ISO-8859-1"%><% @ page import = "java.io. * java.util. *"%> Client Request Guru JSP 

Client Request Guru JSP

<%HttpSession gurusession = request.getSession ();out.print (" ");Locale gurulocale = request.getLocale ();out.print (" ");Percorso stringa = request.getPathInfo ();out.print (" ");String lpath = request.get ();out.print (" ");Stringa servername = request.getServerName ();out.print (" ");int portname = request.getServerPort ();out.print (" ");Enumerazione hnames = request.getHeaderNames ();while (hnames.hasMoreElements ()) {String paramName = (String) hnames.nextElement ();out.print (" ");String paramValue = request.getHeader (paramName);out.println (" ");}%>

Spiegazione del codice:

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:

guru header guru header Value (s)
Il nome della sessione è " + gurusession + "
Locale Name is " + gurulocale + "
Il nome del percorso è " + percorso + "
Il percorso del contesto è " + lipath + "
Il nome del server è " + servername + "
La porta del server è " + portname + "
" + paramName + "" + paramValue + "
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:

  1. String encodeRedirectURL (String URL): codifica l'URL nel metodo redirectURL.
  2. String encodeURL (String URL): codifica l'URL includendo l'ID di sessione.
  3. Boolean containsHeader (String name) - contiene un'intestazione nel JSP oppure no.
  4. Boolean isCommited () - la risposta è stata confermata o meno.
  5. Void addCookie (Cookie cookie): aggiunge un cookie alla risposta
  6. Void addDateHeader (nome stringa, valore stringa): aggiunge il nome e il valore della data dell'intestazione della risposta
  7. Void addHeader (nome stringa, valore stringa): aggiunge l'intestazione della risposta con nome e valore
  8. Void addIntHeader (String name, int value) - aggiunge l'intestazione della risposta con il nome e il valore intero
  9. Void flushBuffer () - forza il contenuto nel buffer all'output del client.
  10. Void reset (): cancella i dati nel buffer.
  11. Void resetBuffer: cancella il buffer del contenuto nella risposta senza cancellare i codici di stato.
  12. Void sendError (intsc, Stringmsg) - invia una risposta di errore al client utilizzando il codice di stato.
  13. Void sendRedirect (String location): invia una risposta di reindirizzamento temporanea al client.
  14. Void setBufferSize (int size) - imposta la dimensione del buffer del corpo
  15. Void setCharacterEncoding (String charset) - imposta la codifica dei caratteri
  16. Void setContentType (String type): imposta il tipo di contenuto della risposta
  17. Void setContentLength (intlen): imposta la lunghezza del contenuto della risposta
  18. Void setLocale (Locale lcl) - imposta il tipo di locale della risposta
  19. Void setStatus (intsc) - imposta il codice di stato della risposta

Esempio:

In questo esempio, stiamo trattando diversi metodi getLocale, flushbuffer, getWriter, get ContentType, setIntHeader.

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1" pageEncoding = "ISO-8859-1"%><% @ page import = "java.io. * java.util. *"%> Guru Action Response 

Risposta del guru

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

  1. 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

  2. Public void sendRedirect (String URL)

    Genera una risposta 302 insieme all'intestazione della posizione che fornisce l'URL del nuovo documento

  3. 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.

  1. Codice di stato: può essere uno dei precedenti. In questo caso, abbiamo descritto come 404
  2. 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.