Seminar Praktische Informatik Thema: Active Server Pages (ASP) Zusammenfassung des Vortrags vom 22.01.04 Christian Geschwentner Inhaltsverzeichnis: Vorwort 1. Allgemeine Einführung 2. Systemvoraussetzungen 3. Das ASP-Prinzip 4. Anwendbarkeit 5. Übersicht über die ASP-Objekte 6. Übersicht über die ASP Komponenten 7. Struktureller Aufbau eines ASP-Files Einschub: Grundlegendes zu Cookies 8. Einige Methoden und Collections der Response und Request Objekte 9. Das ASP Server-Objekt und die Scripting.FileSystemObject-Komponente 10. Konnektieren einer Datenbank mit dem ActiveX-Data-Object Modell (ADO) 11. Zugriff auf eine relationale Datenbank mit ADO und SQL-Queries 12. Das Session Objekt 13. Das Application Objekt 14. Der Einsatz von ActiveX-Komponenten Quellenangaben
Vorwort Das benötigte Know-How um Active Server Pages zu entwickeln ist insgesamt relativ umfangreich, da verschiedenste Technologien und Programmiersprachen zum Einsatz kommen können. Deshalb kann es nicht Ziel dieses Vortrags sein ein umfassendes Wissen über ASP zu vemitteln. Ich werde demnanch vielmehr versuchen die wichtigste Grundlagen kompakt darzustellen und mit kurzen Beispielen zu ergänzen. 1. Allgemeine Einführung ASP ist keine Programmiersprache sondern sind eine Technologie die 1996 von Microsoft für serverseitiges dynamisches Skripting entwickelt wurde. ASP kann man also als Programm verstehen, das innerhalb der Internet Information Services(IIS) ausgeführt wird. Die ASP-Engine ist also im Grunde genommen eine ca. 300 kb grosse DLL*. ASP bestehen aus: - einer Skriptsprache wie VBScript oder JScript bzw. PerlScript - vordefinierten oder selbst erstellten COM*-Komponenten - Objekten der ADO-ODBC-Schnittstelle - ActiveX-Steuerelementen, wie z.b.: die TextBox-Steuerung im Internet Explorer - und natürlich ASP-Objekten und Methodenaufrufen *DLL ist die Kurz-Form für Dynamic Link Library, eine Library von ausführbaren Funktionen oder Daten die von einer Windows-Applikation benutzt werden können. Eine DLL stellt eine oder mehrere Funktionen zur Verfügung, auf die von einem Programm durch einen statischen oder dynamischen Link zu dieser. DLL zugegriffen weden kann. Eine.DLL kann allerdings auch nur Daten enthalten. Endungen können sein.dll,.exe., drv, oder.fon. * COM steht für Component Object Modell.Eine COM-Componente stellt dem Client eine Anzahl an Methoden zur Verfügung
2. Systemvoraussetzungen Um mit Microsoft-ASP zu arbeiten benötigt man: Windows XP Professional, Windows 2000 mit IIS 5.0 oder höher Windows NT mit Option Pack 4.0 Windows 95/98 mit Option Pack 4.0/ Personal Web Server (PWS) Microsoft ASP funktioniert nicht mit : Windows XP Home Edition Windows ME ohne PWS anderen OS Sun Chilli-ASP unterstützt folgende Betriebsystemen: * in Verbindung mit dem Apache-Webserver Solaris 9 and 8 Operating Systems (SPARC Platform Edition) Linux (x86) Kernel 2.4, GLIBC 2.2.5 Red Hat Linux 7.3 SuSE Linux 8.0 Microsoft Windows NT and 2000 InstantASP: Microsoft Windows NT/2000/2003/XP mit (IIS5.1) Microsoft.NET v1.1 Framework or.net v1.1 Framework 3. Das ASP-Prinzip Sendet ein Browser einen gewöhnlichen HTML-Request an den Webserver,so sendet dieser das HTML-File an diesen zurück. Das ASP-Prinzip dagegen ist das Gleiche wie bei PHP. Aufgrund bestimmter Konventionen erkennt der Web-Server, dass eine Datei keine HTML-Datei sondern eine ASP-Datei ist. Er leitet die Anfrage zur ASP-Engine. Der Server mit dieser integrierten ASP-Umgebung interpretiert dann den in der Datei enthaltenen Script-Code Zeile für Zeile, liest und führt in aus, und sendet am Ende den dadurch erzeugten, gesamten HTML-Code an den aufrufenden Browser. Skript-Code kann bei ASP direkt in HTML eingebettet werden. Ein ASP-File kann genau wie ein HTML-File Text, HTML, XML, Skripte usw. enthalten. ASP-Files haben die Dateiendung ".asp". RechercheQuelle: SELFHTML: Version 8.0, Autor: Stefan Münz
Anmerkung: ASP gilt im allgemeinen als langsamer wie PHP. Man könnte meinen der Einsatz von PHP seie von vorneherein angebrachter. Im Grunde genommen kann man vieles was man mit PHP kann auch mit Active Serve Pages erreichen. Entwicklungen wie ASP.NET zeigen das ASP auch durchaus schneller sein können wie PHP. 4. Anwendbarkeit - ASP ist relativ einfach zu erlernen. - Datenbankenzugriff (XML, Access, MySQL, SQL-Server oder Oracle). - dynamisches Ändern oder Hinzufügen von Inhalten von Webseiten - einfache und schnell im Vergleich zu CGI-Skripten und Perl - bietet mehr Sicherheit, da der ASP-Code nicht im Browser angeschaut werden kann, schützt proprietäre (hauseigene) Geschäfts-Algorithmen und Informationen - Möglichkeit den Netzwerk-Traffic zu minimieren - kosteneffizienter für Entwickler,da auf der Active-Plattform (Microsofts Internet-Strategie) basierend - ergänzen bereits existierende Technologien wie beispielsweise das Internet Server Application Programming Interface (ISAPI)* oder den Internet Database Connector«(IDC)* *IDC ist ein Tools des IIS um SQL-Suchanfragen an den Server zu schicken *Auf das ISAPI kommen wir später im Kapitel über Datenbankenzugriff noch einmal zu sprechen 5.Übersicht über die ASP Objekte
6.Übersicht über die ASP Komponenten Anmerkung: Unter Collections sind Gruppen von Objekten des gleichen Typs zu verstehen. Auf die Methoden und Collections wird im späteren Verlauf noch eingegangen. Die folgenden Programmierbeispiele sind auch unter ChilliASP laufähig. 7.Struktureller Aufbau eines ASP-Files Eine ASP-Seite enthält normalerweise HTML-Tags, kann aber auch serverseitige Skripte enthalten, diese stehen dann zwischen den Skript-Begrenzungszeichen* "<% und %>". Die Default-Skriptsprache ist VBScript. *auf Englisch auch Script-Delimiters <html> <body> <%@ Language=VBScript %> oder <%@ Language=JScript %> <%...der eigentliche Code* %> </body> </html>
*hier könnte also im einfachstem Fall z.b.: response.write("hello WORLD!") stehen, womit der in Anführungszeichen stehende Text ausgegeben wird um das Verständis der folgenden Kapitel zu erleichtern Einschub: grundlegendes zu Cookies Cookies sorgen dafür, daß der Client-Browser und Server Informationen zwischenspeichert oder Statusinformationen über unterschiedliche Seiten hinweg beibehält. Im einfachsten Fall enthält ein Cookie Informationen, die der Client lokal abspeichert und auf die der Server später zurückgreifen kann. Der Client schickt Cookies als Teil eines HTTP-Requests an den Server zurück. Cookies sind in der Lage, jedwede Art von Informationen zu speichern und decken einen großen Anwendungsbereich ab. Tabelle: Die Cookie-Eigenschaften Eigenschaft Domain Expires Path Secure Beschreibung Spezifiziert die Domäne, auf die ein Request durchgeführt werden muß, damit das Cookie zum Server zurückgeschickt werden kann. In anderen Worten ausgedrückt heißt dies, daß diese Eigenschaft definiert, auf welche Domain sich das Cookie bezieht. Diese Eigenschaft setzt das Datum und die Uhrzeit, bis zu welcher das Cookie vorgehalten wird. Wurde kein Wert definiert, wird das Cookie gelöscht, sobald der Anwender den Browser verläßt. Spezifiziert den Pfad, der dem Client übertragen werden muß, damit er das Cookie bei Bedarf an die richtige Lokalität übertragen kann. Diese Eigenschaft ist entweder TRUE oder FALSE. Es muß ein sichere Verbindung bestehen, um das Cookie an den Server zu senden.
Die Eigenschaft eines Cookie wird mit ASP so gesetzt: Response.Cookies(cookiename).Property = PropertyValue Die Key-Werte werden derart gesetzt: Response.Cookies(cookiename)(keyname) = keyvalue Textquelle: Ein Imprint der Markt&Technik Buch- und Software-Verlag GmbH. 8. Einige Methoden und Collections der Response und Request Objekte Folgendes Beispielskript demonstriert wie mit ASP und VBScript Daten in ein Formular eingegeben werden und anschliessend in einer Cookie- Collection clientseitig gespeichert werden. Dabei werden folgende Methoden verwendet: Response.write: zur Ausgabe eines Strings Ausserdem werden folgende Collections verwendet: Response.Cookies: zum Erzeugen von Cookies und Zuweisen von Cookie-Werten Request.Cookies: um Werte in Cookies abzurufen Request.QueryString: um die Werte der bei der Formularübermittlung erzeugten HTTP- Suchstrings zu erhalten Request.ServerVariables: hiermit kann man die ServerVariablen abrufen und z.b.:die IP-Adresse oder Informationen über den Browser des Users erhalten
`Definition des HTML-Formulars, es wird die get-methode verwendet <html><head><body><font size=+1>bestellformular</font> <form action="ex1.asp" method="get"> Name : <input type="text" name="uname" size="30"><br> Adresse : <input type="text" name="adress" size="30"><br> Artikelnummer: <input type="text" name="article" size="30"><br> Anzahl : <input type="text" name= "amount" size="30"><br> <input type="submit" value="bestellung absenden!"></form> <% dim fname,fadr,farnum,fanz fname=request.querystring("uname") fadr=request.querystring("adress") farnum=request.querystring("article") fanz=request.querystring("amount") `Speichern der Eingaben und der IP-Adresse in Cookies If fname<>"" and fadr <>"" and farnum<>"" and fanz<>"" Then Response.Cookies("bestellung")("username")=fname Response.Cookies("bestellung")("adresse")=fadr Response.Cookies("bestellung")("artikelnummer")=farnum Response.Cookies("bestellung")("anzahl")=fanz Response.Cookies("bestellung")("ip-adresse") =Request.ServerVariables("remote_addr") Response.Cookies("bestellung")("dnslookup")= Request.ServerVariables("remote_host") Response.Write("<font size=-1>vielen Dank für ihre Bestellung! </font>") Else Response.Write("<font size=-1>bitte füllen Sie alle Felder aus! </font>") End If %> `Auslesen der Cookie-Collection vom Server aus, Ausgabe auf dem Client <% dim x,y response.write("<br>folgende Cookie-Collection wurde auf ihrem Rechner gespeichert:<br><font size=+1>") `Auslesen aller Cookie-Werte in einer Schleife for each x in Request.Cookies response.write("<p>") `Prüfen ob Schlüssel vorhanden if Request.Cookies(x).HasKeys then for each y in Request.Cookies(x) response.write(x & ":" & y & "=" & Request.Cookies(x)(y)) response.write("<br>") next end if response.write "</p>" next response.write "</font>" %> </body></head></html>