Wir haben uns den Seitenlebenszyklus angesehen und untersucht, wie eine Seite verschiedene Steuerelemente enthalten kann. Die Seite selbst wird als Kontrollobjekt instanziiert. Alle Webformulare sind grundsätzlich Instanzen von ASP.NET-Seitenklassen. Die Seitenklasse verfügt über die folgenden äußerst nützlichen Eigenschaften, die den internen Objekten entsprechen:
Sitzung
App
Cache
fragen
Antwort
Server
Benutzer
Schiene
Wir werden jedes Objekt zu gegebener Zeit besprechen. In diesem Tutorial werden wir das Serverobjekt, das Anforderungsobjekt und das Antwortobjekt untersuchen.
Das Serverobjekt in ASP.NET ist eine Instanz der System.Web.HttpServerUtility-Klasse. Die HttpServerUtility-Klasse stellt eine große Anzahl von Eigenschaften und Methoden zur Ausführung verschiedener Aufgaben bereit.
Die Methoden und Eigenschaften der HttpServerUtility-Klasse werden über die von ASP.NET bereitgestellten internen Serverobjekte verfügbar gemacht.
Die folgende Tabelle enthält eine Reihe von Eigenschaften der HttpServerUtility-Klasse.
Eigentum | beschreiben |
---|---|
Maschinenname | Name des Servercomputers |
ScriptTimeOut | Ruft den Wert des Anforderungszeitlimits in Sekunden ab und legt ihn fest |
Die folgende Tabelle enthält einige wichtige Methoden:
Verfahren | beschreiben |
---|---|
CreateObject(String) | Erstellt eine Instanz des COM-Objekts, überprüft durch seine ProgID. |
CreateObject(Typ) | Erstellt eine Instanz eines COM-Objekts, überprüft durch seinen Typ. |
Gleicht (Objekt) | Bestimmen Sie, ob ein bestimmtes Objekt mit einem vorhandenen Objekt konsistent ist. |
Ausführen(String) | Führen Sie den von der verarbeitenden Anwendung im Kontext der aktuellen Anforderung angegebenen virtuellen Pfad aus. |
Execute(String, Boolean) | Führen Sie den vom Handler angegebenen virtuellen Pfad im Kontext der aktuellen Anforderung aus und geben Sie an, ob die QueryString- und Formularsammlung gelöscht werden soll. |
GetLastError | Gibt die vorherige Ausnahme zurück. |
GetType | Ruft den Typ einer vorhandenen Instanz ab. |
HtmlEncode | Konvertieren Sie eine gewöhnliche Zeichenfolge in eine zulässige HTML-Zeichenfolge. |
HtmlDecode | Konvertieren Sie einen HTML-String in einen gewöhnlichen String. |
ToString | Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. |
Übertragung(String) | Beendet für die aktuelle Anfrage die Ausführung der aktuellen Seite und startet die Ausführung einer neuen Seite durch Angabe des URL-Pfads der Seite. |
URLDecode | Konvertieren Sie eine URL-Zeichenfolge in eine normale Zeichenfolge. |
URLEncodeToken | Identisch mit UrlEncode, enthält jedoch Base64-codierte Daten in einem Byte-Array. |
URLDecodeToken | Funktioniert genauso wie UrlDecode, enthält jedoch Base64-codierte Daten in einem Byte-Array. |
MapPath | Gibt den physischen Pfad zurück, der dem Dateipfad auf dem angegebenen virtuellen Server entspricht. |
Überweisen | Übertragen Sie die Ausführung der aktuellen Anwendung auf eine andere Webseite. |
Das Anforderungsobjekt ist eine Instanz der System.Web.HttpRequest-Klasse. Es stellt die Werte und Attribute der HTTP-Anfrage dar, die das Laden der Seite in den Browser ermöglichen.
Die von diesem Objekt präsentierten Informationen sind in einer Abstraktion höherer Ebene (dem Web-Steuerungsmodell) gekapselt. Dieses Objekt kann jedoch dabei helfen, einige Informationen zu überprüfen, z. B. Client-Browser und Cookies.
Die folgende Tabelle enthält einige bemerkenswerte Eigenschaften des Anforderungsobjekts:
Eigentum | beschreiben |
---|---|
AcceptTypes | Ruft ein String-Array mit MIME-akzeptierten Typen ab, die vom Benutzer unterstützt werden. |
Anwendungspfad | Rufen Sie den tatsächlichen Anwendungsstammpfad der ASP.NET-Anwendung auf dem Server ab. |
Browser | Ruft Informationen über die Funktionen des Browsers des anfordernden Benutzers ab oder legt diese fest. |
ContentEncoding | Ruft die Zeichensatzentität ab oder legt sie fest. |
ContentLength | Gibt die Länge des vom Client gesendeten Inhalts in Bytes an. |
Inhaltstyp | Ruft den MIME-Inhaltstyp der eingehenden Anforderung ab oder legt diesen fest. |
Kekse | Rufen Sie den vom Client gesendeten Satz Cookies ab. |
Dateipfad | Ermitteln Sie den tatsächlichen Pfad der aktuellen Anfrage. |
Dateien | Ruft eine Sammlung vom Client hochgeladener Dateien im mehrteiligen MIME-Format ab. |
Bilden | Ruft eine Sammlung von Formularvariablen ab. |
Überschriften | Ruft eine Sammlung von HTTP-Headern ab. |
HttpMethod | Rufen Sie die vom Benutzer verwendete HTTP-Datenübertragungsmethode ab (z. B. GET, POST oder HEAD). |
InputStream | Rufen Sie den Entitätsinhalt des eingehenden HTTP ab. |
IsSecureConnection | Ruft einen Wert ab, der angibt, ob die HTTP-Verbindung sichere Sockets (d. h. HTTPS) verwendet. |
Abfragezeichenfolge | Ruft eine Sammlung von HTTP-Abfragezeichenfolgenvariablen ab. |
RawUrl | Rufen Sie die Original-URL der aktuellen Anfrage ab. |
Anfragetyp | Ruft die vom Benutzer verwendete HTTP-Datenübertragungsmethode (GET oder POST) ab oder legt diese fest. |
Servervariablen | Ruft eine Sammlung von Webservervariablen ab. |
TotalBytes | Rufen Sie die Anzahl der Bytes des vorhandenen Eingabestreams ab. |
URL | Ruft Informationen zu einer vorhandenen angeforderten URL ab. |
URLReferrer | Ruft URL-Informationen über die vorherige Anfrage des Clients ab, die mit einer vorhandenen URL verknüpft ist. |
UserAgent | Ruft die ursprüngliche Benutzeragentenzeichenfolge des Clientbrowsers ab. |
UserHostAddress | Rufen Sie die IP-Hostadresse des Remote-Clients ab. |
UserHostName | Ruft den DNS-Namen des Remote-Clients ab. |
Benutzersprachen | Ruft ein sortiertes String-Array der Client-Spracheinstellungen ab. |
Die folgende Tabelle enthält einige wichtige Methoden:
Verfahren | beschreiben |
---|---|
BinaryRead | Führt einen binären Lesevorgang der angegebenen Anzahl von Bytes aus dem aktuellen Eingabestream durch. |
Gleicht (Objekt) | Bestimmt, ob das angegebene Objekt einem vorhandenen Objekt entspricht. (vom Objekt geerbt) |
GetType | Ruft den Typ einer vorhandenen Instanz ab. |
MapImageCoordinates | Zeichnet die Formularparameter des eingehenden Bildfelds auf die entsprechenden x- und y-Koordinatenwerte. |
MapPath(String) | Zeichnet den angegebenen realen Pfad in einen physischen Pfad. |
Speichern unter | Wird als HTTP-Anfrage auf der Festplatte gespeichert. |
ToString | Gibt eine Zeichenfolge zurück, die das vorhandene Objekt darstellt. |
ValidateInput | Veranlasst die Validierung durch Zugriff auf die Sammlung von Cookies-, Form- und QueryString-Eigenschaften. |
Das Antwortobjekt stellt die Antwort des Servers auf die Anfrage des Benutzers dar. Es ist eine Instanz der System.Web.HttpResponse-Klasse.
In ASP.NET spielen Antwortobjekte keine wichtige Rolle beim Senden von HTML-Text an den Benutzer, da serverseitige Steuerelemente über verschachtelte, objektorientierte Methoden zum Rendern selbst verfügen.
Das HttpResponse-Objekt bietet jedoch einige wichtige Funktionen, wie z. B. Cookie-Eigenschaften und die Redirect()-Methode. Mit der Response.Redirect()-Methode kann der Benutzer auf eine andere Seite weitergeleitet werden, entweder innerhalb der Anwendung oder außerhalb der Anwendung. Es erfordert einen Round-Trip-Prozess.
Die folgende Tabelle enthält einige bemerkenswerte Eigenschaften von Antwortobjekten:
Eigentum | beschreiben |
---|---|
Puffer | Ruft einen Wert ab oder legt diesen fest, der angibt, ob die Ausgabe gepuffert und gesendet wird, nachdem der vollständige Responder abgeschlossen ist. |
BufferOutput | Ruft einen Wert ab oder legt diesen fest, der angibt, ob die Ausgabe gepuffert und nach Abschluss der gesamten Seite gesendet wird. |
Zeichensatz | Ruft den HTTP-Zeichensatz des Ausgabestreams ab oder legt diesen fest. |
ContentEncoding | Ruft den HTTP-Zeichensatz des Ausgabestreams ab oder legt diesen fest. |
Inhaltstyp | Ruft den HTTP-MIME-Typ des Ausgabestreams ab oder legt diesen fest. |
Kekse | Holen Sie sich die entsprechende Cookie-Sammlung. |
Läuft ab | Ruft die Anzahl der Minuten ab, bevor zwischengespeicherte Seiten in einem Browser ablaufen, oder legt diese fest. |
Läuft abAbsolut ab | Ruft das absolute Datum und die absolute Uhrzeit ab, zu der zwischengespeicherte Informationen aus dem Cache entfernt werden, oder legt dieses fest. |
HeaderEncoding | Ruft ein Codierungsobjekt ab, das die Codierung des vorhandenen Header-Ausgabestreams darstellt, oder legt dieses fest. |
Überschriften | Ruft eine Sammlung von Antwortheadern ab. |
IsClientConnected | Ruft einen Wert ab, der angibt, ob der Benutzer noch mit dem Server verbunden ist. |
Ausgabe | Bewirkt, dass der Ausgabetext an den HTTP-Antwortstream ausgegeben wird. |
OutputStream | Ermöglicht die binäre Ausgabe in den HTTP-Inhaltstext der Ausgabe. |
RedirectLocation | Ruft den Wert der HTTP-Header-Position ab oder legt diesen fest. |
Status | Legen Sie die Statusleiste fest und geben Sie sie an den Client zurück. |
StatusCode | Ruft den an den Client zurückgegebenen HTTP-Ausgabestatuscode ab oder legt diesen fest. |
Statusbeschreibung | Ruft die an den Client zurückgegebene HTTP-Ausgabestatuszeichenfolge ab oder legt diese fest. |
SubStatusCode | Ruft einen Wert ab, der den Antwortstatuscode einschränkt, oder legt diesen fest. |
Inhalt unterdrücken | Ruft einen Wert ab, der angibt, ob HTTP-Inhalte an den Client gesendet werden sollen, oder legt diesen fest. |
Die folgende Tabelle enthält einige wichtige Methoden:
Verfahren | beschreiben |
---|---|
AddHeader | Fügt dem Ausgabestream einen HTTP-Header hinzu. AddHeader wird aus Kompatibilitätsgründen mit früheren Versionen von ASP bereitgestellt. |
AppendCookie | Die Infrastruktur fügt der internen Cookie-Sammlung ein HTTP-Cookie hinzu. |
AppendHeader | Fügt dem Ausgabestream einen HTTP-Header hinzu. |
AppendToLog | Fügen Sie benutzerdefinierte Protokollinformationen zur Protokolldatei der Internetinformationsdienste (IIS) hinzu. |
BinaryWrite | Schreibt eine Zeichenfolge aus Binärzeichen in den HTTP-Ausgabestream. |
ClearContent | Löscht alle Ausgaben aus dem gepufferten Stream. |
Schließen | Schließen Sie den Client-Socket. |
Ende | Sendet alle vorhandenen gepufferten Ausgaben an den Client, stoppt die Seitenausführung und löst das EndRequest-Ereignis aus. |
Gleicht (Objekt) | Bestimmt, ob das angegebene Objekt einem vorhandenen Objekt entspricht. |
Spülen | Senden Sie alle vorhandenen gepufferten Ausgaben an den Client. |
GetType | Ruft den Typ einer vorhandenen Instanz ab. |
Bilder | Fügt einen HTTP-PICS-Label-Header an den Ausgabestream an. |
Weiterleiten(String) | Leiten Sie die Anfrage an eine neue URL um und geben Sie die neue URL an. |
Redirect(String, Boolean) | Leiten Sie den Client zu einer neuen URL um. Gibt die neue URL an und ob die bestehende Seite beendet werden soll. |
SetCookie | Vorhandene Cookies in der Cookie-Sammlung aktualisieren. |
ToString | Gibt eine Zeichenfolge zurück, die das vorhandene Objekt darstellt |
TransmitFile(String) | Schreibt die angegebene Datei direkt in einen HTTP-Antwortausgabestream ohne Pufferung im Speicher. |
Schreiben(Char) | Schreibt ein Zeichen in einen HTTP-Antwortausgabestream. |
Schreiben (Objekt) | Schreibt ein Objekt in einen HTTP-Antwortstream. |
Schreiben(String) | Schreibt eine Zeichenfolge in einen HTTP-Antwortausgabestream. |
WriteFile(String) | Schreibt den Inhalt der angegebenen Datei als Dateiblock direkt in einen HTTP-Antwortausgabestream. |
WriteFile(String, Boolean) | Schreibt den Inhalt der angegebenen Datei als Speicherblock direkt in einen HTTP-Antwortausgabestream. |
Das folgende einfache Beispiel verfügt über ein Textfeld-Steuerelement, das es dem Benutzer ermöglicht, einen Namen einzugeben, eine Schaltfläche, die Informationen an den Server sendet, und ein Beschriftungssteuerelement, das die URL des Client-Computers anzeigt.
Inhaltsdateien:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="server_side._Default" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>Untitled Page</title> </head> <body> <form id="form1" runat="server"> <div> Enter your name: <br /> <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Submit" /> <br /> <asp:Label ID="Label1" runat="server"/> </div> </form> </body></html>
Button1_Click-Code nach dem Klicken:
protected void Button1_Click(object sender, EventArgs e) { if (!String.IsNullOrEmpty(TextBox1.Text)) { // Access the HttpServerUtility methods through // the intrinsic Server object. Label1.Text = "Welcome, " + Server.HtmlEncode(TextBox1.Text) + ". <br/> The url is " + Server.UrlEncode(Request.Url.ToString()) }}
Führen Sie die Seite aus, um die folgenden Ergebnisse anzuzeigen: