Galileo Computing < openbook >
Galileo Computing - Programming the Net
Galileo Computing - Programming the Net


Einstieg in ASP.NET von Matthias Lohrer
Einstieg in ASP.NET
gp Kapitel 11 Der Status von Seiten, Sitzungen und Applikationen
  gp 11.1 Versteckte Felder in Formularen nutzen
  gp 11.2 Der Status einer Seite: Viewstate
    gp 11.2.1 Eigene Daten im Viewstate speichern
    gp 11.2.2 Den Anzeigestatus ein- und ausschalten
  gp 11.3 Der Status einer Sitzung: Session
    gp 11.3.1 Die Klasse HttpSessionState
    gp 11.3.2 Wie ASP.NET die Probleme des klassischen ASP löst
    gp 11.3.3 Übertragung der Session-ID: Cookie oder URL
    gp 11.3.4 Den Sitzungsstatus ein- und ausschalten
    gp 11.3.5 Den Sitzungsstatus konfigurieren
    gp 11.3.6 Session-Ereignisse verwenden
    gp 11.3.7 Objekte mit Session-Scope einbinden
    gp 11.3.8 Instanzen eigener Klassen in den Sitzungsdaten speichern
  gp 11.4 Cookies verwenden
  gp 11.5 Der Status einer Anwendung: Application
    gp 11.5.1 Den Zugriff auf anwendungsweite Daten synchronisieren
    gp 11.5.2 Beschränkungen von Application-Variablen

Kapitel 11 Der Status von Seiten, Sitzungen und Applikationen

Status bedeutet so viel wie Gedächtnis. ASP.NET hat ein Kurzzeitgedächtnis für einzelne Seiten, ein mittelfristiges Gedächtnis für Sitzungen und ein Langzeitgedächtnis für ganze Webanwendungen. Der Entwickler entscheidet, welche Informationen er wie lange benötigt.

HTTP ist ein zustandsloses, das heißt statusloses Protokoll. Wenn ein Browser von einem Webserver eine Seite anfordert, dann »weiß« der Webserver nicht, ob er diesem Browser vor kurzem schon einmal eine Seite geschickt hat oder nicht. Bei vielen Anwendungen ist es aber zwingend erforderlich, dass der Aufruf einer Seite sich in irgendeiner Weise auf einen vorhergehenden Aufruf bezieht.

Formulare bieten eine grundlegende Möglichkeit dafür, dass sich eine Seite auf eine vorangegangene Seite bezieht. Beim Anklicken eines Submit-Buttons schickt der Browser die Eingabedaten des Anwenders zum Server. Der Server verarbeitet diese Daten und generiert eine Antwortseite, in der er die Eingabedaten verarbeitet. Für den Server sind das zwei voneinander unabhängige Seitenaufrufe. Der Anwender erkennt aber einen sinnvollen Kontext.

Bei der Webentwicklung gibt es verschiedene Möglichkeiten, einen solchen Kontext herzustellen, der auch über mehrere Seitenaufrufe hinweg gewahrt werden kann.

Wenn ein Kontext lediglich zwischen mehreren Aufrufen derselben Seite, also bei Formularen, gewahrt bleiben soll, ist die Viewstate-Technologie das Mittel der Wahl. Sie wird in Abschnitt 11.2, Der Status einer Seite: Viewstate, vorgestellt.

Wenn für die gesamte Sitzung eines Anwenders einheitliche Daten zur Verfügung stehen sollen, sind Session-Variablen und Cookies die geeigneten Mittel. Diese Themen werden in Abschnitt 11.3, Der Status einer Sitzung: Session, und in Abschnitt 11.4, Cookies verwenden, vorgestellt.

Für Daten, die innerhalb einer kompletten Applikation einheitlich sind, stehen Application-Variablen zur Verfügung, die in Abschnitt 11.5, Der Status einer Anwendung: Application, vorgestellt werden.


Galileo Computing

11.1 Versteckte Felder in Formularen nutzen  toptop

Eine einfache Möglichkeit, bestimmte Informationen über mehrere Seitenaufrufe hinweg zu erhalten, besteht in der Verwendung versteckter Felder. Diese Technologie wurde und wird häufig dann eingesetzt, wenn ein Formular ein anderes Formular aufruft, das selbst wieder zu mehreren unterschiedlichen Formularen führt usw. Ein Warenkorbsystem ist ein typisches Beispiel. Während der Kunde durch die Gänge, respektive Seiten, schlendert, sollen seine Stammdaten, etwa sein Name, stets auf allen Seiten präsent sein.

Auch unter ASP.NET können Sie im form-Element manuell versteckte Felder definieren. Wenn Sie ein Element der Art input type="hidden" zusätzlich mit dem Attribut runat="server" versehen, erstellt ASP.NET hierfür serverseitig ein Objekt der Klasse HtmlInputHidden.


Tipp   Die Page-Klasse bietet darüber hinaus die komfortable Methode RegisterHiddenField. Diese Methode ergänzt im Formular der aktuellen Seite selbstständig ein verstecktes Feld. Ihnen als Entwickler bietet diese Methode den Vorteil, dass Sie sich nicht darum kümmern müssen, das versteckte Feld an der richtigen Stelle im HTML-Teil der Seite auszugeben. ASP.NET fügt das versteckte Feld automatisch hinzu, sobald das form-Element dargestellt wird.

Der Vorteil der Verwendung versteckter Felder liegt in der Einfachheit. Die Funktionsweise versteckter Felder dürfte den meisten Entwicklern bereits bekannt sein. Sie sind leicht zu verstehen, leicht einzusetzen und sie unterliegen keinerlei Beschränkungen beim Einsatz verschiedener Browser und unterschiedlicher Browsereinstellungen.

Dennoch haben versteckte Felder auch einige Einschränkungen und Nachteile:

gp  Versteckte Felder können als Wert lediglich String-Angaben enthalten. Ein verstecktes Feld kann beispielsweise kein Objekt enthalten.
gp  Der Name und der Wert versteckter Felder sind im HTML-Code im Klartext lesbar. Versteckte Felder sind also kein guter Ort, um sensible Daten zu speichern.
gp  Der Inhalt versteckter Felder wird bei jedem Seitenaufruf zum Server hin- und zum Browser zurückgeschickt. Das belastet das Netzwerk und ist für sensible Daten ebenfalls ungeeignet.
  

Einstieg in VB.NET

VB.NET

Einstieg in C#

Visual C#

VB.NET und Datenbanken

Einstieg in XML




Copyright © Galileo Press GmbH 2003
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


[Galileo Computing]

Galileo Press GmbH, Gartenstraße 24, 53229 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de