English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Wenn der Browser eine Webseite anfordert, sendet er eine Reihe von Informationen, die nicht direkt gelesen werden können, an den Netzwerkserver, da diese Informationen als Teil der HTTP-Headerinformationen übertragen werden. Sie können die HTTP-Protokolle überprüfen, um mehr Informationen zu erhalten.
Die folgende Tabelle listet einige wichtige Inhalte der Headerinformationen auf der Browserseite auf, die in zukünftigen Netzwerkprogrammierungen häufig vorkommen werden:
Informationen | Beschreibung |
---|---|
Accept | Bestimmt die MIME-Typen, die der Browser oder andere Clients verarbeiten können. Sein Wert ist normalerweise image/png oder image/jpeg |
Accept-Charset | Bestimmt den Zeichensatz, den der Browser verwenden soll. Zum Beispiel ISO-8859-1 |
Accept-Encoding | Bestimmt den Zeichensatztyp. Sein Wert ist normalerweise gzip odercompress |
Accept-Language | Bestimmt die bevorzugte Sprache des Clients, der Servlet gibt priorisierte Ergebnisse in der aktuellen Sprache zurück, wenn der Servlet diese Sprache unterstützt. Zum Beispiel en, en-us, ru usw. |
Authorization | Identifiziert verschiedene Benutzer bei der Zugangskontrolle zu Webseiten, die mit Passwörtern geschützt sind |
Connection | Zeigt an, ob der Client HTTP-persistente Verbindungen verarbeiten kann. Persistente Verbindungen ermöglichen es dem Client oder Browser, mehrere Dateien in einer Anfrage zu erhalten.Keep-Alive Zeigt an, dass eine persistente Verbindung aktiviert ist |
Content-Length | Nur für POST-Anfragen, zeigt die Anzahl der Bytes der POST-Daten an |
Cookie | Sendet先前发送给浏览器的cookies an den Server zurück |
Host | Gibt den Hostnamen und den Port der ursprünglichen URL an |
If-Modified-Since | Zeigt an, dass der Client die Seite benötigt, wenn die Seite am angegebenen Datum geändert wurde. Der Server sendet304Code an den Client gesendet, um anzuzeigen, dass keine aktualisierten Ressourcen vorhanden sind |
If-Unmodified-Since | Mit If-Modified-Seit dem Gegenteil, wird der Vorgang nur erfolgreich, wenn das Dokument nach dem angegebenen Datum noch nicht geändert wurde |
Referer | Markiert die URL der zitierten Seite. Zum Beispiel, wenn Sie auf der Seite1, und klickte dann auf einen Link zur Seite2, dann die Seite1URL enthält in der Anfrage des Browsers nach der Seite2Die Headerinformationen |
User-Agent | zur Unterscheidung zwischen verschiedenen Browsern oder Clients, die Anfragen senden, und zur Rückgabe verschiedener Inhalte für verschiedene Arten von Browsern |
Das request-Objekt ist ein Beispiel für die Klasse javax.servlet.http.HttpServletRequest. Jedes Mal, wenn ein Client eine Seite anfordert, erzeugt der JSP-Engine ein neues Objekt, um diese Anfrage zu repräsentieren.
Das request-Objekt bietet eine Reihe von Methoden zur Erzeugung von HTTP-Headerinformationen, einschließlich Formulardaten, Cookies, HTTP-Methoden usw.
Die folgenden Methoden zur Erzeugung von HTTP-Headerinformationen, die in der JSP-Programmierung häufig verwendet werden, werden vorgestellt. Weitere Informationen finden Sie im folgenden Tabelle:
Reihennummer | Methode& Beschreibung |
---|---|
1 | Cookie[] getCookies() Rückgabe des Arrays aller Cookies des Clients |
2 | Enumeration getAttributeNames() Rückgabe der Sammlung aller Attribute-Namen des request-Objekts |
3 | Enumeration getHeaderNames() Rückgabe der Sammlung aller Namen der HTTP-Header |
4 | Enumeration getParameterNames() Rückgabe der Sammlung aller Parameter in der Anfrage |
5 | HttpSession getSession() Rückgabe des Session-Objekts, das diesem Request entspricht, falls keins vorhanden ist, wird ein neues erstellt |
6 | HttpSession getSession(boolean create) Rückgabe des Session-Objekts, das diesem Request entspricht, falls keins vorhanden ist und der Parameter 'create' auf true gesetzt ist, wird ein neues Session-Objekt zurückgegeben |
7 | Locale getLocale() Rückgabe des Locale-Objekts der aktuellen Seite, das im Response gesetzt werden kann |
8 | Object getAttribute(String name) Rückgabe des Wertes des Attributs mit dem Namen 'name', falls dieses nicht existiert, wird null zurückgegeben |
9 | ServletInputStream getInputStream() Rückgabe des Eingabestroms der Anfrage |
10 | String getAuthType() Rückgabe des Namens des Authentifizierungsschemas, das verwendet wird, um den Servlet zu schützen, z.B. "BASIC" oder "SSL" oder null, falls der JSP keine Schutzmaßnahmen festgelegt hat |
11 | String getCharacterEncoding() Rückgabe des Namens der Zeichensatzkompilation dieses Requests |
12 | String getContentType() Rückgabe des MIME-Typs des request-Körpers, falls unbekannt wird null zurückgegeben |
13 | String getContextPath() Rückgabe des Kontextpfades, der im request URI angegeben ist |
14 | String getHeader(String name) Rückgabe des Headers, der durch den Namen 'name' angegeben ist |
15 | String getMethod() Rückgabe des HTTP-Verfahrens dieses Requests, z.B. GET, POST oder PUT |
16 | String getParameter(String name) Rückgabe des Parameters, der durch den Namen 'name' in diesem Request angegeben ist, falls dieser nicht existiert, wird null zurückgegeben |
17 | String getPathInfo() Rückgabe jeder zusätzlichen mit diesem Request-URL verbundenen Pfad |
18 | String getProtocol() Gibt den Namen und die Version des Protokolls zurück, das von diesem request verwendet wird |
19 | String getQueryString() Gibt den Suchstring der in der request-URL enthaltenen Query enthalten |
20 | String getRemoteAddr() Gibt die IP-Adresse des Clients zurück |
21 | String getRemoteHost() Gibt den vollständigen Namen des Clients zurück |
22 | String getRemoteUser() Gibt den durch den Login authentifizierten Benutzer des Clients zurück, falls der Benutzer nicht authentifiziert ist, wird null zurückgegeben |
23 | String getRequestURI() Gibt die URI des requests zurück |
24 | String getRequestedSessionId() Gibt die durch den request angegebene Session-ID zurück |
25 | String getServletPath() Gibt den angeforderten Servlet-Pfad zurück |
26 | String[] getParameterValues(String name) Gibt alle Werte des angegebenen Parameters zurück, falls dieser nicht existiert, wird null zurückgegeben |
27 | boolean isSecure() Gibt zurück, ob der request einen verschlüsselten Kanal verwendet, z.B. HTTPS |
28 | int getContentLength() Gibt die Anzahl der Bytes des request-Körpers zurück, falls unbekannt, wird null zurückgegeben-1 |
29 | int getIntHeader(String name) Gibt den Wert des angegebenen request-Headernamens zurück |
30 | int getServerPort() Gibt den Port der Serverseitenausgabe zurück |
In diesem Beispiel verwenden wir die Methode getHeaderNames() der HttpServletRequest-Klasse, um HTTP-Headerinformationen zu lesen. Diese Methode gibt die aktuellen HTTP-Request-Headerinformationen in Form eines Enumerations zurück.
Nachdem das Enumeration-Objekt erhalten wurde, wird es auf standardisierte Weise durch das Enumeration-Objekt iteriert, um mit der Methode hasMoreElements() zu bestimmen, wann der Abbruch erfolgt, und mit der Methode nextElement() den Namen jedes Parameters zu erhalten.
<%@ 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>Grundlagen-Tutorial-Website(oldtoolbag.com)</title> </head> <body> <h2>Beispiel für HTTP-Header-Anfrage</h2> <table width="100%" border="1" align="center"> <tr bgcolor="#949494"> <th>Header-Name</th><th>Header-Werte</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>
Besuchen Sie main.jsp, um folgende Ergebnisse zu erhalten:
Sie können andere Methoden der HttpServletRequest-Klasse im obigen Code ausprobieren.