ASP - Fachbereich Maschinenbau

Werbung
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
Herunterladen