Latest web development tutorials

JSP Client-Anfragen

Wenn ein Browser eine Seite anfordert, wird es eine Reihe von Informationen senden kann direkt an den Web-Server nicht gelesen werden, da diese Informationen als Teil der Information HTTP-Header übertragen werden soll. Sie können das HTTP-Protokoll überprüfen, um weitere Informationen zu erhalten.

Die folgende Tabelle listet einige der wichtigen Inhalte des Browser-Header, nachdem der Netzwerkprogrammierung werden Sie oft sehen diese Informationen:

Information Beschreibung
akzeptieren Gibt den MIME-Typ des Browsers oder einer anderen Client verarbeiten kann. Sein Wert ist in der Regel image / jpeg oder image / jpeg
Accept-Charset Gibt den Zeichensatz, den Browser zu verwenden. Zum Beispiel ISO-8859-1
Accept-Encoding Geben Sie den Codierungstyp. Sein Wert ist in der Regel gzip oder komprimieren
Accept-Language Geben Sie die bevorzugte Sprache des Client-Servlet wird vorrangig eine Ergebnismenge auf die aktuelle Sprache der Verfassung zurückzukehren, wenn das Servlet diese Sprache Worte unterstützt. Zum Beispiel en, de-de, ru usw.
Zulassung Identifizieren Sie verschiedene Benutzer Zugriff auf kennwortgeschützte Webseite
Verbindung Es zeigt an, ob der Client HTTP persistente Verbindung verarbeiten kann. Persistent-Verbindung ermöglicht den Client oder Browser mehrere Dateien in einer einzigen Anfrage abruft. Keep-Alive zeigt persistente Verbindungen ermöglichen
Content-Length Nur für Anfragen POST, die Anzahl von Bytes von Daten POST
Plätzchen Gibt zuvor an den Browser des Cookies an den Server gesendet
Gastgeber Wies darauf hin, dass die ursprüngliche URL des Host-Namen und die Portnummer
If-Modified-Since Nur wenn die Seite auf dem angegebenen Datum Client geändert wurde muss nur auf dieser Website. Der Server sendet 304 Meter an den Client, dass es keine aktualisierte Ressource ist
If-Unveränderte-Da Und If-Modified-Since Im Gegenteil, nur das Dokument nach dem angegebenen Datum nicht geändert worden ist, wird die Operation erfolgreich sein
Referer URL der Seite, durch Verweis markiert. Zum Beispiel wird im Browser enthalten sein, wenn Sie auf Seite 1, dann ein Link auf die Seite 2, dann Seite URL 1 sind fordert einen Seitenkopf 2
User-Agent Es verwendet, um zwischen verschiedenen Browsern oder Anforderung durch den Client gesendet zu unterscheiden und die verschiedenen Arten von Browser unterschiedliche Inhalte zurückzukehren

HttpServletRequest Klasse

javax.servlet.http.HttpServletRequest Request-Objekt ist eine Instanz der Klasse. Jedes Mal, wenn ein Client eine Seite anfordert, wird JSP-Engine ein neues Objekt erzeugen, die Anforderung zu stellen.

Request-Objekt stellt eine Reihe von Methoden, um die HTTP-Header-Informationen, einschließlich der Formulardaten, Cookies, HTTP-Methoden, und so weiter zu erhalten.

Der nächste wird einige gemeinsame Get-HTTP-Header in JSP Programmiermethoden einzuführen. Einzelheiten siehe Tabelle unten:

Nein . Method & Beschreibung
1 Plätzchen [] getCookies ()

Gibt ein Array von allen Client-Cookie
2 Enumeration getAttributeNames ()

Gibt eine Auflistung aller Eigenschaften der Anfrage Objektnamen
3 Enumeration getHeaderNames ()

Gibt eine Auflistung aller Namen des HTTP-Headers
4 Enumeration getParameterNames ()

Gibt eine Auflistung aller Parameter des Antrags
5 Http getSession ()

Rückgabe fordern Sie die entsprechende Session-Objekt, wenn nicht, erstellen
6 Http getSession (boolean erstellen)

Gibt die entsprechende Session-Objekt, wenn keine Parameter anfordern und erstellen wahr ist, gibt ein neues Session-Objekt
7 Locale getLocale ()

Gibt diese Seite Locale Objekt kann in der Antwort zur Verfügung gestellt werden
8 Object getAttribute (String name)

Gibt den Namen des Attributs Wert, und wenn es keine Rückkehr null.
9 ServletInputStream getInputStream ()

Gibt ein Eingangsstrom Anfrage
10 String getAuthType ()

Gibt den Namen des Authentifizierungsschema verwendet, um das Servlet zu schützen, wie zum Beispiel "BASIC" oder "SSL" oder null, wenn keine Schutzmaßnahmen JSP
11 String getCharacterEncoding ()

Gibt die Anforderung Zeichencodierung Setnamen
12 String getContentType ()

Gibt den MIME-Typ des Hauptantrags oder null, wenn nicht bekannt
13 String getContextPath ()

Gibt den Kontextpfad in der Anforderung angegebene URI
14 String getHeader (String name)

Gibt den Namen im Nachrichtenkopf angegeben
15 String getMethod ()

Gibt den HTTP-Request-Methode, wie GET ,, POST oder PUT
16 String getParameter (String name)

Gibt die Anfrageparameter Name angegeben wurde, oder null, wenn nicht vorhanden
17 String getPathInfo ()

Gibt keine zusätzlichen Pfad URL mit dieser Anforderung zugeordnet
18 String getProtocol ()

Gibt den Namen und die Version des Protokolls von dieser Anforderung verwendete
19 String getQueryString ()

Dies gibt die Query-String-URL enthält
20 String getRemoteAddr ()

Gibt die IP-Adresse des Clients
21 String getRemoteHost ()

Bringen Sie den vollständigen Namen des Kunden
22 String getRemoteUser ()

An den Client durch den Benutzer-Login-Authentifizierung, wenn der Benutzer nicht authentifiziert oder null
23 String getRequestURI ()

Gibt die Anforderungs-URI
24 String getRequestedSessionId ()

Gibt die angegebene Sitzungs-ID-Anfrage
25 String getServletPath ()

Zurück Servlet-Pfad angefordert
26 String [] getParameterValues (String name)

Gibt Parameter den Namen aller Werte angibt, oder null, wenn nicht vorhanden
27 boolean isSecure ()

Gibt an, ob die Anforderung Kanal verschlüsselt, wie HTTPS
28 int getContentLength ()

Gibt die Anzahl der Bytes in der Anfrage Körper enthalten ist, oder -1, wenn unbekannt
29 int getIntHeader (String name)

Der zurückgegebene Wert gibt den Namen des Request-Header
30 int getServerPort ()

Gibt Server-Portnummer

HTTP-Header-Beispiele

In diesem Beispiel werden wir getHeaderNames HttpServletRequest Klasse () -Methode verwenden, um die HTTP-Header zu lesen. Diese Methode liefert eine Aufzählung von Headerinformationen für die aktuelle HTTP-Anforderung.

Nach Erhalt bestimmen die Enumeration-Objekt, die Standard-Weg, um die Enumeration-Objekt, hasMoreElements () -Methode zu durchlaufen bei der Verwendung von next () -Methode zu stoppen den Namen der einzelnen Parameter 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>本教程(w3big.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>

Zugang main.jsp, werden die folgenden Ergebnisse erhalten:

Sie können in dem obigen Code andere Methoden der HttpServletRequest Klasse versuchen.