JavaScript: Serverseitige Top-Level Funktionen
von Jan Winkler
Die Serverseitige Top-Level Funktionen sind Funktionen, die serverseitig ohne ein Objekt existieren und aufgerufen werden. JScript unterstützt nicht alle diese Methoden.
Die addClient-Methode fügt die client-Eigenschaften einer dynamisch generiertenURLoder der Verknüpfung derURLmit einem redirect zusammen. Als Parameter wird die entsprechendeURLerwartet.
Notation: addClient(URL)
redirect(addClient('seite_'+Seitenzahl+'.htm'));
Die addResponseHeader-Methode fügt einen weiteren ( HTTP-)Header an den Serverresponse (Antwort des Servers) an, der zurück an den Clienten gesendet wird. Als Parameter werden dazu zwei Strings erwartet. Der erste definiert den Namen des Headers, der zweite dessen Wert.
Notation: addResponseHeader(Name,Wert)
addResponseHeader('location','neueseite.htm');
Die blob-Methode erzeugt ein blob-Objekt und übergibt dieses an eine entsprechende Zeile eines Cursor-Objekts. Als Parameter wird dazu der Pfad der zu jeweiligen Datei erwartet.
Notation: blob(Pfad)
cursor.XYZ = blob('bild.gif');
Die callC-Methode ruft eine mit registerCFunction registrierte Funktion mit den entsprechenden Parametern auf. Als Parameter wird dazu der Name der registrierten Funktion erwartet. Außerdem sollten (optional) die an die Funktion zu übergebenen Parameter in der richtigen Reihenfolge notiert werden.
Notation: callC(Name[,Parameter1...,ParameterN])
callC('meineFunktion','abc',1);
Die debug-Methode kommt der write-Methode nah. Sie gibt den definierten Parameter als Text an die Datei aus. Außerdem werden eventuelle Objekte in ihre Eigenschaften bzw. Sourcecode zerlegt und dargestellt. Diese Methode sollte allerdings nur zu Test- bzw. Debugging-Zwecken eingesetzt werden. Als Parameter wird der auszugebende String oder Objekt erwartet.
Notation: debug(Objekt)
debug('Zu diesem Zeitpunkt hat die Variable xyz'+
den folgenden Wert: '+xyz);
Die deleteResponseHeader-Methode entfernt einen Response-Header aus dem für den Clienten geplanten Header. Als Parameter wird der Name des Headers erwartet.
Notation: deleteResponseHeader(Name)
deleteResponseHeader('Server');
Die flush-Methode veranlaßt, dass die intern gesammelten Daten an den Clienten gesendet werden. Es wird kein Parameter erwartet.
Notation: flush()
flush();
Die getOptionValue-Methode gibt den Wert einer Option (option) innerhalb eines Select-Feldes (select) an. Als Parameter wird dazu der Name des Select-Feldes sowie der nullbasierte Index der Option erwartet.
Notation: getOptionValue(Name,Index)
a = getOptionValue('meinselect',4);
Die getOptionValueCount-Methode ermittelt die Anzahl der vom Benutzer ausgewählten Optionen innerhalb eines Select-Feldes (select) und gibt diese wieder. Als Parameter wird dazu der Name des Select-Feldes erwartet.
Notation: getOptionValueCount(Name)
a = getOptionValueCount('meinselect');
Die redirect-Methode leitet den Besucher zu einer anderen Seite weiter. Als Parameter wird dazu die (absolute oder relative)URLder entsprechenden Seite erwartet.
Notation: redirect(URL)
redirect(addClient('seite_'+Seitenzahl+'.htm'));
Die registerCFunction-Methode registriert eine externe Funktion für die Verwendung innerhalb des (Server-)Skriptes. Diese Funktion sollte in einer *.dll-Datei vorliegen. Als Parameter werden dazu der zu registrierende Name, der Pfad zur Bibliothek in der die Funktion enthalten ist sowie der Name der Funktion innerhalb der Bibliothek erwartet (in dieser Reihenfolge).
Notation: registerCFunction(Name1,Pfad,Name2)
registerCFunction('externeFunktion' ,
'C:\Windows\System\meine.dll' ,
'DoSomething');
Die ssjs_generateClientID-Methode generiert einen unverwechselbaren String, der den Clienten spezifiziert (sozusagen eine Identifikation).
Notation: ssjs_generateClientID()
a = ssjs_generateClientID();
Die ssjs_get CGI Variable-Methode liest den Wert einer Server- oder CGI-Variablen aus und gibt diese wieder. Als Parameter wird dazu der Name der Variablen erwartet. Folgende Variablen können ausgelesen werden:
| CGI-Variable | Beschreibung |
| AUTH_TYPE | Der Codierungstype mit dem eine Autorisierung erfolgt ist. In HTTP sind dies z.B. BASIC oder DIGEST. |
| HTTP S | Gibt ON aus, wenn es sich um eine sichere Verbindung (eben HTTP S) handelt, oder OFF wenn nicht. |
| HTTP S_KEYSIZE | Gibt die Bitzahl der Verschlüsselungsstärke bei sicheren Verbindungen an. |
| HTTP S_SECRETKEYSIZE | Gibt die Bitzahl der Verschlüsselung für den privaten Schlüssel des Servers an. |
| PATH_INFO | Gibt die in einerURIenthaltene, in Pfadschreibweise enthaltene Pfadinformation an. |
| PATH_TRANSLATED | Gibt im Gegensatz zu PATH_INFO die Pfadinformation in Form eines absoluten Serverpfades an. |
| QUERY_STRING | Gibt die Such- oder auch Query-String genannten Informationen wieder, die vom Browser übermittelt wurden (meist die Werte eines abgesendeten Formulars). |
| REMOTE_ADDR | Gibt die IP-Adresse des Requests an. |
| REMOTE_HOST | Gibt, sofern DNS (Herausfinden des Host-Namens aus einer IP) angeschaltet ist, den Host-Namen des Requests an. Ansonsten wie REMOTE_ADDR. |
| REMOTE_USER | Gibt den Namen des Benutzers laut Authorisation an. |
| REQUEST_METHOD | Gibt die Methode an, mit der der Request gestartet wurde. |
| SCRIPT_NAME | Gibt den Pfad zum aktuellen Skript (auch aktuelles Dokument) an. |
| SERVER_NAME | Gibt den Namen bzw. die IP-Adresse des Servers an, sofern diese/r in derURLauftrat. |
| SERVER_PORT | Gibt den Port des Servers an, sofern diese/r in derURLauftrat. |
| SERVER_PROTOCOL | Gibt das Protokoll des Benutzers an. |
| SERVER_URL | Gibt die URL an, die der Benutzer abgerufen hat. |
Die ssjs_getClientID-Methode gibt die ID des aktuellen Clienten u.a. zur Definition eines Client-Objekts, an.
Notation: ssjs_getClientID()
client.customerId = ssjs_getClientID();
Die write-Methode schreibt einen String an der jeweiligen Stelle in den für den Clienten vorbereiteten Sendepuffer. Als Parameter wird dazu der zu schreibende String erwartet.
Notation: write(String)
a = ' mit';
write('Dieser Text ist'+a+' SSJS generiert.');