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.

  • ๐Ÿ“จ Richiesta del cliente: Il browser invia i dati al server nelle intestazioni della richiesta HTTP, lette tramite HttpServletRequest.
  • ๐Ÿงพ Intestazioni richieste: I parametri Accept, Accept-language, Connection, Cookie, Host e User-agent descrivono il client.
  • ๐Ÿ“ค Risposta del server: HttpServletResponse restituisce una riga di stato, le intestazioni della risposta e il documento.
  • ๐Ÿ”ง Metodi di risposta: Le funzioni addHeader(), sendRedirect(), sendError() e setStatus() modellano la risposta.
  • ๐Ÿ”ข Stato Codes: I numeri sono suddivisi in gruppi da 100 a 599; i piรน comuni includono 200, 301, 404 e 500.
  • ๐Ÿงช Esempi: Le pagine JSP funzionanti leggono le intestazioni, impostano un intervallo di aggiornamento e inviano un errore 404.

Richiesta del client JSP

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:

  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. Enumerazione getHeaderNames() โ€“ contiene un elenco dei nomi delle intestazioni.
  4. Enumerazione getParameterNames() โ€“ contiene l'enumerazione dei nomi dei parametri da ottenere nella richiesta.
  5. HttpSession getSession() โ€“ restituisce la sessione corrente associata alla richiesta o se non ha una sessione ne creerร  una nuova.
  6. 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.
  7. Oggetto getAttribute(nome stringa) โ€“ restituisce il valore dell'attributo denominato come oggetto.
  8. ServletInputStream getInputStream() โ€“ Recupera il corpo della richiesta come dati binari.
  9. Stringa getAuthType() โ€“ restituisce il nome dello schema di autenticazione per proteggere il servlet
  10. Stringa getCharacterEncoding() โ€“ restituisce il nome della codifica dei caratteri utilizzata nel corpo della richiesta.
  11. Stringa getContentType() โ€“ restituisce il tipo MIME del corpo della richiesta.
  12. String getContextPath() โ€“ restituisce la parte dell'URI della richiesta indica il percorso di contesto dell'URI
  13. String getHeader(nome stringa) โ€“ restituisce l'intestazione della richiesta come una stringa
  14. String getMethod() โ€“ restituisce il nome del metodo HTTP come GET, POST
  15. String getParameter(nome stringa) โ€“ restituisce il parametro della richiesta come una stringa.
  16. Stringa getPathInfo() โ€“ restituisce le informazioni sul percorso associate al URL
  17. String getQueryString() โ€“ restituisce la stringa di query associata alla richiesta URL
  18. Stringa getServletPath() โ€“ restituisce la parte di URLdella richiesta che chiama la JSP
  19. 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:

Richiesta del client JSP

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:

  1. Codifica stringaReindirizzamentoURL(Corda URL) - codifica il URL in reindirizzamentoURL metodo.
  2. Codifica della stringaURL(Corda URL) - codifica il URL includendo l'ID di sessione.
  3. Booleano contieneHeader(nome stringa) โ€“ contiene o meno un'intestazione nel JSP.
  4. Booleano isCommited() โ€“ la risposta รจ stata impegnata o meno.
  5. Void addCookie(Cookie cookie) โ€“ aggiunge 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(nome stringa, valore int) โ€“ aggiunge un'intestazione di risposta con nome e valore intero
  9. VuotoBuffer() - forza il contenuto del buffer nell'output verso il client.
  10. Ripristino vuoto() โ€“ cancella i dati nel buffer.
  11. Reset del vuotoBuffer - cancella il buffer del contenuto nella risposta senza cancellare i codici di stato.
  12. Void sendError(int sc,String msg) โ€“ invia una risposta di errore al client utilizzando il codice di stato.
  13. Void sendRedirect(Posizione stringa) โ€“ invia una risposta di reindirizzamento temporanea al client.
  14. Insieme vuotoBufferDimensione (dimensione intera) โ€“ imposta la dimensione del buffer del corpo
  15. Void setCharacterEncoding(stringa set di caratteri) โ€“ imposta la codifica dei caratteri
  16. Void setContentType(tipo stringa) โ€“ imposta il tipo di contenuto della risposta
  17. Void setContentLength(int len) โ€“ imposta la lunghezza del contenuto della risposta
  18. Void setLocale(Locale lcl) โ€“ imposta il tipo locale della risposta
  19. 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:

Risposta del server JSP

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:

  1. 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
  2. Pubblico void sendRedirect(String URL): Genera una risposta 302 insieme all'intestazione location che fornisce URL del nuovo documento
  3. 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.

  1. Codice di stato: puรฒ essere uno qualsiasi dei precedenti. In questo caso, lo abbiamo descritto come 404
  2. Messaggio: puรฒ essere qualsiasi messaggio specifico che vogliamo mostrare l'errore

Se esegui il codice sopra, otterrai il seguente output:

Stato HTTP JSP Codes

Produzione:

Qui otteniamo il codice di errore 404, che รจ stato inviato dal codice e visualizza anche "Guru Messaggio "Pagina non trovata" visualizzato nell'output.

DOMANDE FREQUENTI

HttpServletRequest contiene i dati inviati dal client al server, come intestazioni e parametri. HttpServletResponse contiene i dati inviati dal server, inclusi i codici di stato, le intestazioni di risposta e il contenuto del documento.

Il codice di stato 404 indica che la risorsa richiesta non รจ stata trovata sul server. In JSP, รจ possibile inviarlo esplicitamente con response.sendError(404, "message") per visualizzare una pagina di errore personalizzata.

Utilizza l'oggetto request: getHeaderNames() restituisce un'enumerazione di nomi di intestazione e getHeader(name) restituisce il valore di ciascuna intestazione. Itera sui nomi per leggere tutte le intestazioni inviate dal client.

L'IA puรฒ analizzare i log delle intestazioni, segnalare le intestazioni mancanti o configurate in modo errato, rilevare problemi di sicurezza come l'assenza di controllo della cache e riassumere i modelli di traffico, aiutandoping Gli sviluppatori eseguono il debug e ottimizzano piรน rapidamente la gestione delle richieste e delle risposte.

Sรฌ. L'intelligenza artificiale puรฒ generare script JSP che leggono i parametri e le intestazioni delle richieste, impostano le intestazioni delle risposte e inviano codici di stato a partire da una descrizione in linguaggio naturale, che gli sviluppatori poi esaminano per verificarne la correttezza e la sicurezza.

Riassumi questo post con: