chapitre 8 introduction a asp. 1. asp - introduction asp (active server page) est un standard...
TRANSCRIPT
CHAPITRE 8
INTRODUCTION A ASP
1. ASP - Introduction
ASP (Active Server Page) est un standard Microsoft permettant de générer des pages WEB à la volées.
Les Pages ASP se repèrent par leur extension .ASP.
Les scripts ASP peuvent être écrits en Javascript ou en VBScript.<%@ language=Javascript%><%@ language=VBScript%>
Les instructions sont interprétées par le serveur et sont repérables par les balises <%
…%>
Les ASP ont été conçues à la base pour fonctionner sur le serveur Web de Microsoft intitulé Microsoft IIS (Internet Information Server), une adaptation est disponible depuis peu sur NetScape FastTrack et sur Apache.
1. ASP - Exemple
<%@ LANGUAGE="JAVASCRIPT" %> <HTML> <HEAD> <TITLE>Exemple de script ASP</TITLE> </HEAD> <BODY>
<% for(i=1;i<=10;i++){%>
Compteur valeur de i : <%= i%> <BR>
<% } %>
</BODY> </HTML>
1. ASP - Le modèle Objet – l'objet Request
L'objet RequestPermet aux script ASP d'accéder aux informations émises par le Client (variables, formulaires, cookies, Certificats SSL).
Propriété :TotalBytes : Nombre d'octets contenus dans le corps de la requête HTTP.
Méthodes :BinaryRead(n) : Extrait n octets du corps de la requête HTTP. Attention si un
accès à la collection Form a été réalisée précédemment dans le code cette méthode échouera.
Collection :Cookies : Collection de cookiesForm : Collection des variables d'un formulaireQueryString : Collection des paramètres envoyés par l'URL.ServerVariables : Collection contenant les entêtes HTTP et les variables
d'environnement..
1. ASP - Le modèle Objet – l'objet Request - Exemple
<%@ LANGUAGE="JAVASCRIPT" %> <HTML> <HEAD> <TITLE>Exemple de script ASP</TITLE> </HEAD> <BODY>
<%if (Request.QueryString ("nom") == 'cnam' ||
Request.Cookies("nom") == 'cnam') {
Response.Write ('Bienvenue au CNAM');}%>
</BODY> </HTML>
1. ASP - Le modèle Objet – l'objet ResponseL'objet ResponsePermet aux script ASP d'accéder à la réponse HTTP envoyée par le serveur au Client..Propriété :Buffer : true / false Précise si la réponse est stockée dans un buffer IIS.ContentType : Type MIME de la réponse.ExpiresAbsolute : Date d'expiration de la page.Status : Etat de la page (200, 404).
Méthodes :AddHeader ("nom","valeur") : Créée une entête HTTP.BinaryWrite (safeArray) : Envoie sur le flot HTTP du code binaire.Clear () : Vide le tamponEnd () : Fin du traitement de la page en cours.Flush (): Envoie et vide le buffer.Redirect ("URL") : Redirige sur une autre URL.Write ("chaine") : Écrit la chaîne dans le buffer.
Collection :Cookies : Collection de cookies
1. ASP - Le modèle Objet – l'objet Response - Exemple
<%@ LANGUAGE="JAVASCRIPT" %> <HTML> <HEAD> <TITLE>Exemple de script ASP</TITLE> </HEAD> <BODY> <%
Response.clear ();
Response.Cookies("nom") = Resquest.QueryString("nom");
Response.end ();
%></BODY> </HTML>
1. ASP - Le modèle Objet – l'objet ServerL'objet ServerBoite à outils disponibles pour la création de script ASP.
Propriété :ScriptTimeout : Durée maximale d'exécution du script (par défaut fixé à 90s).
Permet d'éviter de surcharger le serveur et d'interrompre les scripts qui boucle, en attente de ressources verrouillées.
Méthodes :CreateObject (ID) : Instanciation Objet utilisable dans le script identifiée par sont
ClassID ou son ProgIDClassID : N° référencé dans le base des registresProgID : chaine identifiant l'objet à Instancier (ADOBD.Connection)Execute ("URL") : Exécute une URL. Le script courant reprend à la fin du
traitement de l'urlTransfert ("URL") : Passe la main à l'URL.MapPath ("URL") : Chemin physique complet de l'URL.GetLastError ( ) : Renvoie un objet ASPError contenant la description de la
dernière erreur rencontrée.
1. ASP - Le modèle Objet – l'objet ASPErrorL'objet ASPError
Disponible a partir de la version d'ASP 3.0. Il est accessible via la méthode GetLastError ( ) de l'objet Server.
Propriétés :ASPCode : N° d'erreur généré par IIS.
ASPDescription : Description de l'erreur si liée à ASP.
Source : Extrait du code source ayant provoqué l'erreur
Column : Position de l'erreur
Line : Ligne de l'erreur
File : Fichier ayant provoqué l'erreur
Description : Description de l'erreur.
1. ASP - Le modèle Objet – l'objet ApplicationL'objet Application
Cet objet permet de déclarer des variables et d'instancier des Objets disponibles par tous les utilisateurs de l'application.
Collection :Contents : collection de variablesStaticObjects : collection d'objets
Méthode :Contents.Remove ("nomvar") : supprime une variableContents.RemoveAll () : supprime toutes les variablesLock : Verrouille l'objet ApplicationUnlock : Déverrouille l'objet Application
Événement :onStart : Déclenché lorsque le premier utilisateur accède à l'applicationonEnd : Déclenché lorsque l'application prend fin.
1. ASP - Le modèle Objet – l'objet Session
L'objet Session
• L'objet Session est crée par tous visiteurs, lorsqu'il accède à sa première page ASP. Il a une durée de vie fixée par une temporisation (timeout).
• Cet objet permet de déclarer des variables et d'instancier des Objets disponibles par un utilisateur tout au long de sa session.
Collection :Contents : collection de variablesStaticObjects : collection d'objets
Propriété :SessionID : Lecture seule. Retourne l'identifiant de la session, unique pour
l'objet application.TimeOut : Lecture / Ecriture. Fixe la durée de vie de la session (en
minutes).
1. ASP - Le modèle Objet – l'objet Session
Méthode :Contents.Remove ("nomvar") : supprime une variable
Contents.RemoveAll ( ) : supprime toutes les variables
Abandon ( ) : Met fin à la session. L'accès à une autre page déclenchera le démarrage d'une nouvelle session
Événement :onStart : Déclenché au démarrage de la session
onEnd : Déclenché lorsque la session prend fin.
1. ASP - Le modèle Objet – Global.asa
• Le fichier Global.asa placé dans le répertoire racine de l'application est déclenché chaque fois qu'une application ou qu'une session débute.
• Il peut contenir les déclarations de variables et objets application et / ou Session.
• Il peut contenir le code des évènements déclenchés au démarrage et / ou à l'arrêt d'une application et / ou d'une session.
Attention : L'utilisation d'objets Application et / ou session peut altérer les performances.
ATTENTION : Leur utilisation doit se faire avec prudence.
1. ASP - Le modèle Objet – Global.asa<OBJECT id="objDOM" runAt = "Server" Scope = "Application" progId = "MSXML2.DOMDocument"></OBJECT>
function Application_OnStart () {var date_jour;objDOM.load ("test.xml");date_jour = new Date ();Application ("date_jour") = date_jour.toString ();}
Pour mettre à jour une variable d'Application, il est important de verrouiller préalablement l'accès.
Application.lock ()Application("nom_var") = variable;Application.Unlock ();
2. COM - Introduction à COM• COM (Component Object Model) conçus par Microsoft, est incontournable en ASP.
• COM est spécifique à Windows alors que ACTIVE X est multi-plate-forme.
• COM crée un standard en matière d’interopérabilité des composants. Il spécifie les règles de communication entre les composants.
• COM met à disposition un modèle de programmation efficace basé sur la programmation Objet facilitant l’intégration de composants.
• Dans une page ASP, le runtime COM est utilisé en permanence par l’interpréteur ASP, qui exécute le moteur Active Scripting pour convertir le code VBSCRIPT / JAVASCRIPT en appel COM.
• COM + est spécifique à Windows 2000, il enrichie le modèle COM de services de transactions (MTS Microsoft Transaction Server)).
• DCOM permet l’intégration dans les développements d’objets distribués.
2. COM - Gestion des fichierLa gestion des fichiers s'effectue par l'utilisation de objet COM : Scripting.FileSystemObjectMéthodes :OpenTextFile (filename, [iomode, [create]] : Ouverture d'un fichier texte.filename : nom du fichieriomode : type d'ouverture du fichier
1 – Lecture 2 – Écriture3 – Ajout
create : true / false création du fichier
ReadLine ( ) : Lecture d'une ligneWriteLine ("chaine" ) : Ecriture d'une ligneClose ( ) : Fermeture du fichierPropriété :AtEndOfStream : Fin de fichier atteinteExemple : OpenTextFile("c:\testfile.txt", ForWriting, True)
2. COM - Gestion des fichiersvar objHTMLFile;var tampon;var buffer;try {objHTMLFile =Server.CreateObject("Scripting.FileSystemObject");HTMLFile = Server.MapPath(file);lireFichier = objHTMLFile.OpenTextFile (HTMLFile, 1 ,false);tampon = "";buffer = "";while (!lireFichier.AtEndOfStream) {
buffer = lireFichier.ReadLine();tampon += buffer;
}}
catch (erreur) {tampon = "";
}return tampon;
2. COM - Parsing XMLLe Parsing d'un fichier XML s'effectue en instanciant l'objet : MSXML2.DOMDocument
Méthodes :load ("URL") : Retourne un objet DOM. Chargement d ’un fichier XMLloadXML("chaine") : Retourne un objet DOM. Création d ’une DOM à partir d ’une chaine
Propriété :async : true /false (lecture synchrone / asynchrone)documentElement : racine
2. COM - Parsing XML - ExemplexmlActu = Server.CreateObject("MSXML2.DOMDocument");
xmlActu.async = false;
if (xmlActu.load(cheminActuCanal)) {
racineActu = xmlActu.documentElement;
N_channel = racineActu.selectNodes("channel");
if (N_channel.length > 0) {
elementTitle=N_channel[0].getElementsByTagName("title").item(0);
Response.write (elementTitle.text); }} <document>
<channel><tile>XML</title><tile>HTML</title>
</channel></document >
Instanciation
Désactivation du mode AsynchroneLecture
RacineSélection de noeuds
Nombre de noeuds
Sélection d'éléments
Valeur de l'éléments
3. ADO - Les bases d’ADO
• ADO (Active X Data Objects) désigne des composants permettant d’interagir avec des sources de données.
• OLE DB permet l’accès aux données, mais n’est pas disponible dans tous les langages disponible pour C++ et JAVA.
• ADO propose une interface d’accès à OLE DB disponible pour ASP et Visual basic.
• ADO est permet d’établir une connexion avec toutes sources de données par opposition à ODBC qui est dédié aux SGBDR.
• ADO se situe donc entre l’application (consumer) et la source de données (provider).
3. ADO - Les bases d’ADO• L’objet connexion permet de se connecter à une source de données.
objCon = Server.CreateObject ("ADODB.connection");objCon.Open(chaineConnexion,UserID,Password)
• L’objet command permet d'exécuter des requêtes dites actions.objCom = Server.CreateObject ("ADODB.Command");objCom.commandText = "update personne set nom = 'martin'";objCom.commandType = objCom.adCmdText;objCom.Execute ();objCom.close ();
• L’objet Recordset contient l’ensemble des données extraites lors de l’exécution d’une commande. Cet objet contient notamment une collection Fields qui contient également une collection d’objets Field.
objCon = Server.CreateObject("ADODB.recordset");objCon.Open("select * from test.csv","DSN=test");objCon.moveFirst(); Response.Write(objCon.fields(1).value);objCon.close ();
Autres fonctions moveLast, moveNext, update, delete, addNew
3. ADO - Les bases d’ADO – Les types de curseurs
Open(sql,Objconnexion,typeCurseur)
• Statique (adopenStatic). Le resultset est figé les modifications effectuées par les autres utilisateurs ne sont pas visibles.
• Déplacement vers l'avant (adOpenForwardOnly). Par défaut, Idem précédent, déplacement uniquement vers l'avant. (gain en performance car le curseur peut oublier les lignes passées).
• Dynamique (adOpenDynamic). Tous les changements effectués par les autres utilisateurs sont visibles dans le recordSet.
• Jeu de Clés (adOpenKeySet). Idem précédent. Si des enregistrements sont crées par des autres utilisateurs, ils ne sont pas visibles.
3. ADO - Les bases d’ADO – Les types de verrous
Open(sql,Objconnexion,typeCurseur,typeVerrous)
• Lecture seule (adLockReadOnly). Par défaut. Enregistrement en lecture seule.
• Pessimiste (adLockPessimistic). Verrouillage effectué lors de l'édition.
• Optimiste (adLockOptimistic). Verrouillage effectué lors de l'update.
• Optimiste par lots (adLockBatchOptimistic). Verrouillage d'un ensemble d'enregistrement doit être utilisé conjointement à la méthodes updateBatch ().
Open(sql,Objconnexion,typeCurseur,typeVerrous,options)
• admCmdText : chaine contenant une requête sql
• admCmdTable : chaine contenant le nom d'une table
• admCmdStoredProc : chaine contenant une proc stock.
3. ADO - Les bases d’ADO – Exemple
<%@ language=Javascript%><% Response.write ("<HTML><BODY>");
objCon = Server.CreateObject("ADODB.recordset");
objCon.Open("select * from test.csv","DSN=test",objCon.adOpenDynamic);
while (!objCon.eof) {Response.Write("<BR>" + objCon.fields(1).value);objCon.moveNext();
}
objCon.close();
Response.write ("</BODY></HTML>");%>
3. ADO - Les bases d’ADO – Les TransactionsobjCon.BeginTrans(); : Début d'une transaction
objCon.RollBackTrans(); : Annulation de la transaction
objCon.CommitTrans(); Validation de la transaction
conn = Server.CreateObject("ADODB.Connection");connstring = "driver={SQL Server};server=localhost;”connstring += “uid=sa; pwd=pwd; database=Pubs;”
conn.open(connstring);conn.BeginTrans ();
try {conn.Execute (“update personne set nom = ‘martin’");conn.CommitTrans();
}catch (erreur) {
conn.RollbackTrans();}
4. Les références La bibliographie
ASP 3 de FRANTZ, Gérard OSMAN EYROLLES MULTIMEDIA
ASP 3.0 PROFESSIONNEL de FRANCIS, Brian EYROLLES
5. Les sites WEB
www.commentcamarche.net
msdn.microsoft.com/scripting/