Pages ASP

Transcription

Pages ASP
Licence professionnelle
« Management des organisations »
Option « Systèmes d’information et Réseaux »
Internet et applications dans l’entreprise (2)
Serveur MIIS et pages ASP
O. Auzende
2008-2009
Microsoft Active Server Pages (ASP) ............................................................................................................................ 3
Inclusion de fichiers ................................................................................................................................................... 3
Utilisation de fonctions .............................................................................................................................................. 4
Exercice.............................................................................................................................................................. 4
Objets spécifiques à la programmation ASP .............................................................................................................. 5
Utilisation de l’objet Request ................................................................................................................................. 5
Exercice.............................................................................................................................................................. 6
Utilisation de l’objet Response .............................................................................................................................. 6
Utilisation de l’objet Application ........................................................................................................................... 6
Utilisation de l’objet Session.................................................................................................................................. 7
Interrogation de bases de données .............................................................................................................................. 7
Lecture de la base de données ................................................................................................................................ 7
Création d’un nouvel enregistrement...................................................................................................................... 9
Suppression d’un enregistrement.......................................................................................................................... 10
Exercice............................................................................................................................................................ 11
2
Internet et applications dans l’entreprise
O. Auzende
Microsoft Active Server Pages (ASP)
La technologie ASP de Microsoft est dédiée aux serveurs Microsoft Internet Information Server (MIIS). Elle propose
un cadre de développement associant du HTML, des composants (ou contrôles) ActiveX et des scripts incorporés
dans les pages de suffixe .ASP. Ces scripts sont écrits en VBScript ou en Jscript (version augmentée de JavaScript
propriétaire de Microsoft pour écrire des scripts serveurs).
La première fois qu'une page ASP est appelée, les scripts de la page sont "compilés" (pseudo-compilation, le
VBScript étant normalement interprété). Le code généré est conservé par le serveur tant qu'il n'est pas modifié. Ces
scripts « compilés » sont ensuite exécutés à la demande et les résultats sont retournés au client sous forme d'une page
HTML.
L’exécution des pages ASP requiert un serveur Microsoft Internet Information Server (MIIS) sous Windows Server,
Windows XP Pro, Windows Vista.
CONFIGURATION STANDARD
Les fichiers relatifs au serveur PWS ou au MIIS se
trouvent dans le dossier Inetpub.
On place les pages ASP dans un sous-dossier de
Inetpub\wwwroot (par exemple pages).
Le lancement du serveur se fait via l’icône
correspondante apparaissant sur le bureau :
Choisir « Site Web par défaut » et faire un double-clic
sur le triangle tourné vers la droite pour lancer le
serveur.
Lorsque le serveur est lancé, l’appel à une page se fait
par : http://localhost/pages/page.asp
Inclusion de fichiers
Page jour.asp
<%@ LANGUAGE="VBSCRIPT"%>
<%Response.Write("-----------------------------------------------------------------")
Response.Write("<p>Aujourd'hui, nous sommes le")%>
<%=Now%></p>
<%Dim salutation
If Hour(Now)<12 Then
salutation="Bonne matin&eacute;e !"
ElseIf Hour(Now)<16 Then
salutation="Bonne apr&egrave;s-midi !"
Else
salutation="Bonne soir&eacute;e !"
End If
%>
<p><b><%=salutation%></b></p>
<%Response.Write("-----------------------------------------------------------------")%>
3
Page inclure.asp
<html>
<head><title>Exemple d'inclusion de page ASP</title></head>
<body>
La ligne :
<dir>&lt;!--#include file="jour.asp"--&gt;</dir>
permet d'inclure dans le fichier "inclure.asp" courant le fichier "jour.asp"<br>
<p>Le r&eacute;sultat de l'inclusion est alors le r&eacute;sultat de
l'ex&eacute;cution du fichier "jour.asp" :</p>
<!--#include file="jour.asp"-->
<p>Suite de la page inclure.asp...</p>
</body>
</html>
Utilisation de fonctions
La première page contenant deux fonctions est incluse dans la seconde, qui fait appel à ces fonctions :
Page Carre.asp
<%
function Carre(num)
Carre = num* num
end function
function Cube(num)
Cube = num * num * num
end function
%>
Page utilfonctions.asp
<%@ LANGUAGE="VBSCRIPT"%>
<!--#include file="Carre.asp"-->
<HTML>
<HEAD><TITLE>Exemple d'inclusion d'un fichier de fonctions</TITLE></HEAD>
<BODY>
<%Session("compteur")=Session("compteur")+1%>
<table border='1'>
<tr><td>Nombre</td><td>Carr&eacute;</td><td>Cube</td></tr>
<% i = 1%>
<%do while i <=20 %>
<tr align="center"><td>
<%=i%>
</td><td>
<%=Carre(i)%>
</td><td>
<%=Cube(i)%>
</td></tr>
<%i = i+1%>
<% Loop %>
</table>
</BODY>
</HTML>
Exercice
Ecrire un fichier « fibo.asp » qui calcule la fonction de
Fibonacchi pour un entier n. La fonction est définie par :
Fibo(0) = 1
Fibo(1) = 1
Fibo(n) = Fibo(n-2) + Fibo(n-1)
Ecrire ensuite le fichier « utilfibo.asp » qui affiche les
20 premiers nombres de la suite (voir ci-contre).
4
Internet et applications dans l’entreprise
O. Auzende
Objets spécifiques à la programmation ASP
Utilisation de l’objet Request
Lorsqu’un formulaire fait appel à la méthode POST, l’objet Request récupère les paramètres par
Request.Form("paramètre")
Page form1.html
<html> <head><title>Formulaire</title></head>
<body>
<form method="post" action="rep1.asp"></p>
<table><tr><td>Pr&eacute;nom :</td>
<td><input type="text" name="prenom"></td></tr>
<tr><td>Nom : </td>
<td><input type="text" name="nom"></td></tr>
<tr><td>Type d'ordinateur : </td>
<td><input type="checkbox" name="type" value="PC">PC
<input type="checkbox" name="type" value="MAC">Mac</td></tr>
</table>
<p><input type="submit" value="OK"></p>
</form>
</body>
</html>
Page rep1.asp
<%@ LANGUAGE="VBSCRIPT"%>
<html> <head><title>Réponse formulaire</title></head>
<body> <p>Voici les &eacute;l&eacute;ments que vous avez donn&eacute;s : </p>
<table>
<tr>
<td>Votre pr&eacute;nom est : </td>
<td><%=Request.Form("prenom")%></td>
</tr>
<tr>
<td>Votre nom est : </td>
<td><%=Request.Form("nom")%></td>
</tr>
<tr>
<td>Votre type d'ordinateur est : </td>
<td><%=Request.Form("type")%></td>
</tr>
</table>
</body>
</html>
Lorsqu’un formulaire fait appel à la méthode GET, l’objet Request récupère les paramètres par
Request.QueryString("paramètre")
Dans form2.html, <form method="post" action="rep2.asp"> a été remplacé par :
<form method="get" action="rep2.asp"></
Page rep2.asp
<%@ LANGUAGE="VBSCRIPT"%>
<html>
<head><title>Réponse</title></head>
<body>
<table>
<tr><td>La variable pr&eacute;nom contient : </td>
<td><%=Request.QueryString("prenom")%></td></tr>
<tr><td>La variable nom contient : </td>
<td><%=Request.QueryString("nom")%></td></tr>
<tr><td>La variable type contient : </td>
<td><%=Request.QueryString("type")%></td></tr>
</table>
</body>
</html>
5
Exercice
Ouvrir la page formulaire.html (ci-contre à gauche).
Noter les renseignements indispensables pour écrire la
page reponse.asp.
Ecrire cette page réponse permettant d’obtenir le résultat
(voir illustration à droite).
Utilisation de l’objet Response
L’objet Response est chargé de l’écriture sur la page résultante.
<%Response.Write variable%> peut être abrégé en <%=variable%>
L’objet Response crée les cookies par
<%Response.Cookies("Nom")=Request.QueryString("Nom")
Response.Cookies("Nom").Expires=Date+365 %>
(si GET)
Mais c’est l’objet Request qui teste ensuite si un cookie existe ou n’existe pas :
<%If Request.Cookies("Nom")= "" Then ...
et récupère les cookies existants par :
<% For Each cookie in Request.Cookies %>
<%="Cookie : "+ cookie +" : " + Request.Cookies(cookie)%><BR>
<% Next %>
Utilisation de l’objet Application
Un objet Application démarre à la première demande d’une page .asp spécifique à un serveur et se termine quand
on arrête le serveur. Cet objet peut être utilisé pour stocker des valeurs de variables. Exemple :
Page compteurdate.asp
<%@ LANGUAGE="VBSCRIPT"%>
<HTML>
<HEAD><TITLE>Date</TITLE></HEAD>
<BODY>
<p>Cette page a été visitée par
<%=Application("Compteur")%> visiteurs.</p>
<p>Si aucun nombre ne s'est affich&eacute;, c'est que la page est visit&eacute;e
pour la premi&egrave;re fois depuis le lancement du serveur.</p>
<p>Le nombre de visiteurs va &ecirc;tre mis &agrave; jour.</p>
<%Application.Lock
Application("Compteur")=Application("Compteur") + 1
Application.Unlock%>
<p>R&eacute;sultat : cette page a été visitée par
<%=Application("Compteur")%> visiteurs.</p>
<p>Cette page a été visitée pour la dernière fois le :
<%=Application("Dateheure")%></p>
<p>Si aucune date ne s'est affich&eacute;e, c'est que la page a
&eacute;t&eacute; ouverte pour la premi&egrave;re fois depuis le lancement du
serveur.</p>
<p>La date va &ecirc;tre mise &agrave; jour.</p>
<%Application.Lock
Application("Dateheure")=Now
Application.Unlock%>
<p>R&eacute;sultat : vous visitez cette page le :
<%=Application("Dateheure")%></p>
</BODY>
</HTML>
6
Internet et applications dans l’entreprise
O. Auzende
Utilisation de l’objet Session
Les variables de type Session stockent des informations sur le serveur le temps d’une session, sont associées à un
visiteur et peuvent être utilisées indifféremment sur toutes les pages .asp d’un site Web.
La ligne : <%Session("compteur")=Session("compteur")+1%> est insérée dans deux fichiers :
utilfonctions.asp et session.asp.
La page session.asp permet de voir l’identificateur de la session et le nombre de pages visitées dans le même site
possédant la ligne <%Session("compteur")=Session("compteur")+1%> :
Page session.asp
<%@ LANGUAGE="VBSCRIPT"%>
<HTML>
<HEAD><TITLE>Lecture des paramètres de la session</TITLE></HEAD>
<BODY>
<P>Identificateur de la session : <%=Session.SessionID%></P>
<%Session("compteur")=Session("compteur")+1%>
Le compteur vaut : <%=Session("compteur")%> pour cette session, ce qui signifie
qu'il y a eu <%=Session("compteur")%> pages visit&eacute;es.</P>
</BODY>
</HTML>
Interrogation de bases de données
Les pages ASP s'interfacent avec les composants ActiveX, qui sont des morceaux de logiciels jouant un rôle
spécifique. Les composants ActiveX peuvent être écrits en C++, Java, Visual Basic, Cobol... Une bibliothèque de
composants est disponible.
Un composant ActiveX permet l’accès à une base de données relationnelle. Un objet composant est créé dans la page
par la méthode CreateObject de l’objet Server. On peut ensuite accéder à ses propriétés et méthodes pour exécuter
des fonctions. Lorsque la connexion est établie, un objet de type RecordSet permet de récupérer le résultat des
requêtes sur la base de données.
La base de données PAYS1.MDB contient une table Pays ayant un champ NOM et un champ CAPITALE. Le champ
NOM est la clé de la table.
La source de données et le pilote doivent être déclarés via l’option ODBC 32 bits du panneau de configuration de
Windows, en configurant le DSN Système : lien vers la base de données et spécification de son type : driver Access
(fichiers de type mdb).
Lecture de la base de données
Lecture 1 : lecture de la totalité de la table.
Page lecture1.asp : lecture de la totalité de la table
<%@ LANGUAGE="VBSCRIPT"%>
<html>
<head>
<title>Lecture d'une base de données Access</title>
</head>
<body>
<table border=1>
<tr><td><b>Nom du pays</b></td><td><b>Capitale</b></td></tr>
<%
' crée un objet de type Connection
Set objConnection=Server.CreateObject("ADODB.Connection")
' ouverture connexion : base, utilisateur, mot de passe
objConnection.Open "Driver={Microsoft Access Driver (*.mdb)};
DBQ=" & Server.MapPath("/pages") & "\pays1.mdb"
' crée un objet de type RecordSet
Set objRecord=Server.CreateObject("ADODB.Recordset")
7
' le remplit avec le résultat d’une requête
objRecord.Open "SELECT * FROM pays", objConnection
' fait afficher le résultat ligne à ligne
Do While Not objRecord.EOF
%>
<tr>
<td><%=objRecord("nom")%></td>
<td><%=objRecord("capitale")%></td>
</tr>
<%
objRecord.MoveNext
Loop
objRecord.Close
objConnection.Close
' fermeture de la connexion
Set objRecord = Nothing
Set objConnection = Nothing
%>
</table>
</body>
</html>
Page lecture2.asp (lecture sélective à partir d’une liste de sélection dynamique)
<%@ LANGUAGE="VBSCRIPT"%>
<html>
<head>
<title>Lecture d'une base de données Access</title>
</head>
<body>
<form method="get" action="reponse.asp">
Choisissez un pays :
<select name="pays">
<%
Set objConnection=Server.CreateObject("ADODB.Connection")
' ouverture connexion : base, utilisateur, mot de passe
objConnection.Open "Driver={Microsoft Access Driver (*.mdb)};
DBQ=" & Server.MapPath("/pages") & "\pays1.mdb"
' crée un objet de type RecordSet
Set objRecord=Server.CreateObject("ADODB.Recordset")
' le remplit avec le résultat d’une requête
objRecord.Open "SELECT * FROM pays", objConnection
Do While Not objRecord.EOF
%>
<option><%=objRecord("nom")%></option>
<%objRecord.MoveNext
Loop
objRecord.Close
objConnection.Close
Set objRecord = Nothing
Set objConnection = Nothing
%>
</select>
<input type="submit" value="OK">
</form>
</body>
</html>
8
Internet et applications dans l’entreprise
O. Auzende
Page reponse.asp
<%@ LANGUAGE="VBSCRIPT"%>
<html>
<head><title>Lecture d'une base de données Access</title></head>
<body>
<%
pays=Request.QueryString("pays")
Set objConnection=Server.CreateObject("ADODB.Connection")
objConnection.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" &
Server.MapPath("/pages") & "\pays1.mdb"
Set objRecord=Server.CreateObject("ADODB.Recordset")
objRecord.Open "SELECT * FROM pays where nom='"&pays&"'", objConnection
%>
<p>Pays choisi : <%=objRecord("nom")%></p>
<p>Capitale : <%=objRecord("capitale")%></p>
<%
objRecord.Close
objConnection.Close
Set objRecord = Nothing
Set objConnection = Nothing
%>
</body>
</html>
Création d’un nouvel enregistrement
La page creation1.html demande dans un formulaire le nom du pays correspondant à l’enregistrement à créer ; la
création effective est effectuée par la page creation1.asp.
Page creation1.html
<html>
<head>
<title>Creation</title>
</head>
<body>
<form method="post" action="creation1.asp"></p>
<table border="0">
<tr><td>Pays : </td><td><input type="text" name="nom"></td></tr>
<tr><td>Capitale : </td><td><input type="text" name="ville"></td></tr>
<tr><td><input type="submit" value="Envoi"></td><td>&nbsp;</td></tr>
</table>
</form>
</body>
</html>
Page creation1.asp
<%@ LANGUAGE="VBSCRIPT"%>
<html>
<head><title>Création d'un enregistrement</title></head>
<body>
<%
pays=Request.Form("nom")
capitale=Request.Form("ville")
Set objConnection=Server.CreateObject("ADODB.Connection")
objConnection.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" &
Server.MapPath("/pages") & "\pays1.mdb"
Set objRecord=Server.CreateObject("ADODB.Recordset")
%>
<%objRecord.Open "INSERT INTO pays (nom,capitale)
VALUES('"&pays&"','"&capitale&"')", objConnection
%>
9
<p>Enregistrement ajout&eacute; &agrave; la base. Nouveau contenu : </p>
<table border=1>
<tr><td><B>Nom du pays</B></td><td><B>Capitale</B></td></tr>
<%objRecord.Open "SELECT * FROM pays", objConnection
Do While Not objRecord.EOF%>
<tr><td><%=objRecord("nom")%></td>
<td><%=objRecord("capitale")%></td></tr>
<%objRecord.MoveNext
Loop%>
</table>
<%objRecord.Close
objConnection.Close
Set objRecord = Nothing
Set objConnection = Nothing
%>
</body>
</html>
Suppression d’un enregistrement
La page suppression.asp demande dans un formulaire le nom du pays correspondant à l’enregistrement à supprimer
(la liste des pays est proposée dans une liste de sélection générée automatiquement en lisant la base de données).
La suppression effective est effectuée par la page suppression1.asp.
Page suppression.asp
<HTML>
<HEAD>
<TITLE>Suppression</TITLE>
</HEAD>
<BODY>
<FORM METHOD="post" ACTION="suppression1.asp"></P>
<p>Choisissez un pays :
<select name="nom">
<%
Set objConnection=Server.CreateObject("ADODB.Connection")
objConnection.Open "Driver={Microsoft Access Driver (*.mdb)};
DBQ=" & Server.MapPath("/pages") & "\pays1.mdb"
Set objRecord=Server.CreateObject("ADODB.Recordset")
objRecord.Open "SELECT * FROM pays", objConnection
Do While Not objRecord.EOF
%>
<option><%=objRecord("nom")%></option>
<%objRecord.MoveNext
Loop
objRecord.Close
objConnection.Close
Set objRecord = Nothing
Set objConnection = Nothing
%>
</select></p>
<P><INPUT TYPE="submit" VALUE="Envoi"></P>
</FORM>
</BODY>
</HTML>
10
Internet et applications dans l’entreprise
O. Auzende
Page suppression1.asp
<%@ LANGUAGE="VBSCRIPT"%>
<html>
<head>
<title>Suppression d'un enregistrement</title>
</head>
<body>
<%
nom=Request.Form("nom")
Set objConnection=Server.CreateObject("ADODB.Connection")
objConnection.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" &
Server.MapPath("/pages") & "\pays1.mdb"
Set objRecord=Server.CreateObject("ADODB.Recordset")
objRecord.Open "DELETE FROM pays WHERE nom='"&nom&"'", objConnection
%>
<p>Enregistrement supprim&eacute; de la base. Nouveau contenu :</p>
<table border=1>
<tr><td><B>Nom du pays</B></td><td><B>Capitale</B></td></tr>
<%objRecord.Open "SELECT * FROM pays", objConnection
Do While Not objRecord.EOF
%>
<tr><td><%=objRecord("nom")%></td>
<td><%=objRecord("capitale")%></td></tr>
<%objRecord.MoveNext
Loop%>
</table>
<%objRecord.Close
objConnection.Close
Set objRecord = Nothing
Set objConnection = Nothing
%>
</body>
</html>
Exercice
La base de données employes1.mdb est une base Access comportant les tables employe, service, salaire reliées par
les jointures suivantes :
1) Déclarer la base comme source de données ODBC.
11
2) Ecrire la page lecture-employes.asp qui lit la base et réalise l’affichage suivant :
3) Ecrire la page lecture-employes2.asp qui lit la base et réalise l’affichage suivant :
12

Documents pareils