Einführung in IntraWeb
Datenübergabe
Nun wollen wir noch einen drauf setzen und den Benutzer mit seinem Namen begrüßen. Bei Webanwendungen verwendet man für die temporäre Speicherung von benutzerbezogenen Daten die Session. IntraWeb stellt uns dafür die Unit UserSessionUnit zur Verfügung.
Diese Unit öffnen wir und erweitern die Klasse TIWUserSession um die Möglichkeit, den Benutzernamen aufzunehmen. Das könnte z.B. so aussehen:
TIWUserSession = class(TIWUserSessionBase) private { Private declarations } FUserName: String; public { Public declarations } property UserName: String read FUserName write FUserName; end;
In die Session schreiben
Bevor die erste Webseite verlassen wird, muss die Eingabe aus dem Eingabefeld IWEdit1 ausgelesen und in die Session geschrieben werden. Um auf die Session zugreifen zu können, bietet die Unit ServerController eine Hilfsfunktion an.
Wir müssen also sowohl ServerController als auch UserSessionUnit in die uses-Klausel von Unit1 (und später auch von Unit2) aufnehmen. Über die Funktion „UserSession“ erfolgt dann der Zugriff auf ein Objekt der Klasse TIWUserSession:
UserSession.UserName := IWEdit1.Caption;
Aus der Session lesen
Beim Laden der zweiten Seite soll dieser Wert wieder aus der Session geholt und im Label dargestellt werden. Als Event verwenden wir OnRender von IWForm2. Dieses Ereignis wird während des Renderns der Seite ausgelöst, also noch vor der Anzeige.
In diesem Event greifen wir auf die Session zu und weisen den Usernamen der Label-Caption zu:
procedure TIWForm2.IWAppFormRender(Sender: TObject); begin IWLabel1.Caption := 'Willkommen, ' + UserSession.UserName + '!'; end;