1 Inleiding In figuur 1 vraagt een host naar een HTML-pagina die in de Web-server is opgeslagen. De Web-server leest deze pagina van de hard disk en s...
In figuur 1 “vraagt” een host naar een HTML-pagina die in de Web-server is opgeslagen. De Web-server leest deze pagina van de hard disk en stuurt de desbetreffende pagina naar de host. harddisk 2 Webserver
This is a site This is a site
http://
host
1
Figuur 1 HTML-pagina opvragen In figuur 2 “vraagt” de host naar een ASP-pagina. De Web-server leest de ASP-pagina van de hard disk en converteert de ASP-commando’s in de pagina naar HTML-tags. Daarna stuurt de Web-server de aangepaste ASP-pagina naar de host. harddisk
2
<% ASP-code %>
Webserver
Hello
Hello http://
3 host 1
Figuur 2 ASP-pagina opvragen
Active Server Pages (ASP) – W.J. Roos, Mondriaan Techniek -
1/1
Een Web-server die ASP-commando’s naar HTML-tags converteert kan gegevens verwerken die in een database zijn opgeslagen. De communicatie met een ASP-pagina en een database vindt plaats via een Open DataBase Connectivity (ODBC). Een ODBC stelt de programmeur in staat om ASP-pagina’s in verschillende type databases data te lezen, wijzigen en toe te voegen Het voordeel hiervan is dat de programmeur niet precies hoeft te weten in welke type database de data is opgeslagen
programma
Open Database Connectivity (ODBC)
Access
SQLserver
Oracle
Figuur 3 ODBC
2 Benodigdheden Hardware aantal omschrijving 1 Windows NT-4.0 server met netwerkkaart
1 1
Windows95-werkstation met netwerkkaart hub of coaxbekabeling
Software aantal omschrijving 1 Service Pack 3 1 Internet Explorer 4.01 (IE) 1 HTML-editor 1 database 1 Internet Information Server 4.0
Figuur 4 Netwerk 2. Cursist heeft de IP-adressen in tabel 1 ingesteld. Tabel 1 IP-adressen systeem Windows95-werkstation A Windows NT-server
IP-adres 10.0.0.1 10.0.0.2
3. Cursist heeft Service Pack 3 geïnstalleerd op de Windows NT-server. 4. Cursist heeft Internet Explorer 4.01 geïnstalleerd op alle systemen in figuur 4.
5. Cursist heeft met behulp van de User Manager for Domains de global-groepen in tabel 2 gemaakt. Tabel 2 Global-groepen Group Name nwi doc
Description netwerkintegratie docenten
Active Server Pages (ASP) – W.J. Roos, Mondriaan Techniek -
3/3
6. Cursist heeft de users in tabel 3 lid gemaakt van de groepen. Tabel 3 Leden groepen users nwi en Domain Users nwi-leerlingA (wachtwoord: nwi-llA) doc en Domain Users doc-A (wachtwoord: doc-A) 4 Database creëren Maak een database voor het opslaan van email-adressen. Deze database bestaat uit één tabel waarin de volgende velden staan: ? ? Voorletters ? ? Voorvoegsel ? ? Achternaam ? ? Email-adres Ga als volgt te werk: 1. Maak op de harde schijf C van de Windows NT-server de directorie asp_proef. 2. Start het programma Microsoft Access. 3. Maak een nieuwe database op basis van een lege database.
Menu 1 Op basis van een lege database
Active Server Pages (ASP) – W.J. Roos, Mondriaan Techniek -
4/4
4. Maak een database onder de naam db1 in de directorie asp_proef.
Menu 2 Maken 5. Maak een tabel. Klik op Nieuw.
Menu 3 Nieuwe tabel 6. Plaats de cursor op Wizard Tabbel en klik op de OK-toets.
Active Server Pages (ASP) – W.J. Roos, Mondriaan Techniek -
5/5
Menu 4 Wizard Tabel 7. Plaats de volgende velden in de tabel Voorletters, Voorvoegsel, Achternaam en Email-adres. Klik vervolgens op de Volgende>-toets.
Menu 5 Velden 8. Noem de tabel email en klik op de Volgende>-toets.
Active Server Pages (ASP) – W.J. Roos, Mondriaan Techniek -
6/6
Menu 6 Tabelnaam 9. Selecteer de optie: Gegevens in de tabel invoeren met behulp van een door de wizard gemaakt formulier. Klik vervolgens op de Voltooien-toets.
Menu 7 Wizard-formulier
Active Server Pages (ASP) – W.J. Roos, Mondriaan Techniek -
7/7
10. Plaats in de tabel een aantal records.
Menu 8 Invoerformulier 11. Sluit menu 8 nadat u een aantal records hebt ingevoerd. Druk op de Ja-toets als de volgende vraag verschijnt: Wilt u de wijziging in het ontwerp van het Formulier1 opslaan? 12. Kies een formuliernaam en druk op de OK-toets. 5 ODBC Zorg ervoor dat een applicatie via een ODBC-connectie de database db1.mdb kan benaderen. De Data Source Name (DSN) die een applicatie moet gebruiken om deze database te benaderen is email-adressen. Ga als volgt te werk: 13. Ga naar het Control Panel van de Windows NT-server. 14. Klik op het ODBC-icoon.
Menu 9 ODBC 15. Klik op de System DSN-tab.
Active Server Pages (ASP) – W.J. Roos, Mondriaan Techniek -
8/8
Menu 10 System DSN 16. Klik op de ADD...toets. 17. Selecteer de driver Microsoft Access Driver (*.mdb) en klik op de Finish-toets.
Menu 11 Drivers
Active Server Pages (ASP) – W.J. Roos, Mondriaan Techniek -
9/9
18. Type achter Data Source Name in: email-adressen
Menu 12 Data Source Name. 19. Klik op de Select… -toets. 20. Selecteer de database db1.mdb in de directory asp_proef.
Menu 13 Selecteer database
Active Server Pages (ASP) – W.J. Roos, Mondriaan Techniek -
10/10
21. Druk op de OK-toets in het Select Database-menu. 22. Druk op de OK-toets in het ODBC Microsoft Access 97 Setup-menu. 23. Druk op de OK-toets in het Data Source Administrator menu. 24. Sluit het Control Panel. 6 ASP-proef 1 De gegevens in de database db1.mdb moeten we met behulp van Internet Explorere in de Windows NTserver of een werkstation kunnen lezen.
Menu 14 Database-gegevens lezen m.b.v. IE Onderstaande ASP-pagina maakt dit mogelijk. ASP-pagina http://10.0.0.2/emailadressen_1.asp Email-adressen <% Set DBconn = Server.CreateObject("ADODB.Connection") DBConn.Open("email-adressen") sq1 = "SELECT * FROM email;" set RS = DBConn.Execute(sq1) %>
<strong>voorletters
<strong>voorvoegsel
Active Server Pages (ASP) – W.J. Roos, Mondriaan Techniek -
11/11
align="center"><strong>achternaam
<strong>emailadressen
<% While not RS.EOF %>
<% Response.write(RS("Voorletters")) %>
<% Response.write(RS("Voorvoegsel")) %>
<% Response.write(RS("Achternaam")) %>
<% Response.write(RS("Emailadres")) %>
<% RS.Movenext Wend DBConn.Close Set DBConn = Nothing %>
In de bijlage ASP-pagina’s staat een toelichting op dit programma. Plaats deze ASP-pagina in onder de naam emailadressen_1.asp in de homedirectorie van de de default Web site van de Microsoft Internet Information-server. Ga als volgt te werk: 25. Start Internet Service Manager van de Microsoft Internet Information Server. 26. Plaats de cursor op Default Web Site. 27. Klik op de rechter muistoets. 28. Klik op Properties. 29. Klik op de Home Directory-tab. 30. Achter Local Path staat de fysieke directorie van de Default Web Site. Noteer de naam van deze fysieke directorie. In deze fysieke directorie moet u de ASP-pagina wegzetten.
Active Server Pages (ASP) – W.J. Roos, Mondriaan Techniek -
12/12
Menu 15 Home Directory 31. Activeer de None-permission onder Application Settings in menu 15. 32. Stop en restart de Default Web Site. 33. Start een tekstverwerker of een HTML-editor en type de ASP-pagina in. 34. Plaats de ASP-pagina in de home directorie van de Default Web Site. U moet de ASP-pagina opslaan als ASCII-bestand! 35. Start IE in werkstation A en controleer of iedereen de ASP-pagina kan lezen. Type het volgende URL-nummer in: http://10.0.0.2/emailadressen_1.asp 36. Controleer of de mededeling in menu 16 op uw monitor verschijnt.
Active Server Pages (ASP) – W.J. Roos, Mondriaan Techniek -
13/13
Menu 156 Forbidden 37. Verklaar waarom deze mededeling op de monitor verschijnt. Geef ook aan hoe we dit probleem kunnen oplossen.
38. Zorg ervoor dat we de gegevens in de database db1.mdb kunnen lezen met behulp van IE. 39. Alleen leden van de groep doc mogen records wijzigen, toevoegen en verwijderen aan het emailbestand vanaf een Windows95-werkstation. Toon de docent aan dat u deze situatie hebt gerealiseerd.
7 ASP-proef 2 De gegevens in de database db1.mdb moeten we met behulp van Internet Explorer in de Windows NTserver of werkstation op achternaam kunnen selecteren. In menu 17 is het scherm afgebeeld, waarmee we kunnen aangeven op welke achternaam een ASP-pagina de gegevens in de database moet selecteren.
Menu 167 Selectiemenu Stel: In de database zijn twee records aanwezig waarin het achternaam-veld in de tabel email de waarde “Roos” heeft. Wanneer de gebruiker Roos intypt achter Achternaam en vervolgens op de Zoeken-toets drukt, verschijnen de gegevens in menu 18 op de monitor van de gebruiker.
Active Server Pages (ASP) – W.J. Roos, Mondriaan Techniek -
14/14
Menu 18 Selectie op achternaam Roos Onderstaande HTML- en ASP-pagina zorgen ervoor dat we met behulp van een browser records op achternaam kunnen selecteren in de database db1. HTML-pagina
zoeken.htm
Email-adressen zoeken
Type de achternaam in van de gebruikers waarvan u het email-adres wilt hebben.
ASP-pagina emailadressen_2.asp Email-adressen <% Achternaam = Request("Achternaam") Set DBconn = Server.CreateObject("ADODB.Connection") DBConn.Open("email-adressen") sq1 = "SELECT * FROM email WHERE Achternaam = '" & Achternaam & "';" set RS = DBConn.Execute(sq1) %> <% If Not RS.EOF Then %>
<strong>voorletters
<strong>voorvoegsel
<strong>achternaam
Active Server Pages (ASP) – W.J. Roos, Mondriaan Techniek -
In het email-bestand komt de gebruiker met de achternaam <% Response.write(Achternaam) %> niet voor <% End If DBConn.Close Set DBConn = Nothing %>
In de bijlage ASP-pagina’s staat een toelichting op de HTML- en ASP-pagina. Controleer of u de gegevens in de database db1 op een bepaalde achternaam kunt selecteren. Ga als volgt te werk: 40. Plaats de HTML- en ASP-pagina in de home directorie van de Default Web Site. U moet beide pagina’s opslaan als ASCII-bestand! 41. Start IE in werkstation A en controleer of iedereen de ASP-pagina kan lezen. Type het volgende URL-nummer in: http://10.0.0.2/zoeken.htm
42. Toon de docent aan dat we record op een bepaalde achternaam kunnen selecteren.
Active Server Pages (ASP) – W.J. Roos, Mondriaan Techniek -
16/16
8 ASP-proef 3 In menu 18 is het scherm afgebeeld, waarmee we records aan de database db1 kunnen toevoegen.
Menu 19 Records toevoegen Onderstaande HTML- en ASP-pagina zorgen ervoor dat we met behulp van een browser records op achternaam kunnen selecteren in de database db1. HTML-pagina
invoeren.htm
Invoeren
Type de gegevens in van de nieuwe email-gebruiker.
Active Server Pages (ASP) – W.J. Roos, Mondriaan Techniek -
Uw gegevens zijn toegevoegd aan het email-bestand.
Controleer of u de gegevens in de database db1 op een bepaalde achternaam kunt selecteren. Ga als volgt te werk: 43. In menu 19 kan zich de situatie voordoen dat de gebruiker geen waarde invult bij één of meerdere van de velden. Om problemen te voorkomen moet u bij elk veld in de tabel email binnen de database db1 vastleggen, dat een veld niet een bepaalde lengte hoeft te hebben U doet dit als volgt: a) Start het programma Microsoft Access in de Windows NT-server. b) Open de database db1. c) Open de tabel email. d) Klik op het icoon Beeld.
Menu 20 Beeld
Active Server Pages (ASP) – W.J. Roos, Mondriaan Techniek -
18/18
e) Selecteer bij de velden Voorletters, Voorvoegsel, Achternaam en EmailAdres de optie “Ja” achter Lengte nul toegestaan, zie menu 21.
Menu 21 Veldlengte f) Druk op het Opslaan-icoon (diskette) g) Klik op de Ja-toets. h) Sluit de database db1. 44. Plaats de HTML- en ASP-pagina in de home directorie van de Default Web Site. U moet beide pagina’s opslaan als ASCII-bestand! 43. Start IE in werkstation A en controleer of iedereen de ASP-pagina kan lezen. Type het volgende URL-nummer in: http://10.0.0.2/invoeren.htm
Active Server Pages (ASP) – W.J. Roos, Mondriaan Techniek -
19/19
45. Toon de docent aan dat we records aan de database kunnen toevoegen.
Active Server Pages (ASP) – W.J. Roos, Mondriaan Techniek -
20/20
9
Opdracht
46. Inleiding Een docent geeft zijn netwerkintegratiecursisten opdracht om twee vragen te beantwoorden. Alleen cursisten die lid zijn van de domeingroep nwi mogen de vragen kunnen lezen en beantwoorden. De vragen zijn opgeslagen in de Internet Information Server.
Menu 22 Vragen Een netwerkintegratiecursist kan deze vragen beantwoorden, als hij plaatsneemt achter werkstation A in figuur 4. Onder elke vraag staat een tekstbox waarin de cursist het antwoord kan typen. De naam en de antwoorden op de twee vragen worden opgeslagen, in een database als de cursist op de Invoeren-toets klikt. Alleen een docent die lid is van de domeingroep doc mag de antwoorden lezen in de database, als hij/zij plaatsneemt achter werkstation A en IE start. Gevraagd Realiseer de geschetste situatie in de inleiding
Active Server Pages (ASP) – W.J. Roos, Mondriaan Techniek -
21/21
Toelichting ASP–proef 1 ASP-commando’s plaatsen we tussen de tekens <% en %> <% … … … … … … … . %> Een object is een verzameling van computerprogramma’s die een programmeur kan aanroepen. Zes topniveau built in objects vormen de kern van Active Server Pages. De built in objects zijn: ?? ?? ?? ?? ?? ??
Bovenstaande objecten maken het mogelijk om nieuwe deel-objecten te creëren met behulp van de CreateObject-methode. Het ADODB.Connection-object is lid van de ADODB-collectie van deel-objecten. Dit object is verantwoordelijk voor het beheren van de communicatie tussen de ODBC en een fysieke database. Hieronder staat de volledige syntax. Set DBconn = Server.CreateObject("ADODB.Connection") Het deelobject dat verantwoordelijk is voor de verbinding tussen de ODBC en een fysieke database heeft de auteur van deze opdracht DBConn genoemd. Onderstaand ASP-commando opent de verbinding tussen de ODBC-connector en de database met de DSN-naam email-adressen DBConn.Open("email-adressen") In de variabele sq1 leggen we vast, welke records de database moet selecteren. sq1 = "SELECT * FROM email;" "SELECT * FROM email;" betekent dat de ASP-pagina alle records in de tabel email moet selecteren. Met onderstaand ASP-commando geven we de selectie door aan de database die aan de ODBC-connector is gekoppeld. set RS = DBConn.Execute(sq1) De tabel waarin alle record staan die in de email-database voorkomen, heeft onderstaande kopregel. voorletters
voorvoegsel
achternaam
email-adressen
Voor deze kopregel zijn onderstaande HTML-tags aan de ASP-pagina toegevoegd.
Active Server Pages (ASP) – W.J. Roos, Mondriaan Techniek -
22/22
<strong>voorletters
<strong>voorvoegsel
<strong>achternaam
<strong>email-adressen
Indien aan een bepaalde opdracht wordt voldaan, voert de Web-server een reeks HTML-tags en ASPcommando’s één of meerdere keren worden uit. In de ASP-pagina zijn dit de HTML-tags en ASPcommando’s die staan tussen onderstaande ASP-commando’s. <% While not RS.EOF %> … … … … … … .. … … … … … … .. <% Wend %> Het programma voert de reeks HTML-tags en ASP-commando’s uit, als er nog geselecteerde records zijn (While not RS.EOF). EOF is de afkorting van End of File. De ASP-pagina krijgt het volgende record binnen de geselecteerde reeks, als onderstaand ASP-commando wordt uitgevoerd. RS.Movenext Het weergeven van het Voorletters-, voorvoegsel-, Achternaam- en Email-adressenveld binnen een record gebeurt met behulp van onderstaande ASP-commando’s <% Response.write(RS("Voorletters")) %> <% Response.write(RS("Voorvoegsel")) %> <% Response.write(RS("Achternaam")) %> <% Response.write(RS("Emailadres")) %> Onderstaand ASP-commando verbreekt de verbinding tussen de ODBC-connector en de database. DBConn.Close Het vrijgeven van de geheugenlokaties voor de ODBC-verbinding gebeurt met het ASP-commando Set DBConn = Nothing
Active Server Pages (ASP) – W.J. Roos, Mondriaan Techniek -
23/23
Bijlage Toelichting ASP–proef 2 De grafische interface in menu 1 stelt een eindgebruiker in staat om aan te geven op welke achternaam de database records moet selecteren.
Menu 1 Invoermenu Het invoerformulier is gerealiseerd met behulp van onderstaande HTML-tags.
Het volgende gebeurt, wanneer de eindgebruiker op de Zoeken-toets klikt: ? ? De gedefinieerde variabele Achternaam (zie attributen: input type="text" name="Achternaam" size="50") bevat de tekst die de eindgebruiker in de box heeft ingetypt.
? ? De HTML-pagina geeft de waarde van de variabele Achternaam door aan de ASP-pagina emailadressen_2.asp. Zie attributen: method="POST" action="emailadressen_2.asp
? ? De ASP-pagina emailadressen_2.asp verwerkt de ingetypte achternaam. Dit gebeurt met het onderstaande ASP-commando.
sq1 = "SELECT * FROM email WHERE Achternaam = '" & Achternaam & "';"
De waarde van de ingetypte tekst die de ASP-pagina heeft gekregen van de HTML-pagina is hierboven als volgt weergegeven: & Achternaam & In de sq1-variabele hebben we vastgelegd dat de ASP-pagina in de email-tabel van de database alle
Active Server Pages (ASP) – W.J. Roos, Mondriaan Techniek -
24/24
records moet selecteren waarin het Achternaam-veld de waarde heeft van de ingetypte tekst.
Wanneer er minimaal één record in de database aanwezig is met de gevraagde achternaam voert de ASPpagina alle opdrachten uit tussen If Not RS.EOF Then en Wend. De ASP-pagina voert de opdrachten tussen Else en End If uit, indien er geen records met de gevraagde achternaam aanwezig zijn <% If Not RS.EOF Then %>
<strong>voorletters
<strong>voorvoegsel
<strong>achternaam
<strong>email-adressen
<% While not RS.EOF %>
<% Response.write(RS("Voorletters"))
<% Response.write(RS("Voorvoegsel"))
<% Response.write(RS("Achternaam"))
<% Response.write(RS("Emailadres"))
<% RS.Movenext Wend %>
<% Else %>
In het email-bestand komt de gebruiker met de achternaam <% Response.write(Achternaam) %> niet voor <% End If DBConn.Close Set DBConn = Nothing %>
%> %> %> %>
De overige ASP-commando’s zijn hetzelfde als die van ASP-proef 1.
Active Server Pages (ASP) – W.J. Roos, Mondriaan Techniek -