English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Quando il browser richiede una pagina web, invia una serie di informazioni che non possono essere lette direttamente al server di rete, poiché queste informazioni sono trasmesse come parte dell'intestazione HTTP. Puoi consultare il protocollo HTTP per ottenere ulteriori informazioni.
La tabella seguente elenca alcuni contenuti importanti delle intestazioni delle informazioni del browser, che saranno viste spesso nel programming di rete in futuro:
Informazioni | Descrizione |
---|---|
Accetta | Specificare il tipo MIME che il browser o altri client possono gestire. Il suo valore è solitamente image/png o image/jpeg |
Accept-Charset | Specifica il set di caratteri utilizzato dal browser. Ad esempio ISO-8859-1 |
Accept-Encoding | Specifica il tipo di codifica. Il suo valore di solito è gzip ocompress |
Accept-Language | Specifica la lingua preferita del client, il servlet restituirà preferibilmente un set di risultati in questa lingua, se il servlet la supporta. Ad esempio en, en-us, ru, ecc. |
Authorization | Riconosce diversi utenti quando si accede a pagine protette da password |
Connection | Indica se il client può gestire una connessione HTTP persistente. La connessione persistente permette al client o al browser di ottenere più file in una singola richiesta.Keep-Alive Indica che la connessione è persistente |
Content-Length | Applica solo alle richieste POST, rappresenta il numero di byte dei dati POST |
Cookie | Restituisce ai server i cookie precedentemente inviati al browser |
Host | Indica il nome dell'host e il numero di porta nell'URL originale |
If-Modified-Since | Indica che il client ha bisogno della pagina solo se la pagina è stata modificata dopo la data specificata. Il server invia un codice 304 al client per indicare che non ci sono risorse aggiornate |
If-Unmodified-Since | Contrariamente a If-Modified-Since, l'operazione avrà successo solo se il documento non è stato modificato dopo la data specificata |
Referer | Segna l'URL della pagina referenziata. Ad esempio, se sei sulla pagina 1 e clicchi su un link alla pagina 2, l'URL della pagina 1 verrà incluso nelle informazioni di intestazione della richiesta del browser per la pagina 2 |
User-Agent | Usato per distinguere le richieste inviate da diversi browser o client e restituire contenuti diversi per diversi tipi di browser |
L'oggetto request è un esempio della classe javax.servlet.http.HttpServletRequest. Ogni volta che il client richiede una pagina, il motore JSP crea un nuovo oggetto per rappresentare questa richiesta.
L'oggetto request fornisce una serie di metodi per ottenere intestazioni di informazioni HTTP, inclusi dati dei moduli, cookie, metodi HTTP, ecc.
Di seguito verranno presentati alcuni metodi comunemente utilizzati in JSP per ottenere informazioni di intestazione HTTP. Dettagli ulteriori sono disponibili nella tabella sottostante:
Numero di sequenza | Metodo& Descrizione |
---|---|
1 | Cookie[] getCookies() Restituisce un array di tutti i cookie del client |
2 | Enumeration getAttributeNames() Restituisce l'insieme di tutti i nomi degli attributi dell'oggetto request |
3 | Enumeration getHeaderNames() Restituisce l'insieme di tutti i nomi delle intestazioni HTTP |
4 | Enumeration getParameterNames() Restituisce l'insieme di tutti i parametri della richiesta |
5 | HttpSession getSession() Restituisce l'oggetto sessione corrispondente al request, se non esiste, crea una nuova sessione |
6 | HttpSession getSession(boolean create) Restituisce l'oggetto sessione corrispondente al request, se non esiste e il parametro create è true, restituisce una nuova sessione |
7 | Locale getLocale() Restituisce l'oggetto Locale della pagina corrente, che può essere impostato nella response |
8 | Object getAttribute(String name) Restituisce il valore dell'attributo con nome name, se non esiste restituisce null |
9 | ServletInputStream getInputStream() Restituisce lo stream di input della richiesta |
10 | String getAuthType() Restituisce il nome dello schema di autenticazione utilizzato per proteggere il servlet, ad esempio "BASIC" o "SSL" o null se il JSP non ha impostato misure di protezione |
11 | String getCharacterEncoding() Restituisce il nome dell'insieme di caratteri di codifica del request |
12 | String getContentType() Restituisce il tipo MIME del corpo del request, se sconosciuto restituisce null |
13 | String getContextPath() Restituisce il percorso contestuale indicato nel URI del request |
14 | String getHeader(String name) Restituisce l'intestazione informativa specificata da name |
15 | String getMethod() Restituisce il metodo HTTP di questo request, ad esempio GET, POST o PUT |
16 | String getParameter(String name) Restituisce il parametro specificato da name in questo request, se non esiste restituisce null |
17 | String getPathInfo() Restituisce qualsiasi percorso aggiuntivo associato all'URL di questo request |
18 | String getProtocol() Restituisce il nome e la versione del protocollo utilizzato da questo request |
19 | String getQueryString() Restituisce la stringa di ricerca inclusa nell'URL di questa richiesta |
20 | String getRemoteAddr() Restituisce l'indirizzo IP del client |
21 | String getRemoteHost() Restituisce il nome completo del client |
22 | String getRemoteUser() Restituisce l'utente autenticato del client, se l'utente non è autenticato restituisce null |
23 | String getRequestURI() Restituisce l'URI della richiesta |
24 | String getRequestedSessionId() Restituisce l'ID di sessione specificato dalla richiesta |
25 | String getServletPath() Restituisce il percorso del servlet richiesto |
26 | String[] getParameterValues(String name) Restituisce tutti i valori dei parametri specificati dal nome, se non esiste restituisce null |
27 | boolean isSecure() Restituisce se la richiesta ha utilizzato un canale crittografato, come HTTPS |
28 | int getContentLength() Restituisce il numero di byte contenuti nel corpo della richiesta, se sconosciuto restituisce -1 |
29 | int getIntHeader(String name) Restituisce il valore dell'intestazione di richiesta specificata |
30 | int getServerPort() Restituisce il numero di porta del server |
In questo esempio, utilizzeremo il metodo getHeaderNames() della classe HttpServletRequest per leggere le informazioni di intestazione HTTP. Questo metodo restituisce le informazioni di intestazione della richiesta HTTP attuale in forma di enum.
Dopo aver ottenuto l'oggetto Enumeration, utilizzare un metodo standard per esplorare l'oggetto Enumeration, utilizzare il metodo hasMoreElements() per determinare quando fermarsi e il metodo nextElement() per ottenere il nome di ogni parametro.
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"% <%@ page import="java.io.*,java.util.*" %> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>基础教程网(oldtoolbag.com)</title> </head> <body> <h2>HTTP 头部请求示例</h2> <table width="100%" border="1" align="center"> <tr bgcolor="#949494"> <th>Header Name</th><th>Header Value(s)</th> </tr> <% Enumeration headerNames = request.getHeaderNames(); while(headerNames.hasMoreElements()) { String paramName = (String)headerNames.nextElement(); out.print("<tr><td>" + paramName + "</td>\n"); String paramValue = request.getHeader(paramName); out.println("<td> " + paramValue + "</td></tr>\n"); } %> </table> </body> </html>
访问 main.jsp,将会得到以下结果:
您可以在上面的代码中尝试 HttpServletRequest 类的其他方法。