English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

JSP-Client-Anfrage

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:

InformationenBeschreibung
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

HttpServletRequest-Klasse

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:

ReihennummerMethode& Beschreibung
1Cookie[] getCookies() Rückgabe des Arrays aller Cookies des Clients
2Enumeration getAttributeNames() Rückgabe der Sammlung aller Attribute-Namen des request-Objekts
3Enumeration getHeaderNames() Rückgabe der Sammlung aller Namen der HTTP-Header
4Enumeration getParameterNames() Rückgabe der Sammlung aller Parameter in der Anfrage
5HttpSession getSession() Rückgabe des Session-Objekts, das diesem Request entspricht, falls keins vorhanden ist, wird ein neues erstellt
6HttpSession 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
7Locale getLocale() Rückgabe des Locale-Objekts der aktuellen Seite, das im Response gesetzt werden kann
8Object getAttribute(String name) Rückgabe des Wertes des Attributs mit dem Namen 'name', falls dieses nicht existiert, wird null zurückgegeben
9ServletInputStream getInputStream() Rückgabe des Eingabestroms der Anfrage
10String 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
11String getCharacterEncoding() Rückgabe des Namens der Zeichensatzkompilation dieses Requests
12String getContentType() Rückgabe des MIME-Typs des request-Körpers, falls unbekannt wird null zurückgegeben
13String getContextPath() Rückgabe des Kontextpfades, der im request URI angegeben ist
14String getHeader(String name) Rückgabe des Headers, der durch den Namen 'name' angegeben ist
15String getMethod() Rückgabe des HTTP-Verfahrens dieses Requests, z.B. GET, POST oder PUT
16String 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
17String getPathInfo() Rückgabe jeder zusätzlichen mit diesem Request-URL verbundenen Pfad
18String getProtocol() Gibt den Namen und die Version des Protokolls zurück, das von diesem request verwendet wird
19String getQueryString() Gibt den Suchstring der in der request-URL enthaltenen Query enthalten
20String getRemoteAddr() Gibt die IP-Adresse des Clients zurück
21String getRemoteHost() Gibt den vollständigen Namen des Clients zurück
22String getRemoteUser() Gibt den durch den Login authentifizierten Benutzer des Clients zurück, falls der Benutzer nicht authentifiziert ist, wird null zurückgegeben
23String getRequestURI() Gibt die URI des requests zurück
24String getRequestedSessionId() Gibt die durch den request angegebene Session-ID zurück
25String getServletPath() Gibt den angeforderten Servlet-Pfad zurück
26String[] getParameterValues(String name) Gibt alle Werte des angegebenen Parameters zurück, falls dieser nicht existiert, wird null zurückgegeben
27boolean isSecure() Gibt zurück, ob der request einen verschlüsselten Kanal verwendet, z.B. HTTPS
28int getContentLength() Gibt die Anzahl der Bytes des request-Körpers zurück, falls unbekannt, wird null zurückgegeben-1
29int getIntHeader(String name) Gibt den Wert des angegebenen request-Headernamens zurück
30int getServerPort() Gibt den Port der Serverseitenausgabe zurück

Beispiel für HTTP-Header

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.