Wenn Sie serverseitige Anwendungen mit ASP schreiben, müssen Sie sich auf ActiveX-Komponenten für leistungsstarke Webanwendungsfunktionen verlassen, z. B.: Sie müssen eine Verbindung zur Datenbank herstellen, die Datenbank online betreiben usw.
In den beiden vorherigen Artikeln hat der Autor die Verwendungsmethoden von Adrotator, Datenbankzugriff und anderen Komponenten eingeführt.
1. Die Browserfunktionskomponenten sind bekannt, und nicht alle Browser unterstützen alle Aspekte der heutigen Internet -Technologie. Es gibt einige Funktionen, die einige Browser unterstützen, andere jedoch nicht, wie z. Mithilfe der Browser -Funktionskomponente von ASP können Sie intelligente Webseiten so entwerfen, dass Inhalte in einem Format präsentiert werden, das die Browserleistung entspricht. Die Browser -Funktionskomponente kann ein BrowserType -Objekt erstellen, das Benutzerskripte mit Funktionsbeschreibungen des Client -Webbrowsers bereitstellt. Der Grund, warum diese Komponente die Version des Client -Browsers erkennen kann, ist hauptsächlich, wenn der Clientbrowser eine Seitenanforderung an den Server sendet . Die Browserfunktionskomponenten -Komponenten ordnen den Benutzeragenten dem in der Datei browscap.ini angegebenen Browser ab und identifiziert den Clientbrowser über die Eigenschaften des BrowserType -Objekts. Wenn das Objekt kein Element finden kann, das mit dem Titel in der Datei browser.ini übereinstimmt, wird die Standard -Browser -Eigenschaften verwendet. Wenn das Objekt weder eine Übereinstimmung gefunden hat und die Standard -Browser -Einstellungen in der Datei browser.ini angegeben sind, wird jede Eigenschaft auf die unbekannte Zeichenfolge festgelegt. Standardmäßig wird die Datei browser.ini in der Windows/System/INERSRV (wenn 95/98+PWS4) oder NT/System32/INERSRV (wenn NT) -Verzeichnung gespeichert seine eigenen Attribute oder basierend auf der neuesten veröffentlichten Browser -Versions -Update -Datei. Bitte beachten Sie den folgenden Checkcookie () -Prozess. Verwenden Sie das Cookie -Attribut des BrowserCap -Objekts, um festzustellen, ob der Clientbrowser Cookies unterstützt und Informationen zurückgibt:
< %
Sub checkcookie ()
Set browsercap = server.createObject (MSWC.BrowserType)
Wenn browsercap.cookie = true dann
Antwort. Schreiben Sie Ihren Browser unterstützt Cookies!
anders
Antwort. Schreiben Sie Entschuldigung, der von Ihnen verwendete Browser unterstützt keine Cookies!
Ende wenn
Ende sub
%>
Weitere Informationen zur Browser-Funktionskomponente finden Sie unter Dynamic Website Design achtzehn Kampfkunst-Asp (2).
2. Dateizugriffskomponente Wenn Sie im Netzwerk alt genug sind, müssen Sie das CGI -Gästebuch in der Dinosaurier -Ära gesehen haben, dem frühesten Prototyp des Webbuchs. Zu diesem Zeitpunkt war es sehr schwierig, eine Verbindung zur Server-Backend-Datenbank in internetbasierten Webanwendungen herzustellen, sodass die historischen Informationen im Gästebuch nicht wie heute in der Backend-Datenbank gespeichert wurden. Wo werden diese Daten gespeichert? Die Antwort ist eine Textdatei. Kundeninformationen können gespeichert werden, aber das Schreiben solcher CGI -Programme ist sehr umständlich.
#!/usr/local/bin/perl
# Perl Standort eins Ihr Server
Druckeninhalte Typ: Text/Plain/N/N;
if ($ env {'request_method'} eqpost) {
read (stdin, $ buffer, $ env {'content_length'});
} elsif ($ env {'request_method'} eqget) {
$ buffer = $ env {'query_stirng'};
}
@pairs = split (/&/, $ buffer);
foreach $ pair (@pairs) {
($ name, $ value) = split (/=/, $ pair);
$ value = ~ tr/+//;
$ value = ~ s/%([AF AF 0-9] [AF AF 0-9])/Pack (C, Hex ($ 1))/EG;
$ Form {$ name} = $ value;}
$ file_name = gudbook.txt; #file Name
#Spezifischer Inhalt
Öffnen Sie (Datei, >> $ file_name) || Die Fehler beim Öffnen der Datei;
Datensatzdatensatzzeit: $ Datum /N /N;
Dateiname Druckdatei: $ Formular {'Name'};
Druckdateieinheit: $ Formular {'Company'}/n;
Datei Telefon ausdrucken: $ Formular {'Telefon'}
Dateiadresse Druck: $ Formular {'Adresse'}/n;
DRUCKENDE FILE DIPCODE: $ Form {'ZIP'}
E -Mail -Adresse der Datei ausdrucken: $ Formular {'E -Mail'}/n;
DURCH -DATEI RETURUS KOMMENTAR: $ Form {'Inhalt'}
schließen (Datei)
Sie können das Gefühl haben, dass diese Art von CGI -Programm im Vergleich zu ASP in Bezug auf Lesbarkeit und Funktionsfähigkeit schlechter ist. Dann müssen Sie sich fragen, ob ASP auch Dateien direkt auf den Server schreiben kann. Die Antwort lautet natürlich ja. Aber intelligente Freunde denken vielleicht, dass die Verbindung zwischen ASP und Web -Datenbank so bequem ist, warum wir Kundendaten in Textdateien schreiben müssen? In der Tat können wir die Datenbank für gängige Webanwendungen wie Gästebücher und BBS nicht durch das Schreiben von Textdateien im Hinblick auf die Programmausführungseffizienz oder die Benutzerfreundlichkeit ersetzen. In einigen Webanwendungen ist das Schreiben von Textdateien in diesem Feld jedoch sowohl standardisiert als auch a Relativ bequeme Methode im Vergleich zu einer Datenbank. Wenn Sie mit NT vertraut sind, müssen Sie wissen, dass NT einen sehr leistungsfähigen Sicherheitsmechanismus hat, der fast alle Servervorgänge und Verbindungsinformationen in einer Datei mit dem Suffix -Namen speichern kann Kann im Web verwendet werden, um einige Kundenanmeldeinformationen aufzuzeichnen. Das folgende Programm verwendet die Funktion von ASP -Lesen und Schreiben von Textdateien, um eine Funktion zu erstellen, die die Sprachdatensätze jedes Benutzers in einem Web -BBS -Programm automatisch aufzeichnet.
< %
Setzen Sie fs = createObject (scripting.FilesSystemObject)
Forreading = 1
'Öffnen Sie die Datei im schreibgeschützten Modus. Diese Datei kann nicht geschrieben werden.
Footappending = 8
'Öffnen Sie die Datei und schreiben Sie sie am Ende der Datei.
TristateUsedEfault = -2
Tristatetree = -1
TristateFalse = 0
'----------------------------------
servermap = server.mappath (/bbs/log/)
'Kartierung des physischen Pfades des Systems
temp = servermap &/& Jahr (Datum) & Monat (Datum) &/
'Holen Sie sich den physischen Pfad und die Zeit des Systems und verwenden Sie dies als den physischen Pfad, der in der Protokolldatei gespeichert ist
wenn nicht
Fs.Createfolder (Temp)
Ende wenn
»Überprüfen Sie, ob der Ordner existiert, andernfalls wird er automatisch erstellt
Dimer Syslog
Dim Tempname
tempname = Datum
syslog = temp & tempname & .log
'Der Dateiname lautet e:/bbs/log/monat/monat tag.log.log
li = user &&& nun && request.servervariables (remote_addr) && tempfile &&& schief && title
'Protokolldatei -Datensatzformat lautet: Benutzername und Senden von Zeit- und Benutzer -IP- und Dateipfad & Nachrichtenbereich & Brieftitel
Wenn fs.FileExists (syslog) dann
Setzen Sie ss = fs.opentextfile (syslog, fassender, true)
anders
Setzen Sie SS = fs.CreateTextFile (Syslog, Forsching, Falsch)
Ende wenn
Überprüfen Sie, ob die Protokolldatei vorhanden ist.
Ss.WriteLine (l
ich)
ss.close
'------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ------------------------------
%>
Wenn Sie das obige Programm nicht vollständig verstehen, hören Sie sich die Anweisungen des Autors an. Die Dateizugriffskomponente bietet Methoden und Eigenschaften, mit denen zum Zugriff auf das Dateisystem eines Computers zugreifen kann. Wir können die Dateizugriffskomponente verwenden, um ein DateiSystem -Objekt -Objekt zu erstellen. Nachdem das Objekt erstellt wurde, können Sie die Datei über sie zugreifen. Es gibt zwei am häufigsten verwendete Methoden für das DateisystemObject -Objekt, einer wird zum Erstellen von Dateien verwendet, und das andere wird zum Öffnen und Lesen und Schreiben von Textdateien verwendet. Die von Ihnen angegebene Dateiname erhalten die Datei und erstellt die Datei.
Setzen Sie ObjTextStream = DateisystemObject.CreateTextFile (Dateiname, [Overwrite], [Unicode])
Der Autor erklärt die Parameter der nachstehenden CreateTeTextFile -Methode
1. Dateiname Eine Zeichenfolge, die den Dateipfadnamen enthält, kann der vollständige Pfadname der Datei sein, einschließlich des Laufwerksnamens und des Verzeichnisnamens, oder es kann nur ein Dateiname sein. im Stammverzeichnis der Website.
2. Die Boolesche Menge überschreiben. Der Name wird gelöscht.
3.. Unicode Optionale Parameter. Boolesche Werte geben an, ob eine Datei im Unicode- oder ASCII -Dateiformat erstellt werden soll. Dieser Wert ist wahr, wenn eine Datei im Unicode -Dateiformat erstellt wird, und falsch, wenn eine Datei im ASCII -Dateiformat erstellt wird. Wenn dieser Abschnitt weggelassen wird, wird angenommen, dass eine ASCII -Datei erstellt wird.
Im vorherigen Programm verwenden wir SS = Fs.CreateTextFile (Syslog, Forwriting, False), um eine Datei zu erstellen und eine Datei zu schreiben, wenn die Protokolldatei nicht vorhanden ist.
Im Gegensatz zu der Methode CreateTeXTFile wird die von Ihnen angegebene Dateinamen mit OpenTextFile verwendet. Damit Sie die Datei nach der Öffnung bedienen können. Die Syntax der OpenTextFile -Methode lautet wie folgt:
Setzen Sie ObjTextStream = DateiSystemObject.opentextFile (Dateiname, [Iomode], [erstellen], [Format])
Die Parameter sind wie folgt:
1. Dateiname ist die notwendige Variable, wie der Dateiname von CreateTextFile
2. IMODE OPTIONALE Konstante, mit dem Wert als einer der folgenden zwei Konstanten, die sich auf den Weg machen oder fördern.
3. Erstellen Sie die optionale Boolesche Menge und geben Sie an, welche Operation ausgeführt wird, wenn die Datei, die Sie öffnen möchten, nicht vorhanden ist. Wenn die FALSE eine Fehlermeldung generiert wird, wenn die Datei nicht gefunden wird, ist der Standardwert falsch.
4. Format optionaler Wert, Sie können drei Tristate -Werte auswählen, um das Format der Datei anzugeben.
Nach dem Öffnen oder Erstellen einer Textdatei erhalten Sie ein Textstream -Objekt, das einen Cursor hat, genau wie ein Cursor in einem Textverarbeitungsprogramm, der angibt zu lesen. Sie können kein Textstream -Objekt über CreateObject erstellen.
Die Eigenschaften und Methoden des Textstream -Objekts sind unten aufgeführt
Textstream.a
Tendofline-schreibgeschützte Boolesche Menge, wenn sich der Cursor am Ende der aktuellen Linie befindet, ist sein Wert wahr, sonst ist er falsch
Textstream.atendofstream schreibgeschützte boolesche Menge, wenn der Cursor am Ende des Streams ist, ist sein Wert wahr, sonst ist er falsch
Textstream.column schreibgeschützte Ganzzahl, zählt die Anzahl der Zeichen vom Beginn der Zeile bis zur aktuellen Cursorposition
Textstream.line schreibgeschützte Ganzzahl angibt die Zeilennummer der Cursorzeile in der gesamten Datei
Textstream.close () Schließen Sie den Stream und die entsprechende Textdatei
Textstream.read (num) gibt an, dass eine bestimmte Anzahl von Zeichen aus der Textdatei aus der aktuellen Position des Cursors gelesen wird.
Textstream.readall () liest den gesamten Stream in eine Zeichenfolge
Textstream.readline () liest eine ganze Zeichenzeile in eine Zeichenfolge
TextStream.write (text) Schreiben Sie eine Zeichenfolge in den Stream
Textstream.writeLine () schreibt eine Textzeichenfolge in den Stream
Textstream.skip (num) In einem Stream bewegen Sie die Cursorposition um eine bestimmte Anzahl von Stringlängen
Textstream.skiplines () verschieben Sie den Cursor in einer bestimmten Anzahl von Zeilen
Textstream.writeBlank schreibt eine bestimmte Anzahl leerer Zeilen in den Stream
Zeilen (num)
Ich glaube, dass jeder die leistungsstarken Funktionen der ASP -Dateizugriffskomponente spüren kann. Lesen Sie die Datei auf dem Remote -Server über die Dateizugriffskomponente und generieren automatisch eine brandneue HTML -Seite, ohne die HTML -Dateien einzeln zu aktualisieren. Wenn Sie interessiert sind, können Sie die Dateizugriffskomponente von ASP verwenden, um Ihren eigenen vollautomatischen HTML -Generator zu schreiben, um das fortschrittliche und einfache Gefühl der Wartung der Website voll und ganz zu genießen.