Fachhochschule Stralsund Fachbereich Maschinenbau Lehrgebiet Informatik Prof. Dr.-Ing. Christine Wahmkow Arbeitsblätter für ASP ( Active Server Pages) zum Erstellen dynamischer Webseiten Dynamische Webseiten verändern ihren Inhalt entweder in Abhängigkeit von Zugriffsberechtigungen, Interaktivitäten der Nutzer, Datenbankinhalten oder haben einfach ein zeitabhängiges Verhalten. Zum Gestalten solcher Seiten gibt es die verschiedensten Technologien: - ASP - JSP - Servlets - CGI-Programme - Perl-Programme Ganz kurz: Bei ASP wird VBScript in eine HTML-Seite integriert. Bei JSP wird Java in HTML integriert, aber auch sehr oft JavaBeans. Servlets sind reine Java-Programme. CGI und Perl sind eigenständige Programmiersprachen, deren Programme in HTML eingebunden werden können. Sie arbeiten nicht so effektiv wie die 3 erstgenannten. Allen Vorgehensweisen gemeinsam ist, dass die Programme auf einem WebServer abgearbeitet werden. Der Client sieht das Ergebnis der serverseitigen Bearbeitung in seinem Browser. Wie nun funktioniert ASP genau? html-Dokumente asp-Dokumente ausführen WebServer mit ASP- Erweiterung html herunterladen Anfrage (Link) html interpretieren html herunterladen Client mit Browser abfragen Datenbank Abb. 1: Das Prinzip von ASP ____________________________________________ Arbeitsblätter ASP (Active Server Pages) Seite 1 Der Server bekommt vom Client eine Anfrage in Form eines Linkes auf eine html-Seite oder eine asp-Seite. Eine html-Seite wird sofort zum Client geschickt und dort vom Browser interpretiert. (Die alt bekannten statischen Seiten) Eine asp-Seite ist eine html-Seite, die VBScript enthält, also Programmcode, um irgendetwas zu berechnen, zu vergleichen oder auszuwählen. Der Client hat keinen Basic-Interpreter, der das Script ausführen kann. (Oder haben Sie normalerweise Basic auf Ihren PC ?) Also macht das der Webserver. Der interpretiert das Script und wandelt das Ergebnis in normales HTML um. Und dieses html wird zum Client geschickt. Der kriegt also von Basic überhaupt nichts mit, der sieht nur reines html. Dynamische Seiten sind natürlich durch die Verbindung zu einer Datenbank erst so richtig interessant. Auch das ist das Kennzeichen von ASP. Außer Script enthält ASP noch serverseitige Komponenten, um überhaupt Dateien anlegen und modifizieren zu können. Jeder Online-shop funktioniert so. Also erledigt der Server auch die Datenbankarbeit. Und auch hier ist es genau wie bei den Scripts. Der Nutzer, also der Client bekommt lediglich reines html zurückgeschickt und sieht nichts von komplizierten Abfragen und Datenbanken. Es ist klar, dass die Datenbank auf dem Server und nicht beim Client laufen muss. Jeder industrietaugliche Server kann heutzutage asp-Seiten verarbeiten. Die von Microsoft kosten Geld und man ist außerdem an das Betriebssystem Windows NT oder Windows 2000 gebunden. Der Microsoft Personal Web Server ist zwar kostenlos, kann aber eine größere Anzahl Nutzer nicht gleichzeitig bedienen. Der Microsoft Internet Information Server ist dem Windows NT Option Pack beigelegt und kostet Geld. Eine Alternative stellt der WebServer von Apache dar. Der ist kostenlos im Internet verfügbar und läuft auf vielen Betriebssystemen, wie Windows NT, Linux, Solaris usw. ( http://www.apache.org ) Um mit ASP arbeiten zu können, braucht man allerdings noch die ASP-Erweiterung. Die bietet Chilisoft als Trialversion für 30 Tage an. (http://chilisoft.com) Hier schon mal ein Beispiel einer asp-Seite und der vom Server umgewandelten html-Seite, von Netscape interpretiert. Programm: zaehlen.asp Oder: <%=i %> anstelle von response.write Abb. 2: ASP-Quelle ____________________________________________ Arbeitsblätter ASP (Active Server Pages) Seite 2 Abb. 3: html von Browser interpretiert Und so sieht der Quelltext des rechten Bildes beim Client aus: Abb. 4: html-Quelle Softwareseitige Voraussetzungen für das Ausführen von ASP-Seiten 1. Installieren des Apache Webservers ( http://www.apache.org ) Nach den Herunterladen des msi-package (Apacheversion.msi) wird dieses durch Anklicken aufgerufen und los geht’s. Es wird die msi-Datei gestartet. Der in NT vorhandene MSInstaller erledigt das. Das bereitet in der Regel kein Problem. Nach dem Neustart des PC muss die Adresse http://localhost/ eingegeben werden, dann sieht man diese Seite: Abb.:5 Der installierte Apache Server ____________________________________________ Arbeitsblätter ASP (Active Server Pages) Seite 3 2. Installieren der ASP-Erweiterung von Chilisoft (http://chilisoft.com) Downloaden, Entpacken, bei runtergefahrenem Webserver installieren, PC oder Apache neu starten, ASP-Engine wird automatisch mit gestartet, testen siehe Abb.6 – eigentlich kein Problem; beim Installieren der Testversion ist diese 30 Tage lauffägig !!! Abb. 6: Aufruf der aspBeispiele Sehen Sie sich die Beispiele an. In der Datei http://localhost/caspsamp/server.asp finden Sie die aktuellen Servereinstellungen. Achten Sie darauf, dass die Pfadangabe in der Adresse nicht mit dem Pfad im Explorer übereinstimmt. Bei den Server Variablen ist folgender physischer Pfad eingestellt: In diesem Pfad müssen Sie in Zukunft Ihre asp-Dateien ablegen. server.asp Die URL ist dagegen folgende: Ruft man die Seiten von einem Client-PC auf, so muß man als URL die Serveradresse mit Pfadangabe eingeben, also nicht http://localhost..... Hat der Server keinen Namen, so kann man die IP-Adresse ermitteln. Bei Windows 2000 ist das das DOS-Programm IPCONFIG.exe ASP programmieren 1. Einführung Active Server Pages verbinden ausführbaren Programmcode mit HTML-Elementen. Zu diesem Zweck muss der Code für den Server gekennzeichnet werden, damit dieser beim Aufruf der Seite die Programmelemente ausführen kann. Der Anfang eines Codefragmentes wird durch <% eingeleitet. Abgeschlossen wird das Fragment durch %> Das Response-Objekt beinhaltet alle Informationen, die von einem Server zu einem Broqser geschickt werden, einschließlich der des HTML-Inhalts, der von einer ASP-Seite erzeugt wird. Im Gegensatz dazu beinhaltet das Request-Objekt alle Informationen, die von einem Browser zu einem Server gesendet werden, einschließlich der Variablen und Anfrage-Zeichenketten. Probieren Sie das Programm aus Abb.2. Achten Sie darauf, dass Ihre Programme im richtigen Verzeichnis stehen. Die Beispiele von Chilisoft sowie die Beispiele aus /1/ zeigen Ihnen den Umgang mit ASP. ____________________________________________ Arbeitsblätter ASP (Active Server Pages) Seite 4 2. Daten aus Formularen übernehmen Interaktivität mit dem Nutzer bildet ein enormes Potenzial für dynamische Seiten. Sie kennen das von den Suchmaschinen, wo man die Suchbegriffe in einem Formularelement eingeben kann. Dahinter hängt natürlich noch eine Datenbank. Aber dazu komme ich später. Erst einmal geht es um die Übernahme der Formulardaten als Variablen für asp. Innerhalb von ASP wird irgendetwas berechnet und dann in html ausgegeben. Zur Erstellung von Formularelementen sehen Sie sich bitte die entsprechenden Arbeitsblätter auf Laufwerk W: des Fachbereichsservers an oder im Internet unter: http://www. ?.de oder in /1/. Folgende Vorgehensweise: Man erstellt 2 Seiten: Eine reine HTML-Seite mit den Formularelementen und eine Seite, wo die Einträge aus dem Formular mittels ASP ausgewertet werden. Beispiel: formular.html und addieren.asp Quelltexte: Formular.html: Hierdurch werden die Daten zur ASP-Datei geschickt submit heißt abschicken ____________________________________________ Arbeitsblätter ASP (Active Server Pages) Seite 5 Addieren.asp: Variablenwerte übernehmen mit Request-Objekt, trim() schneidet Leerzeichen ab, Variablen müssen nicht deklariert werden Ausgabe unter Verwendung der Ausgabetrennzeichen, Formularinhalte werden als Zeichenketten behandelt, Hier erfolgt die Zeichenkettenverknüpfung Umwandlung der Zeichenketten in Integerwerte durch Int() Übungsaufgaben: Wie arbeitet man mit reellen Zahlen ?? Wie kann man die arithmetischen Operatoren eingeben ? 3. Arbeit mit Dateien Mittels ASP kann man Dateien, die auf dem Server liegen, lesen, erzeugen, erweitern oder manipulieren. Folgende Vorgehensweise: 3.1 Datenbank anlegen (siehe auch /1/ ab Seite 104) Dazu nutzt man irgend ein relationales Datenbankmanagementsystem. Wir haben hier ACCESS im Hause. ACCESS ist für viele gleichzeitige Zugriffe nicht geeignet, aber für gelegentliche Zugriffe auf die Dateien geht es schon. Die Alternative wäre MySQL. Man startet ACCESS und legt eine neue Datenbank an. Innerhalb dieser entwirft man noch die notwendigen Tabellen mit den Tabellenspalten. Man kann in die Tabellen Datensätze reinschreiben oder auch leer lassen. Das hängt ja nun von der Anwendung ab. 3.2 Verbindung zu der Datenbank herstellen (siehe /1/ ab Seite 108) Über die Systemsteuerung erstellt man einmalig für eine Datenbank eine ODBC-Datenquelle. Zuerst fügt man den richtigen Treiber für das entsprechende Datenbanksystem hinzu. In unserem Fall ist das ACCESS. Wichtig ist im nächsten Schritt, dass die Datenbank als Systemdatenquelle (System DSN) eingetragen wird, damit der Web-Server sie auch als solche erkennt. Bedenke: Sobald der Ort der Datenbank verändert wird, muß die DSN (Data Source Name) ebenfalls geändert werden. ____________________________________________ Arbeitsblätter ASP (Active Server Pages) Seite 6 1.Klick 3.3 Zugriff auf die Datenbank VBScript, wie es bei ASP verwendet wird, besitzt selbst keine Sprachkonstrukte, um auf Datenbanken zuzugreifen. Hier hat sich Microsoft aber eine ausreichende Erweiterung ausgedacht. Innerhalb der Scripting-Sprache können beliebige ActiveX-Objekte verwendet werden. Deshalb liegt es nahe, das ADO (Active Data Object) für die Verbindung zur Datenbank zu verwenden. Dieses Objekt verfügt über eine Methode zum Öffnen der Datenbank: <% set con=Server.createObject(„ADODB.connection“) ‘Ein Object con wird geschaffen con.open”accessStud” ‘con öffnet die Datenbank %> 3.4 Die Datenbank abfragen Dazu nutzt man SQL. Structured Query Language ist innerhalb der Datenbanken zu einem Standard geworden. Jede gängige Datenbank ist heutzutage SQL-fähig. SQL-Befehle kann man nun auch in ASP einbinden. Zuerst weist man den SQL-Befehl einer Stringvariablen zu. Nach dem Verbinden der Datenbank verfügt man über das Objekt con, welches Befehle ausführen kann. Zur Ausführung übergibt man den String an con und mittels der Methode execute wird SQL abgearbeitet. Hinzufügen von Datensätzen: Syntax: INSERT INTO Tabelle (Spaltenliste) VALUES (Wertliste) Beispiele: sqlstring="insert into products ( product_name, product_price )" &_ "values ('Gift',4.90)" con.execute sqlString productName=”Gift” productPrice=5.50 sqlstring="insert into products ( product_name, product_price )" &_ "values (' ” & productName & ” ',” & productPrice & “ )" con.execute sqlString ____________________________________________ Arbeitsblätter ASP (Active Server Pages) Seite 7 sqlstring="insert into studies ( Mat_nr, name, vorname )" &_ "values ('2222','Schulze','Ole')" con.execute sqlstring con.close Aktualisieren von Datensätzen: Syntax: UPDATE Tabelle SET Spalte=neuerWert WHERE Spalte=Wert Beipsiele: SqlString= „” UPDATE Products „SET product_price=6.50 WHERE product_name=’Gift’ “ Con.Execute sqlString SqlString= „” UPDATE Products „SET product_price=6.50 WHERE product_id=15 “ Con.Execute sqlString Auswahl von Datensätzen: Syntax: SELECT Spalte FROM Tabelle Beispiel: Anzeigen einer Spalte aller Datensätze einer Tabelle : sqlString = "SELECT product_name FROM Products " &_ SET RS = Con.Execute( sqlString ) WHILE NOT RS.EOF %> <%=RS( "product_name" )%><p> <% RS.MoveNext WEND ‚ Ende der While-Schleife %> Beispiel: Auswahl bestimmter Datensätze einer Tabelle Syntax: SELECT Spalte FROM Tabelle WHERE Spalte=Wert sqlstring="SELECT mat_nr FROM T_Matnr WHERE mat_nr="&m&" " ‘ m ist eine Variable aus einem Formular set rs=con.execute(sqlstring) Beispiel: Sortierte Auswahl von Datensätzen Syntax: SELECT Spalte FROM Tabelle WHERE Spalte=Wert ORDER BY Spalte ____________________________________________ Arbeitsblätter ASP (Active Server Pages) Seite 8 sqlString = "SELECT product_id, product_name FROM Products ORDER BY “&_ “product_name" SET RS = Con.Execute( sqlString ) WHILE NOT RS.EOF %> <tr> <td> <a href="updateproduct.asp?pid=<%=RS( "product_id")%>"> <%=RS( "product_name" )%></a> </td> </tr> <% RS.MoveNext WEND %> weitere SQL- SELECT- Anweisungen: SELECT * FROM Tabelle SELECT Spalte1, Spalte2 FROM Tabelle SELECT Spalte FROM Tabelle WHERE Spalte < Wert SELECT DISTINCT Spalte FROM Tabelle SELECT Spalte FROM Tabelle WHERE Spalte < Wert ORDER BY Spalte SELECT Spalte1 FROM Tabelle WHERE Spalte2 < Wert1 AND Spalte3 = Wert2 SELECT Spalte1 FROM Tabelle WHERE Spalte2 < Wert1 OR Spalte3 = Wert2 - alle Spalten werden abgerufen - Spalte1 und 2 werden abgerufen - Auswahl von Datensätzen, die einem Kriterium genügen - Auswahl verschiedener Enträge z.B. Kategorien - Sortierung - Auswahl nach mehreren Kriterien mit UNDVerknüpfung - Auswahl nach mehreren Kriterien mit ORVerknüpfung 4. Literatur /1/ Stephen Walther, J. Levine E-Commerce mit ASP Verlag Markt + Technik, 2001 ISBN 3-8272-5839-1 /2/ Peter Curth ACCESS-Datenbanken ins Netz InternetWorld 7/99 S. 96-99 Ich wünsche viel Spaß und Erfolg ! /3/ Marty Hall Servlets und JavaServer Pages Verlag Markt + Technik 2001 ISBN 3-8272-5945-2 /4/ Ch.Wenz, Ch. Trennhaus, A. Kordwig Active Server Pages Verlag Markt + Technik 2001 ISBN 3-8272-5925-8 ____________________________________________ Arbeitsblätter ASP (Active Server Pages) Seite 9