JSP-Aktionen, die Konstrukte in XML-Syntax verwenden, um das Verhalten der Servlet-Engine zu steuern. Wir werden detailliertere Informationen zu verschiedenen JSP-Aktionselementen wie Clientanforderung, Serverantwort und HTTP-Statuscodes erhalten.
In diesem Tutorial lernen Sie:
JSP-Client-Anfrage
Antwort des JSP-Servers
JSP-HTTP-Statuscodes
JSP-Client-Anfrage
Wenn die Webseite angefordert wird, sendet sie Informationen im HTTP-Header an den Webserver.
Wir können diese Informationen mit dem HTTPServletRequest-Objekt verwenden.
Vom Browser gesendete Informationen werden im Anforderungsheader der HTTP-Anforderung gespeichert.
Wir verwenden verschiedene Header, um Informationen an das Anforderungsobjekt zu senden.
Im Folgenden werden verschiedene Header beschrieben:
Header
Beschreibung
Beispiel
Akzeptieren
Es gibt MIME-Typen an, die Browser oder andere Clients verarbeiten können
Bild / PNG oder Bild / JPEG.webp
Accept-Zeichensatz
Es verwendet den vom Browser verwendeten Zeichensatz, um die Informationen anzuzeigen
ISO-8859-1
Akzeptieren - Codierung
Es gibt die Art der Codierung an, die vom Browser verarbeitet wird
Gzip oder komprimieren
Akzeptiere die Sprache
Es gibt die vom Kunden angegebene Sprache an
En, en_us
Genehmigung
Header, der von Clients verwendet wird, wenn versucht wird, auf kennwortgeschützte Webseiten zuzugreifen
Verbindung
Es gibt an, ob der Client dauerhafte HTTP-Verbindungen verarbeiten kann (der Browser kann mehrere Dateien abrufen).
Bleib am Leben
Inhaltslänge
Gilt für Anfragen. Es gibt die Größe der Post-Daten von Bytes an
Plätzchen
Gibt das Cookie an den Server zurück (diejenigen, die zuvor an den Browser gesendet wurden)
Gastgeber
Gibt den Host und den Port der ursprünglichen URL an
Wenn geändert seit
Es zeigt an, dass nur eine Seite erforderlich ist, wenn sie geändert oder modifiziert wurde
Wenn seitdem unverändert
Es zeigt an, dass eine Seite nur erforderlich ist, wenn sie nicht geändert oder modifiziert wurde
Referrer
Gibt die URL der verweisenden URL-Seite an
User-Agent
Identifiziert die Anforderung eines Browsers oder Clients
Die folgenden Methoden werden verwendet, um den HTTP-Header auf der JSP-Seite zu lesen:
Cookie [] getCookies () - Gibt ein Array zurück, das vom Client gesendete Cookie-Objekte enthält
Aufzählung getAttributeNames () - enthält die Aufzählung der Namen von Attributen für die Anforderung
Aufzählung getHeaderNames () - enthält die Aufzählung der Namen der Header.
Aufzählung getParameterNames () - enthält eine Aufzählung zum Abrufen von Parameternamen in der Anforderung.
HttpSessiongetSession () - Gibt die aktuelle Sitzung zurück, die der Anforderung zugeordnet ist. Wenn keine Sitzung vorhanden ist, wird eine neue Sitzung erstellt.
Gebietsschema getLocale () - Gibt das bevorzugte Gebietsschema zurück, in dem der Client Inhalte akzeptiert. Es wurde der Antwort zugewiesen. Standardmäßig ist der Wert das Standardgebietsschema des Servers.
Object getAttribute (String name) - Gibt den Wert des benannten Attributs als Objekt zurück.
ServletInputStreamgetInputStream () - Ruft einen Anforderungskörper als Binärdaten ab.
String getAuthType () - Gibt den Namen des Authentifizierungsschemas zum Schutz des Servlets zurück
String getCharacterEncoding () - Gibt den Namen der im Hauptteil der Anforderung verwendeten Zeichenkodierung zurück.
String getContentType () - gibt den MIME-Typ des Hauptteils der Anforderung zurück.
String getContextPath () - Gibt den Teil des Anforderungs-URI zurück, der den Kontextpfad des URI angibt
String getHeader (String name) - Gibt den Anforderungsheader als String zurück
String getMethod () - Gibt den Namen der HTTP-Methode wie GET, POST zurück
String getParameter (String name) - Gibt den Parameter der Anforderung als String zurück.
String getPathInfo () - Gibt die mit der URL verknüpften Pfadinformationen zurück
Zeichenfolge getQueryString () - Gibt die Abfragezeichenfolge zurück, die der Anforderungs-URL zugeordnet ist
String getServletPath () - Gibt den Teil der URLs der Anforderung zurück, die die JSP aufruft
String [] getParameterValues (String name) - Gibt das Array von String-Objekten zurück, die die Werte des Anforderungsparameters enthalten
Beispiel:
Im folgenden Beispiel verwenden wir verschiedene Methoden mit dem Anforderungsobjekt
Codezeile 17: Mit dem Anforderungsobjekt erhalten wir das Sitzungsobjekt dieser bestimmten Sitzung und den Objektwert dieser Sitzung
Codezeile 19: Mit dem Anforderungsobjekt erhalten wir das Gebietsschema dieser bestimmten Sitzung i.een_US für diese JSP.
Codezeile 21: Mit dem Anforderungsobjekt erhalten wir Pfadinformationen für diese JSP. In diesem Fall ist es null, da kein Pfad für die angegebene URL angegeben ist.
Codezeile 23: Unter Verwendung des Anforderungsobjekts erhalten wir den Kontextpfad, dh den Stammpfad
Codezeile 25: Mit dem Anforderungsobjekt erhalten wir den Servernamen.
Codezeile 27: Mit dem Anforderungsobjekt erhalten wir einen Server-Port.
Codezeile 29-35: Unter Verwendung des Anforderungsobjekts erhalten wir Headernamen, die als Aufzählung ausgegeben werden, und daher erhalten wir alle Headerwerte in den Headernamen.
Dabei erhalten wir alle Header-Werte als Cookie, Host, Verbindung, Sprache akzeptieren, Codierung akzeptieren.
Wenn Sie den obigen Code ausführen, erhalten Sie die folgende Ausgabe:
Ausgabe :
Wir erhalten eine Reihe von Werten wie Sitzungsname, Gebietsschemaname, Pfadname, Servername, Portname, Host, Kontextpfad und alle Headerwerte dieser JSP.
Antwort des JSP-Servers
Wenn eine Anfrage verarbeitet wird und die Antwort vom Webserver generiert wird. Es besteht aus einer Statuszeile, Antwortheadern, einer Leerzeile und einem Dokument.
Es ist das Objekt von HTTPServletResponseclass, einem Antwortobjekt.
Die Statuszeile ist eine Version von HTML.
Antwortheader werden unten erwähnt:
Header
Beschreibung
ermöglichen
Es gibt die Anforderungsmethoden wie GET, POST an, die der Server anfordert
Cache-Kontrolle
Das Antwortdokument kann zwischengespeichert werden. Es kann öffentlich, privat und ohne Cache sein. Kein Cache gibt an, dass das Dokument nicht zwischengespeichert werden soll
Verbindung
Es wird angewiesen, ob der Browser savedHTTPConnections verwenden soll oder nicht. Der Wert "Schließen" gibt an, dass der Browser in HTTPConnections nicht persistent verwenden soll. "Keep-Alive" bedeutet, dass persistente Verbindungen verwendet werden
Inhaltsdisposition
Um den Benutzer zu fragen, ob die Antwort auf der Festplatte gespeichert werden soll oder nicht
Inhaltskodierung
Die Seite muss während der Übertragung codiert werden
Inhaltslänge
Anzahl der Bytes in der Antwort
Inhaltstyp
Es gibt den MIME-Antworttyp an
Läuft ab
Gibt an, bis wann der Inhalt als veraltet betrachtet und nicht zwischengespeichert werden soll
Zuletzt bearbeitet
Es zeigt an, wann das Dokument zuletzt geändert wurde
Ort
Es sollte in allen Antworten enthalten sein, deren Statuscode 300 als Statuscode hat
Aktualisierung
Es gibt an, wie die aktualisierte Seite gefunden wird.
Wiederholen Sie den Vorgang
Es kann mit einer 503-Antwort verwendet werden, um dem Client mitzuteilen, wie schnell die Anforderung wiederholt werden kann
Set-Cookie
Gibt das der Seite zugeordnete Cookie an
Im Folgenden sind die Methoden aufgeführt, die das Antwortobjekt verwenden:
String encodeRedirectURL (String URL) - codiert die URL in der redirectURL-Methode.
String encodeURL (String URL) - codiert die URL unter Angabe der Sitzungs-ID.
Boolean enthältHeader (String name) - enthält einen Header in der JSP oder nicht.
Boolean isCommited () - Antwort wurde festgeschrieben oder nicht.
Void addCookie (Cookie-Cookie) - Fügt der Antwort ein Cookie hinzu
Void addDateHeader (String name, String value) - Fügt den Namen und den Wert des Antwortheaderdatums hinzu
Void addHeader (String name, String value) - Fügt den Antwortheader mit Name und Wert hinzu
Void addIntHeader (String name, int value) - Fügt einen Antwortheader mit Name und ganzzahligem Wert hinzu
Void flushBuffer () - Erzwingt den Inhalt des Puffers für die Ausgabe an den Client.
Void reset () - löscht Daten im Puffer.
Void resetBuffer - löscht den Inhaltspuffer in der Antwort, ohne die Statuscodes zu löschen .
Void sendError (intsc, Stringmsg) - sendet eine Fehlerantwort mit Statuscode an den Client.
Void sendRedirect (String location) - sendet eine temporäre Umleitungsantwort an den Client.
Void setBufferSize (int size) - Legt die Puffergröße des Körpers fest
Void setCharacterEncoding (String charset) - Legt die Zeichenkodierung fest
Void setContentType (String type) - Legt den Inhaltstyp der Antwort fest
Void setContentLength (intlen) - Legt die Inhaltslänge der Antwort fest
Void setLocale (Locale lcl) - Legt den Gebietsschema-Typ der Antwort fest
Void setStatus (intsc) - Legt den Statuscode der Antwort fest
Beispiel:
In diesem Beispiel werden verschiedene Methoden behandelt: getLocale, flushbuffer, getWriter, get ContentType, setIntHeader.
Guru-Antwort h2><%Gebietsschema lcl = response.getLocale ();out.println ("Gebietsschema ist: + lcl + "\ n");response.flushBuffer ();PrintWriter output = response.getWriter ();output.println ("Dies ist vom Writer-Objekt");String type = response.getContentType ();out.println ("Der Inhaltstyp: + Typ + "\ n");// Aktualisierungs- und Autoload-Zeit auf 5 Sekunden einstellenresponse.setIntHeader ("Refresh", 5);// Aktuelle Zeit abrufenDatum dt = neues Datum ();out.println ("Das heutige Datum ist: + dt.toString () + "\ n");%> center> body> html>
Erläuterung des Codes:
Codezeile 13: Mit dem Antwortobjekt erhalten wir das Gebietsschemaobjekt dieser JSP-Sitzung
Codezeile 15: Mit dem Antwortobjekt wird der Flushbuffer verwendet, um den Pufferinhalt in den Client zu zwingen
Codezeile 16: Mit dem Antwortobjekt erhalten wir ein Writer-Objekt, das im Ausgabestream ausgegeben wird
Codezeile 18: Unter Verwendung des Antwortobjekts erhalten wir den Inhaltstyp, dh den MIME-Typ des Antwortobjekts
Codezeile 21: Mit dem Antwortobjekt wird es alle 5 Sekunden automatisch geladen, da 5 als zweiter Parameter festgelegt wird
Wenn Sie den obigen Code ausführen, erhalten Sie die folgende Ausgabe:
Ausgabe:
Hier erhalten wir die Ausgabe, da dies vom Writer-Objekt von getWriter stammt, das uns ein Objekt gibt und wir im Ausgabestream ausgeben können.
Wir erhalten das Gebietsschema als en_us und den Inhaltstyp als text / html
Wir erhalten einen Zeichensatz als ISO 8859
Das heutige Datum als aktuelles Datum.
JSP-HTTP-Statuscodes
Wenn die Anforderung verarbeitet wird, wird die Antwort generiert. Die Antwortstatuszeile besteht aus einer HTTP-Version, einem Statuscode und einer zugehörigen Nachricht.
Die Nachricht ist direkt mit dem Statuscode und der HTTP-Version verknüpft und wird vom Server festgelegt.
Standardmäßig ist 200 in JSP als Statuscode festgelegt, sodass wir nicht explizit festlegen müssen.
Wir können als response.setStatus () -Methode festlegen
Die Codes fallen in folgende 5 Kategorien:
100-199 - Hier gibt der Client an, dass er mit einer Aktion antworten soll
200-299 - Dies bedeutet, dass die Anforderung erfolgreich ist
300-399 - Sie werden für Dateien verwendet, die verschoben wurden und normalerweise einen Speicherortkopf enthalten, der eine neue Adresse angibt
400-499 - Zeigt einen Fehler des Clients an
500-599 - Zeigt einen Fehler des Servers an
Einige der allgemeinen Statuscodes sind unten aufgeführt:
200 - Zeigt an, dass alles in Ordnung ist
301 - Es hat sich dauerhaft bewegt
304 - Seit der letzten Änderung nicht geändert
400 - Schlechte Anfrage
404 Nicht gefunden
405 - Methode nicht gefunden
500 - Interner Serverfehler
503 Dienst nicht verfügbar
505 - HTTP-Version wird nicht unterstützt
Einige seiner Methoden sind unten aufgeführt:
Public void setStatus (intstatusCode)
Es legt den Statuscode fest, den wir auf dieser JSP-Seite festlegen möchten. Dadurch erhalten wir die Meldung des eingestellten Statuscodes
Public void sendRedirect (String URL)
Es generiert eine Antwort 302 zusammen mit dem Speicherortkopf, der die URL des neuen Dokuments angibt
Public void sendError (intcode, Stringmsg)
Es sendet den Statuscode zusammen mit der Kurznachricht und ist im HTML-Dokument formatiert.
Beispiel:
In diesem Beispiel senden wir explizit einen Fehler an die JSP-Seite.
Codezeile 10: Mit dem Antwortobjekt senden wir den Fehler an eine Seite mit zwei Parametern.
Statuscode - Dies kann einer der oben genannten sein. In diesem Fall haben wir als 404 beschrieben
Nachricht - Es kann sich um eine bestimmte Nachricht handeln, bei der der Fehler angezeigt werden soll
Wenn Sie den obigen Code ausführen, erhalten Sie die folgende Ausgabe:
Ausgabe:
Hier erhalten wir den Fehlercode 404, der vom Code gesendet wurde und auch die in der Ausgabe angezeigte Meldung "Guru-Seite nicht gefunden" anzeigt.
Zusammenfassung:
In diesem Artikel haben wir Informationen zur Clientanforderung und Serverantwort erhalten, wie die Anforderung abgefangen und wie die Antworten manipuliert werden.
Außerdem haben wir uns mit HTTP-Statuscodes vertraut gemacht, um Fehlercodes oder Erfolgscodes für eine bestimmte Datei anzuzeigen.