10. Bijlagen – Tools voor webontwikkeling
Hier geven we aan waar u gratis hulpmiddelen kunt vinden en hoe u deze kunt installeren voor webontwikkeling in Java, PHP, ASP en asp.net. Sommige hulpmiddelen zijn in versie gewijzigd en het is mogelijk dat de hier gegeven uitleg niet meer van toepassing is op de meest recente versies. De lezer zal zich dan moeten aanpassen... :
- een recente browser die XML kan weergeven. De voorbeelden uit de cursus zijn getest met Internet Explorer 6.
- een recente versie van JDK (Java Development Kit). JDK bevat de Java 1.4-plug-in voor webbrowsers, waardoor deze Java-applets kunnen weergeven die gebruikmaken van JDK 1.4.
- een Java-ontwikkelomgeving voor het schrijven van Java-servlets. In dit geval is dat JBuilder 7.
- webservers: Apache, PWS (Personal Web Server, Cassini), Tomcat.
- Apache kan worden gebruikt voor de ontwikkeling van webapplicaties in PERL (Practical Extracting and Reporting Language) of PHP (Personal Home Page)
- PWS kan worden gebruikt voor de ontwikkeling van webapplicaties in ASP (Active Server Pages) of PHP op Windows-platforms. Cassini maakt ontwikkeling in ASP.NET mogelijk.
- Tomcat wordt gebruikt voor de ontwikkeling van webapplicaties met behulp van Java-servlets of JSP-pagina’s (Java Server Pages)
- een databasemanagementsysteem: MySQL
- EasyPHP: een tool die de Apache-webserver, de taal PHP en SGBD MySQL samenbrengt
10.1. Webservers, browsers, scripttalen
- Belangrijkste webservers
- Apache (Linux, Windows)
- Interner Information Server IIS (NT), Personal Web Server PWS (Windows 9x), Cassini (verschillende platforms .NET)
- Belangrijkste browsers
- Internet Explorer (Windows)
- Netscape (Linux, Windows)
- Mozilla (Linux, Windows)
- Opera (Linux, Windows)
- Server-side scripttalen
- VBScript (IIS, PWS)
- JavaScript (IIS, PWS)
- Perl (Apache, IIS, PWS)
- PHP (Apache, IIS, PWS)
- Java (Apache, Tomcat)
- Talen .NET
- Scripttalen aan de kant van de browser
- VBScript (IE)
- JavaScript (IE, Netscape)
- PerlScript (IE)
- Java (IE, Netscape)
10.2. Waar vind je de tools
http://www.netscape.com/ (downloadlink) | |
http://www.microsoft.com/windows/ie/default.asp | |
http://www.mozilla.org | |
http://www.php.net | |
http://www.activestate.com | |
http://msdn.microsoft.com/scripting (volg de link naar het Windows-script) | |
http://java.sun.com/ | |
http://www.apache.org/ | |
opgenomen in NT 4.0 Option Pack voor Windows 95 opgenomen in CD voor Windows 98 http://www.microsoft.com/ntserver/nts/downloads/recommended/NT4OptPk/win95.asp | |
http://www.microsoft.com | |
http://jakarta.apache.org/tomcat/ | |
http://www.borland.com/jbuilder/ | |
http://www.easyphp.org/ | |
http://www.asp.net |
10.3. EasyPHP
Deze applicatie is erg handig omdat het in één pakket het volgende combineert:
- de Apache-webserver
- een PHP-interpreter
- de SGBD MySQL (3.23.x)
- een beheertool voor MySQL: PhpMyAdmin
De installatie-app ziet er als volgt uit:

De installatie van EasyPHP verloopt probleemloos en er wordt een mappenstructuur aangemaakt in het bestandssysteem:

het uitvoerbare bestand van de applicatie | |
de directorystructuur van de Apache-server | |
de MySQL-structuur van SGBD | |
de directorystructuur van de phpMyAdmin-applicatie | |
de directorystructuur van php | |
de hoofdmap van de webpagina's die door de Apache-server van EasyPHP worden geleverd | |
structuur waarin CGI-scripts voor de Apache-server kunnen worden geplaatst |
Het belangrijkste voordeel van EasyPHP is dat de applicatie vooraf geconfigureerd wordt geleverd. Apache, PHP en MySQL zijn dus al geconfigureerd om samen te werken. Wanneer u EasyPhp start via de snelkoppeling in het programmamenu, verschijnt er een pictogram rechtsonder op het scherm.
![]() |
De E met een rode stip moet knipperen als de webserver Apache en de database MySQL operationeel zijn. Als je er met de rechtermuisknop op klikt, verschijnen er menuopties:

Met de optie Administration kun je instellingen aanpassen en de werking testen:

10.3.1. Configuratie van de interpreter PHP
Met de knop ‘php-info’ kunt u controleren of de combinatie Apache-PHP correct werkt: er verschijnt dan een informatiepagina PHP:

De knop 'Extensies' toont een lijst met de geïnstalleerde extensies voor PHP. Dit zijn in feite bibliotheken met functies.

Het bovenstaande scherm laat bijvoorbeeld zien dat de functies die nodig zijn voor het gebruik van de database MySQL inderdaad aanwezig zijn.
De knop ‘Instellingen’ toont de login/motdepasse van de beheerder van de database MySQL.

Het gebruik van de database MySQL valt buiten het bestek van deze korte presentatie, maar het is hier duidelijk dat er een wachtwoord moet worden ingesteld voor de databasebeheerder.
10.3.2. Apache-beheer
Nog steeds op de beheerpagina van EasyPHP kunt u via de link ‘uw aliassen’ aliassen instellen die aan een map zijn gekoppeld. Hierdoor kunt u webpagina’s elders plaatsen dan in de map www van de boomstructuur van easyPhp.

Als u op de bovenstaande pagina de volgende gegevens invoert:

en de knop valider gebruikt, worden de volgende regels toegevoegd aan het bestand <easyphp>\apache\conf\httpd.conf:
Alias /st/ "e:/data/serge/web/"
<Directory "e:/data/serge/web">
Options FollowSymLinks Indexes
AllowOverride None
Order deny,allow
allow from 127.0.0.1
deny from all
</Directory>
<easyphp> verwijst naar de installatiemap van EasyPHP. httpd.conf is het configuratiebestand van de Apache-server. Je kunt dus hetzelfde doen door dit bestand rechtstreeks te bewerken. Een wijziging in het bestand httpd.conf wordt normaal gesproken onmiddellijk door Apache verwerkt. Mocht dit niet het geval zijn, dan moet je de server stoppen en vervolgens opnieuw starten, altijd via het EasyPHP-pictogram:

Om ons voorbeeld af te ronden, kunnen we nu webpagina’s in de mapstructuur e:\data\serge\web plaatsen:
en deze pagina opvragen met behulp van de alias st:

In dit voorbeeld is de Apache-server geconfigureerd om op poort 81 te werken. De standaardpoort is 80. Dit wordt bepaald door de volgende regel in het bestand httpd.conf dat we al eerder zijn tegengekomen:
10.3.3. Het Apache-configuratiebestand [htpd.conf] htpd.conf
Als je Apache wat gedetailleerder wilt configureren, moet je het configuratiebestand httpd.conf, dat zich hier in de map <easyphp>\apache\conf bevindt, “met de hand” aanpassen:

Hier volgen enkele belangrijke punten uit dit configuratiebestand:
| rol |
geeft de map aan waarin de Apache-structuur zich bevindt | |
geeft aan op welke poort de webserver zal werken. Meestal is dit 80. Door deze regel te wijzigen, kan de webserver op een andere poort worden ingesteld | |
het e-mailadres van de beheerder van de Apache-server | |
de naam van de machine waarop de Apache-server draait | |
de installatiemap van de Apache-server. Wanneer er in het configuratiebestand relatieve bestandsnamen voorkomen, zijn deze relatief ten opzichte van deze map. | |
de hoofdmap van de boomstructuur van de webpagina's die door de server worden geleverd. Hier komt de url http://machine/rep1/fic1.html overeen met het bestand E:\Program Files\EasyPHP\www\rep1\fic1.html | |
stelt de eigenschappen van de vorige map in | |
logmap, dus in feite <ServerRoot>\logs\error.log: E:\Program Files\EasyPHP\apache\logs\error.log. Dit is het bestand dat u moet raadplegen als u merkt dat de Apache-server niet werkt. | |
E:\Program Files\EasyPHP\cgi-bin is de hoofdmap van de directorystructuur waar u CGI-scripts kunt plaatsen. De URL van het script CGI E:\http://machine/cgi-bin/rep1/script1.pl is dus URLhttp://machine/cgi-bin/rep1/script1.pl.Program Files\EasyPHP\cgi-bin\rep1\script1.pl. | |
stelt de eigenschappen van de bovenstaande map in | |
regels voor het laden van modules waarmee Apache met PHP4 kan werken. | |
stelt de bestandsextensies in die moeten worden beschouwd als bestanden die door PHP moeten worden verwerkt |
10.3.4. Beheer van MySQL met PhpMyAdmin
Op de beheerpagina van EasyPhp klikt u op de knop PhpMyAdmin:

Via de vervolgkeuzelijst onder Accueil kunt u de huidige databases bekijken. | ![]() |
Het getal tussen haakjes is het aantal tabellen. Als je een database selecteert, worden de tabellen daarin weergegeven: | ![]() |
De webpagina biedt een aantal bewerkingen op de database:

Als je op de link Afficher van user klikt:

Er is hier slechts één gebruiker: root, de beheerder van MySQL. Door de link Modifier te volgen, zou men het wachtwoord kunnen wijzigen, dat momenteel leeg is, wat niet aan te raden is voor een beheerder. We zullen verder niets zeggen over PhpMyAdmin, een veelzijdig programma dat een uitgebreide beschrijving van meerdere pagina’s zou verdienen.
10.4. PHP
We hebben gezien hoe we PHP kunnen verkrijgen via de applicatie EasyPhp. Om PHP rechtstreeks te verkrijgen, gaan we naar de website http://www.php.net. PHP is niet alleen bruikbaar op het web. Je kunt het ook als scripttaal onder Windows gebruiken. Maak het volgende script aan en sla het op onder de naam date.php:
<?
// PHP-script dat de tijd weergeeft
$maintenant=date("j/m/y, H:i:s",time());
echo "Nous sommes le $maintenant";
?>
Ga in een venster met de naam DOS naar de map van [date.php] en voer het programma uit:
dos>"e:\program files\easyphp\php\php.exe" date.php
X-Powered-By: PHP/4.2.0
Content-type: text/html
Nous sommes le 18/07/02, 09:31:01
10.5. PERL
Het is aan te raden dat Internet Explorer al is geïnstalleerd. Als dit het geval is, zal Active Perl het zo configureren dat het PERL-scripts in de HTML-pagina's accepteert; deze scripts worden vervolgens door IE zelf aan de clientzijde uitgevoerd. De website van Active Perl is te vinden op URL http://www.activestate.comA. Na de installatie wordt PERL geïnstalleerd in een map die we <perl> zullen noemen. Deze bevat de volgende mapstructuur:
DEISL1 ISU 32 403 23/06/00 17:16 DeIsL1.isu
BIN <REP> 23/06/00 17:15 bin
LIB <REP> 23/06/00 17:15 lib
HTML <REP> 23/06/00 17:15 html
EG <REP> 23/06/00 17:15 eg
SITE <REP> 23/06/00 17:15 site
HTMLHELP <REP> 28/06/00 18:37 htmlhelp
Het uitvoerbare bestand perl.exe bevindt zich in <perl>\bin. Perl is een scripttaal die onder Windows en Unix draait. Het wordt bovendien gebruikt bij het programmeren van WEB. Laten we een eerste script schrijven:
# PERL-script dat de tijd weergeeft
# modules
use strict;
# programma
my ($secondes,$minutes,$heure)=localtime(time);
print "Il est $heure:$minutes:$secondes\n";
Sla dit script op in een bestand met de naam heure.pl. Open een venster met de naam DOS, ga naar de map waarin het vorige script staat en voer het uit:
10.6. Vbscript, Javascript, Perlscript
Dit zijn scripttalen voor Windows. Ze kunnen in verschillende omgevingen worden uitgevoerd, zoals
- Windows Scripting Host voor direct gebruik in Windows, met name voor het schrijven van scripts voor systeembeheer
- Internet Explorer. Het wordt dan gebruikt binnen HTML-pagina’s, waaraan het een zekere mate van interactiviteit toevoegt die onmogelijk te bereiken is met alleen de taal HTML.
- Internet Information Server (IIS), de webserver van Microsoft op NT/2000, en zijn tegenhanger Personal Web Server (PWS) op Win9x. In dit geval wordt VBScript gebruikt voor server-side programmering, een technologie die door Microsoft ASP (Active Server Pages) wordt genoemd.
Het installatiebestand kan worden gedownload via de URL: http://msdn.microsoft.com/scripting en volg de links naar Windows Script. Er worden geïnstalleerd:
- de Windows Scripting Host-container, waarmee verschillende scripttalen kunnen worden gebruikt, zoals VBScript en JavaScript, maar ook andere talen zoals PerlScript, dat bij Active Perl wordt geleverd.
- een VBscript-interpreter
- een JavaScript-interpreter
Laten we een paar snelle tests uitvoeren. Laten we het volgende programma vbscript schrijven:
' een klasse
class personne
Dim nom
Dim age
End class
' aanmaken van een persoonobject
Set p1=new personne
With p1
.nom="dupont"
.age=18
End With
' weergave van de eigenschappen van persoon p1
With p1
wscript.echo "nom=" & .nom
wscript.echo "age=" & .age
End With
Dit programma maakt gebruik van objecten. Laten we het objets.vbs noemen (de extensie vbs duidt op een VBScript-bestand). Ga naar de map waarin het zich bevindt en voer het uit:
dos>cscript objets.vbs
Microsoft (R) Windows Script Host Version 5.6
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.
nom=dupont
age=18
Laten we nu het volgende JavaScript-programma schrijven dat gebruikmaakt van arrays:
// array in een variant
// lege array
tableau=new Array();
affiche(tableau);
// array groeit dynamisch
for(i=0;i<3;i++){
tableau.push(i*10);
}
// tabel weergeven
affiche(tableau);
// nogmaals
for(i=3;i<6;i++){
tableau.push(i*10);
}
affiche(tableau);
// meerdimensionale tabellen
WScript.echo("-----------------------------");
tableau2=new Array();
for(i=0;i<3;i++){
tableau2.push(new Array());
for(j=0;j<4;j++){
tableau2[i].push(i*10+j);
}//for j
}// for i
affiche2(tableau2);
// einde
WScript.quit(0);
// ---------------------------------------------------------
function affiche(tableau){
// tabel weergeven
for(i=0;i<tableau.length;i++){
WScript.echo("tableau[" + i + "]=" + tableau[i]);
}//voor
}//functie
// ---------------------------------------------------------
function affiche2(tableau){
// tabel weergeven
for(i=0;i<tableau.length;i++){
for(j=0;j<tableau[i].length;j++){
WScript.echo("tableau[" + i + "," + j + "]=" + tableau[i][j]);
}// for j
}//for i
}//functie
Dit programma maakt gebruik van tabellen. Laten we het tableaux.js noemen (het achtervoegsel js duidt op een JavaScript-bestand). Ga naar de map waarin het zich bevindt en voer het uit:
dos>cscript tableaux.js
Microsoft (R) Windows Script Host Version 5.6
Copyright (C) Microsoft Corporation 1996-2001. Tous droits réservés.
tableau[0]=0
tableau[1]=10
tableau[2]=20
tableau[0]=0
tableau[1]=10
tableau[2]=20
tableau[3]=30
tableau[4]=40
tableau[5]=50
-----------------------------
tableau[0,0]=0
tableau[0,1]=1
tableau[0,2]=2
tableau[0,3]=3
tableau[1,0]=10
tableau[1,1]=11
tableau[1,2]=12
tableau[1,3]=13
tableau[2,0]=20
tableau[2,1]=21
tableau[2,2]=22
tableau[2,3]=23
Tot slot nog een laatste voorbeeld in Perlscript. Om toegang te krijgen tot Perlscript moet Active Perl geïnstalleerd zijn.
<job id="PERL1">
<script language="PerlScript">
# klassieke Perl
%dico=("maurice"=>"juliette","philippe"=>"marianne");
@cles= keys %dico;
for ($i=0;$i<=$#sleutels;$i++){
$cle=$cles[$i];
$valeur=$dico{$cle};
$WScript->echo ("clé=".$cle.", valeur=".$valeur);
}
# van het Perl-script dat gebruikmaakt van Windows Script-objecten
$dico=$WScript->CreateObject("Scripting.Dictionary");
$dico->add("maurice","juliette");
$dico->add("philippe","marianne");
$WScript->echo($dico->item("maurice"));
$WScript->echo($dico->item("philippe"));
</script>
</job>
Dit programma laat zien hoe twee woordenboeken worden aangemaakt en gebruikt: één op de klassieke Perl-manier, de andere met het Scripting Dictionary-object van Windows Script. Laten we deze code opslaan in het bestand dico.wsf (wsf is de extensie van Windows Script-bestanden). Ga naar de map van dit programma en voer het uit:
dos>cscript dico.wsf
Microsoft (R) Windows Script Host Version 5.6
Copyright (C) Microsoft Corporation 1996-2001. Tous droits réservés.
clé=philippe, valeur=marianne
clé=maurice, valeur=juliette
juliette
marianne
Perlscript kan gebruikmaken van de objecten uit de container waarin het wordt uitgevoerd. In dit geval waren dat objecten uit de Windows Script-container. In de context van webprogrammering kunnen de scripts VBscript, JavaScript en Perlscript worden uitgevoerd, hetzij binnen de browser IE, hetzij op een server PWS of IIS. Als het script enigszins complex is, kan het verstandig zijn om het buiten de webcontext te testen, binnen de Windows Script-container zoals eerder besproken. Op deze manier kunnen alleen de functies van het script worden getest die geen gebruik maken van objecten die specifiek zijn voor de browser of de server. Zelfs met deze beperking blijft deze mogelijkheid interessant, omdat het over het algemeen vrij onpraktisch is om scripts te debuggen die binnen webservers of browsers worden uitgevoerd.
10.7. JAVA
Java is beschikbaar op URL: http://www.sun.com en wordt geïnstalleerd in een map die we <java> zullen noemen en die de volgende elementen bevat:
22/05/2002 05:51 <DIR> .
22/05/2002 05:51 <DIR> ..
22/05/2002 05:51 <DIR> bin
22/05/2002 05:51 <DIR> jre
07/02/2002 12:52 8 277 README.txt
07/02/2002 12:52 13 853 LICENSE
07/02/2002 12:52 4 516 COPYRIGHT
07/02/2002 12:52 15 290 readme.html
22/05/2002 05:51 <DIR> lib
22/05/2002 05:51 <DIR> include
22/05/2002 05:51 <DIR> demo
07/02/2002 12:52 10 377 848 src.zip
11/02/2002 12:55 <DIR> docs
In de map 'bin' vindt u javac.exe, de Java-compiler, en java.exe, de Java Virtual Machine. U kunt de volgende tests uitvoeren:
- Schrijf het volgende script:
//Java-programma dat de tijd weergeeft
import java.io.*;
import java.util.*;
public class heure{
public static void main(String arg[]){
// datum en tijd ophalen
Date maintenant=new Date();
// we geven weer
System.out.println("Il est "+maintenant.getHours()+
":"+maintenant.getMinutes()+":"+maintenant.getSeconds());
}//main
}//klasse
- Sla dit programma op onder de naam heure.java. Open een venster met de naam DOS. Ga naar de map waarin het bestand heure.java staat en compileer het:
dos>c:\jdk1.3\bin\javac heure.java
Note: heure.java uses or overrides a deprecated API.
Note: Recompile with -deprecation for details.
In het bovenstaande commando moet [c:\jdk1.3\bin\javac] worden vervangen door het exacte pad naar de compiler javac.exe. In dezelfde map als heure.java moet u een bestand heure.class hebben staan; dit is het programma dat nu door de virtuele machine java.exe zal worden uitgevoerd.
- Voer het programma uit:
In de bovenstaande opdracht moet [c:\jdk1.3\bin\java] worden vervangen door het exacte pad naar de Java-virtuele machine [java.exe].
10.8. Apache-server
We hebben gezien dat de Apache-server verkregen kan worden via de applicatie EasyPhp. Om deze rechtstreeks te verkrijgen, gaan we naar de website van Apache: http://www.apache.org. De installatie maakt een mappenstructuur aan waarin alle benodigde bestanden voor de server te vinden zijn. Laten we deze map <apache> noemen. Deze bevat een mappenstructuur die er ongeveer als volgt uitziet:
UNINST ISU 118 805 23/06/00 17:09 Uninst.isu
HTDOCS <REP> 23/06/00 17:09 htdocs
APACHE~1 DLL 299 008 25/02/00 21:11 ApacheCore.dll
ANNOUN~1 3 000 23/02/00 16:51 Announcement
ABOUT_~1 13 197 31/03/99 18:42 ABOUT_APACHE
APACHE EXE 20 480 25/02/00 21:04 Apache.exe
KEYS 36 437 20/08/99 11:57 KEYS
LICENSE 2 907 01/01/99 13:04 LICENSE
MAKEFI~1 TMP 27 370 11/01/00 13:47 Makefile.tmpl
README 2 109 01/04/98 6:59 README
README NT 3 223 19/03/99 9:55 README.NT
WARNIN~1 TXT 339 21/09/98 13:09 WARNING-NT.TXT
BIN <REP> 23/06/00 17:09 bin
MODULES <REP> 23/06/00 17:09 modules
ICONS <REP> 23/06/00 17:09 icons
LOGS <REP> 23/06/00 17:09 logs
CONF <REP> 23/06/00 17:09 conf
CGI-BIN <REP> 23/06/00 17:09 cgi-bin
PROXY <REP> 23/06/00 17:09 proxy
INSTALL LOG 3 779 23/06/00 17:09 install.log
map met Apache-configuratiebestanden | |
map met Apache-logbestanden (monitoring) | |
de uitvoerbare bestanden van Apache |
10.8.1. Configuratie
In de map <Apache>\conf bevinden zich de volgende bestanden: httpd.conf, srm.conf, access.conf. In de nieuwste versies van Apache zijn de drie bestanden samengevoegd in httpd.conf. We hebben de belangrijkste punten van dit configuratiebestand al besproken. In de volgende voorbeelden is de Apache-versie van EasyPhp gebruikt voor de tests en dus ook het bijbehorende configuratiebestand. Daarin is DocumentRoot, dat de root van de webpagina-structuur aangeeft, e:\program files\easyphp\www.
10.8.2. Link PHP - Apache
Maak voor het testen het bestand intro.php aan met alleen de volgende regel:
en plaats dit in de hoofdmap van de webpagina’s op de Apache-server (DocumentRoot hierboven). Roep de pagina URL http://localhost/intro.php op. Er zou een lijst met informatie moeten verschijnen:

Het volgende script PHP geeft de tijd weer. We zijn dit al eerder tegengekomen:
<?
// tijd: aantal milliseconden sinds 01/01/1970
// "weergaveformaat datum-tijd
// d: dag in twee cijfers
// m: maand (2 cijfers)
// y: jaar (2 cijfers)
// H: uur 0,23
// i: minuten
// s: seconden
print "Nous sommes le " . date("d/m/y H:i:s",time());
?>
Laten we dit tekstbestand in de hoofdmap van de Apache-server (DocumentRoot) plaatsen en het de naam date.php geven. Laten we met een browser het bestand URL http://localhost/date.php opvragen. We krijgen dan de volgende pagina te zien:

10.8.3. Link PERL-APACHE
Dit wordt gerealiseerd via een regel in de vorm: ScriptAlias /cgi-bin/ "E:/Program Files/EasyPHP/cgi-bin/" in het bestand <apache>\conf\httpd.conf. De syntaxis is ScriptAlias /cgi-bin/ "<cgi-bin>", waarbij <cgi-bin> de map is waarin CGI-scripts kunnen worden geplaatst. CGI (Common Gateway Interface) is een standaard voor de communicatie tussen de WEB-server en applicaties. Een client vraagt de webserver om een dynamische pagina, c.a.d, een pagina die door een programma wordt gegenereerd. De server WEB moet dus een programma vragen om de pagina te genereren. CGI definieert de communicatie tussen de server en het programma, met name de wijze waarop informatie tussen deze twee entiteiten wordt overgedragen. Wijzig indien nodig de regel ScriptAlias /cgi-bin/ "<cgi-bin>" en start de Apache-server opnieuw op. Voer vervolgens de volgende test uit:
- Schrijf het script:
#!c:\perl\bin\perl.exe
# script PERL dat de tijd weergeeft
# modules
use strict;
# programma
my ($secondes,$minutes,$heure)=localtime(time);
print <<FINHTML
Content-Type: text/html
<html>
<head>
<title>heure</title>
</head>
<body>
<h1>Il est $heure:$minutes:$secondes</h1>
</body>
FINHTML
;
- Plaats dit script in <cgi-bin>\heure.pl, waarbij <cgi-bin> de map is waarin CGI-scripts kunnen worden opgeslagen (zie httpd.conf). De eerste regel #!c:\perl\bin\perl.exe geeft het pad aan naar het uitvoerbare bestand perl.exe. Pas dit indien nodig aan.
- Start Apache op als dat nog niet is gebeurd
- Roep met een browser het bestand URL op via http://localhost/cgi-bin/heure.pl. Je krijgt dan de volgende pagina te zien:

10.9. De server PWS
10.9.1. Installatie van t
De server PWS (Personal Web Server) is een persoonlijke versie van de server IIS (Internet Information Server) van Microsoft. Deze laatste is beschikbaar op NT- en 2000-computers. Op Win9x-computers is PWS normaal gesproken beschikbaar via het installatiepakket van Internet Explorer. Het wordt echter niet standaard geïnstalleerd. U moet een aangepaste installatie van IE uitvoeren en aangeven dat PWS moet worden geïnstalleerd. Het is overigens ook beschikbaar in het NT 4.0 Option Pack voor Windows 95.
10.9.2. Eerste tests
De basismap voor de webpagina’s van de server PWS is drive:\inetpub\wwwroot, waarbij drive de schijf is waarop u PWS hebt geïnstalleerd. We gaan er hierna vanuit dat dit station D is. De URL http://machine/rep1/page1.html komt dus overeen met het bestand d:\inetpub\wwwroot\rep1\page1.html. De server PWS interpreteert elk bestand met de extensie .asp (Active Server Pages) als een script dat hij moet uitvoeren om een pagina HTML te genereren. PWS werkt standaard op poort 80. De Apache-webserver ook... U moet Apache dus stoppen om met PWS te kunnen werken als u beide servers hebt. De andere oplossing is om Apache zo te configureren dat het op een andere poort draait. In het Apache-configuratiebestand [httpd.conf] vervangt u de regel Port 80 door Port 81. Apache draait dan voortaan op poort 81 en kan tegelijkertijd met PWS worden gebruikt. Als PWS is gestart en je de URL URL http://localhost opvraagt, krijg je een pagina die er ongeveer zo uitziet:

10.9.3. Link PHP - PWS
- Hieronder vindt u een .reg-bestand om het register aan te passen. Dubbelklik op dit bestand om het register te wijzigen. Hier bevindt de benodigde dll zich in d:\php4 samen met het uitvoerbare PHP-bestand. Pas dit indien nodig aan. De \-tekens moeten in het pad naar de DLL worden verdubbeld.
REGEDIT4
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\w3svc\parameters\Script Map]
".php"="d:\\php4\\php4isapi.dll"
- Start de machine opnieuw op zodat de wijziging in het register wordt doorgevoerd.
- Maak een php-map aan in d:\inetpub\wwwroot, de hoofdmap van de server PWS. Activeer vervolgens PWS en ga naar het tabblad 'Geavanceerd'. Klik op de knop ‘Toevoegen’ om een virtuele map aan te maken:
- Bevestig alles en start PWS opnieuw op. Plaats in d:\inetpub\wwwroot\php het bestand intro.php met uitsluitend de volgende regel:
- Vraag de server PWS om het bestand URL http://localhost/php/intro.php. U zou nu de lijst met PHP-informatie moeten zien die al met Apache wordt weergegeven.
10.10. Tomcat: Java-servlets en JSP-pagina’s (Java Server Pages)
Tomcat is een webserver waarmee HTML-pagina’s kunnen worden gegenereerd met behulp van servlets (Java-programma’s die door de webserver worden uitgevoerd) of JSP-pagina’s (Java Server Pages), pagina’s waarin Java-code en HTML-code worden gecombineerd. Dit is het equivalent van de ASP-pagina’s (Active Server Pages) van de IIS/PWS-server van Microsoft, waarbij VBScript-code of JavaScript wordt gecombineerd met HTML-code.
10.10.1. Installatie
Tomcat is beschikbaar op de URL: http://jakarta.apache.org. Je downloadt een .exe-installatiebestand. Wanneer je dit programma start, geeft het eerst aan welke JDK het gaat gebruiken. Tomcat heeft namelijk een JDK nodig om te installeren en vervolgens de Java-servlets te compileren en uit te voeren. U moet dus een Java-JDK hebben geïnstalleerd voordat u Tomcat installeert. De meest recente JDK wordt aanbevolen. De installatie maakt een <tomcat>-mappenstructuur aan:

Dit houdt simpelweg in dat u dit archief in een map uitpakt. Kies een map waarvan het pad alleen namen zonder spaties bevat (bijvoorbeeld niet "Program Files"), omdat er een bug zit in het installatieproces van Tomcat. Kies bijvoorbeeld C:\tomcat of D:\tomcat. Laten we deze map <tomcat> noemen. Daarin bevindt zich een map met de naam jakarta-tomcat en daarin de volgende mapstructuur:
LOGS <REP> 15/11/00 9:04 logs
LICENSE 2 876 18/04/00 15:56 LICENSE
CONF <REP> 15/11/00 8:53 conf
DOC <REP> 15/11/00 8:53 doc
LIB <REP> 15/11/00 8:53 lib
SRC <REP> 15/11/00 8:53 src
WEBAPPS <REP> 15/11/00 8:53 webapps
BIN <REP> 15/11/00 8:53 bin
WORK <REP> 15/11/00 9:04 work
10.10.2. De Tomcat-webserver starten/stoppen
Tomcat is een webserver, net als Apache of PWS. Om het programma te starten, zijn er snelkoppelingen beschikbaar in het programmamenu:
om Tomcat te starten | |
om Tomcat te stoppen |
Wanneer je Tomcat start, verschijnt er een DOS-venster met de volgende inhoud:

Je kunt dit DOS-venster minimaliseren. Het blijft zichtbaar zolang Tomcat actief is. Vervolgens kun je de eerste tests uitvoeren. De Tomcat-webserver draait op poort 8080. Zodra Tomcat is gestart, open je een webbrowser en ga je naar http://localhost:8080. Je zou de volgende pagina moeten zien:

Volg de link ‘Servlet Examples’:

Klik op de link Execute van RequestParameters en vervolgens op die van Source. Zo krijgt u een eerste indruk van wat een Java-servlet is. U kunt hetzelfde doen met de links op de pagina's JSP.
Om Tomcat te stoppen, gebruik je de link ‘Stop Tomcat’ in het programmamenu.
10.11. Jbuilder
JBuilder is een ontwikkelomgeving voor Java-toepassingen. Voor het bouwen van Java-servlets zonder grafische interfaces is zo’n omgeving niet strikt noodzakelijk. Een teksteditor en een JDK volstaan. Alleen biedt JBuilder enkele extra voordelen ten opzichte van de vorige methode:
- gemak bij het debuggen: de compiler geeft aan welke regels in een programma fouten bevatten en het is eenvoudig om daar naartoe te gaan
- codesuggesties: wanneer je een Java-object gebruikt, geeft JBuilder direct de lijst met eigenschappen en methoden ervan weer. Dit is erg handig, aangezien de meeste Java-objecten zeer veel eigenschappen en methoden hebben die moeilijk te onthouden zijn.
JBuilder is te vinden op de website http://www.borland.com/jbuilder. Je moet een formulier invullen om de software te verkrijgen. Een activeringscode wordt per e-mail verzonden. Om JBuilder 7 te installeren, is bijvoorbeeld als volgt te werk gegaan:
- er werden drie zip-bestanden gedownload: voor de applicatie, voor de documentatie en voor de voorbeelden. Elk van deze zip-bestanden heeft een aparte link op de website van JBuilder.
- Eerst werd de applicatie geïnstalleerd, daarna de documentatie en ten slotte de voorbeelden
- Wanneer u de applicatie voor het eerst start, wordt om een activeringscode gevraagd: dit is de code die u per e-mail hebt ontvangen. In versie 7 bestaat deze code in feite uit een volledig tekstbestand dat u bijvoorbeeld in de installatiemap van JB7 kunt plaatsen. Op het moment dat om de sleutel wordt gevraagd, wijst u het betreffende bestand aan. Zodra dit is gebeurd, wordt de sleutel niet meer gevraagd.
Er zijn enkele nuttige instellingen die u moet uitvoeren als u JBuilder wilt gebruiken om Java-servlets te bouwen. De zogenaamde ‘Jbuilder Personal’-versie is namelijk een afgeslankte versie die met name niet alle klassen bevat die nodig zijn voor webontwikkeling in Java. Je kunt ervoor zorgen dat JBuilder gebruikmaakt van de klassenbibliotheken die door Tomcat worden geleverd. Dit doe je als volgt:
- start JBuilder

- schakel de optie Tools/Configure JDKs in

In het gedeelte JDK Settings hierboven staat normaal gesproken in het veld Name een JDK 1.3.1. Als u een nieuwere versie van JDK hebt, gebruik dan de knop Change om de installatiemap van deze versie aan te geven. Hierboven is de map E:\Program Files\jdk14 aangewezen, waarin een JDK 1.4 was geïnstalleerd. Voortaan zal JBuilder deze JDK gebruiken voor zijn compilaties en uitvoeringen. In het gedeelte (Class, Source, Documentation) staat de lijst met alle klassenbibliotheken die door JBuilder zullen worden doorzocht, in dit geval de klassen van JDK 1.4. De klassen hiervan zijn niet voldoende om webontwikkeling in Java te doen. Om andere klassenbibliotheken toe te voegen, gebruik je de knop Add en selecteer je de extra .jar-bestanden die je wilt gebruiken. De .jar-bestanden zijn klassenbibliotheken. Tomcat 4.x bevat alle klassenbibliotheken die nodig zijn voor webontwikkeling. Deze bevinden zich in <tomcat>\common\lib, waarbij <tomcat> de installatiemap van Tomcat is:

Met de knop Add voegen we deze bibliotheken één voor één toe aan de lijst met bibliotheken die door JBuilder worden doorzocht:

Vanaf nu kunnen we Java-programma's compileren die voldoen aan de norm J2EE, met name Java-servlets. JBuilder dient alleen voor het compileren; de uitvoering wordt later verzorgd door Tomcat volgens de procedures die in de cursus worden uitgelegd.
10.12. De Cassini-webserver
Om met het .NET-platform van Microsoft te werken, kan men de Cassini-webserver gebruiken. Deze is beschikbaar via een ander product, genaamd [WebMatrix], een gratis webontwikkelomgeving voor .NET-platforms, beschikbaar via de url:

We volgen de installatieprocedure van het product nauwkeurig:
- het .NET-platform (versie 1.1 van maart 2004) downloaden en installeren
- WebMatrix downloaden en installeren
- MSDE (Microsoft Data Engine) downloaden en installeren; dit is een beperkte versie van SQL Server.
Zodra de installatie is voltooid, is het product [WebMatrix] beschikbaar in de geïnstalleerde programma’s:

De link [ASP.NET] Web Matrix start de ontwikkeling van IDE ASP.NET:

De link [Class Browser] start een tool voor het verkennen van klassen .NET:

Om de installatie te testen, starten we [WebMatrix]:
4231

Bij de eerste keer opstarten vraagt [WebMatrix] naar de kenmerken van de nieuwe projet.C; dit is de standaardconfiguratie. We kunnen het zo instellen dat dit dialoogvenster bij het opstarten niet verschijnt. Dit bereiken we met de optie [File/New File]. Met [WebMatrix] kunt u sjablonen voor verschillende webtoepassingen maken. Hierboven hebben we met (1) aangegeven dat we een [ASP.ET Page]-toepassing wilden maken, namelijk een webpagina. Met (2) geven we de map aan waarin deze webpagina zal worden geplaatst. In (3) geven we de naam van de pagina op. Deze moet de extensie .aspx hebben. Ten slotte geven we in (4) aan dat we met de taal VB.NET willen werken; [WebMatrix] ondersteunt overigens ook de talen C# en J#.
Zodra dit is gebeurd, toont [WebMatrix] een bewerkingspagina voor het bestand [demo1.aspx]. Daar plaatsen we de volgende code:

- Op het tabblad [Design] kun je de webpagina ‘ontwerpen’ die je wilt bouwen. Dit werkt net zoals bij een IDE voor het bouwen van Windows-applicaties.
- Het grafische ontwerp van de webpagina in [Design] genereert HTML-code in het tabblad [HTML]
- De webpagina kan besturingselementen bevatten die gebeurtenissen genereren waarop moet worden gereageerd, bijvoorbeeld een knop. Deze gebeurtenissen worden afgehandeld door VB.NET-code die in het tabblad [Code] wordt geplaatst
- uiteindelijk is het bestand demo1.aspx een tekstbestand waarin code HTML en code VB.NET zijn samengevoegd, het resultaat van het grafische ontwerp dat is gemaakt in [Design], de code HTML die handmatig is toegevoegd in [HTML] en de code VB.NET die in [Code] is geplaatst. Het volledige bestand is beschikbaar op het tabblad [All].
- Een ervaren ASP.ET-ontwikkelaar kan het bestand demo1.aspx rechtstreeks met een teksteditor samenstellen zonder hulp van IDE.
Laten we de optie [All] selecteren. We zien dat [WebMatrix] al code heeft gegenereerd:
<%@ Page Language="VB" %>
<script runat="server">
' Pagina-code hier invoegen
'
</script>
<html>
<head>
</head>
<body>
<form runat="server">
<!-- Voeg hier inhoud in -->
</form>
</body>
</html>
We gaan hier niet proberen deze code uit te leggen. We zetten hem als volgt om:
<html>
<head>
<title>Démo asp.net </title>
</head>
<body>
Il est <% =Date.Now.ToString("hh:mm:ss") %>
</body>
</html>
De bovenstaande code is een combinatie van HTML en VB.NET. Deze is tussen de tags <% ... %> geplaatst. Om deze code uit te voeren, gebruiken we de optie [View/Start]. [WebMatrix] start vervolgens de Cassini-webserver op als deze nog niet is gestart

We kunnen de standaardwaarden in dit dialoogvenster accepteren en de optie [Start] kiezen. De webserver is nu actief. [WebMatrix] start vervolgens de standaardbrowser van de computer waarop het programma draait en roept de pagina URL http://localhost:8080/demo1.aspx op:

Het is mogelijk om de Cassini-server buiten [WebMatrix] te gebruiken. Het uitvoerbare bestand van de server bevindt zich in <WebMatrix>\<versie>\WebServer.exe, waarbij <WebMatrix> de installatiemap van [WebMatrix] is en <versie> het versienummer:

Laten we een DOS-venster openen en naar de map van de Cassini-server gaan:
E:\Program Files\Microsoft ASP.NET Web Matrix\v0.6.812>dir
...
29/05/2003 11:00 53 248 WebServer.exe
...
Laten we [WebServer.exe] zonder parameters starten:
We krijgen een helpvenster te zien:

De applicatie [WebServer], ook wel de Cassini-webserver genoemd, ondersteunt drie parameters:
- /port: poortnummer van de webservice. Dit kan willekeurig zijn. Standaard is de waarde 80
- /path: het fysieke pad naar een map op de schijf
- /vpath: virtuele map die aan de voorgaande fysieke map is gekoppeld. Let erop dat de syntaxis niet /path=pad is, maar /vpath:pad, in tegenstelling tot wat in het bovenstaande helpvenster staat.
Laten we het bestand [demo1.aspx] in de volgende map plaatsen:

Laten we aan de fysieke map [d:\data\devel\webmatrix] de virtuele map [/webmatrix] koppelen. De webserver kan als volgt worden gestart:
E:\Program Files\Microsoft ASP.NET Web Matrix\v0.6.812>webserver /port:100 /path:"d:\data\devel\webmatrix" /vpath:"/webmatrix"
De Cassini-server is nu actief en het pictogram verschijnt in de taakbalk. Als je erop dubbelklikt:

Ziet u de instellingen voor het opstarten van de server. Je hebt ook de mogelijkheid om [Stop] te stoppen of de webserver [Restart] opnieuw te starten. Als je op de link [Root URL] klikt, krijg je de root van de webstructuur van de server te zien in een browser:

Laten we de link [demos] volgen:

en vervolgens de link [demo1.aspx]:

We zien dus dat als de fysieke map P=[d:\data\devel\webmatrix] is gekoppeld aan de virtuele map V=[/webmatrix] en de server op poort 100 draait, dan is de webpagina [demo1.aspx], die zich fysiek in [P\demos] bevindt, lokaal toegankelijk via URL en [http://localhost:100/V/demos/demo1.aspx].
We hebben in dit specifieke geval aangetoond dat de webontwikkeling van ASP.NET kan worden uitgevoerd met een eenvoudige teksteditor voor het schrijven van webpagina’s en de Cassini-webserver om deze te testen. Dit geldt ongeacht de complexiteit van de applicatie. De IDE [WebMatrix] biedt weliswaar enkele voordelen bij de ontwikkeling, maar niet veel. Een tool als Visual Studio.NET presteert veel beter, maar het is een commercieel product.


