Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parHamlin Walter Modifié depuis plus de 11 années
1
Introduction Aux Systèmes dInformation et Multimédia T. Bourdeaudhuy S. Collart-Dutilleul P. Kubiak IG 2 I - Saison 2006/2007 ASP / Pages Web Statiques
2
ISIM 1 – Active Server Pages 2T. Bourdeaudhuy – IG 2 I Saison 2006-2007 Séance 3 QCM Objet Server –Bases de données –Accès au Système de fichiers du serveur –(à présenter APRES global.asa) Fichier Global.asa Gestion des erreurs Rappel : –Exemples de CTP sur le cours ReM2
3
OBJET SERVER
4
ISIM 1 – Active Server Pages 4T. Bourdeaudhuy – IG 2 I Saison 2006-2007 Objet SERVER Représente le serveur Web et le moteur ASP Propriété –ScriptTimeout : Temps maximum d'exécution des scripts ASP (90 secondes par défaut) Méthodes –CreateObject(ObjectID) : Crée une instance du composant serveur identifié par l'ObjectID –GetLastError : Renvoie une instance d'objet ASPError représentant la dernière erreur survenue –HTMLEncode(chaine) : Applique les règles d'encodage et de syntaxe du HTML à la chaîne de caractères passée en paramètre –URLEncode(chaine) : Applique les règles d'encodage des URLs à la chaîne de caractères passée en paramètre –MapPath : Transforme un chemin relatif ou virtuel pointant vers une ressource du site en un chemin physique –Execute(url) : Exécute le script ASP indiqué par l'URL, puis rend la main au script appelant –Transfer(url) : Exécute le script ASP indiqué par l'URL, sans rendre la main au script appelant Exercice 20 : –Utiliser la fonction URLEncode pour passer un message dans lurl contenant les caractères spéciaux : <, &, = –Utiliser la fonction HTMLEncode pour afficher ce texte –Utiliser la fonction execute pour exécuter un script situé sur une autre page –Tester la fonction Mappath pour connaître le répertoire correspondant à votre répertoire partagé \\webasp\login$ sur le serveur \\webasp\login$
5
BASES DE DONNEES
6
ISIM 1 – Active Server Pages 6T. Bourdeaudhuy – IG 2 I Saison 2006-2007 Connexion à une base de données Création dun objet de connexion ODBC –SET objetConn = Server.CreateObject("ADODB.Connection") Méthodes –Open("Nom_Lien_ODBC") : Ouverture de la base –Close : Fermeture de la base –Execute("Commande SQL") : Exécute une requête SQL Renvoie un objet recordset Ex : SET recordSet = objetConn.execute(SQL)
7
ISIM 1 – Active Server Pages 7T. Bourdeaudhuy – IG 2 I Saison 2006-2007 Sources de données ODBC ODBC : Object Database Connectivity Source de données : DSN : Data Source Name Privilèges dAdministration du Serveur : création de la source dans Panneau de Configuration/Administration/Sources de données ODBC/DSN Système Chaînes sans DSN : spécifier driver & chemin de la BDD –"DBQ=" & Server.Mappath("mabase.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};DriverId=25" –"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.mappath("compteur.mdb") –Cf. moodle : syntaxe à respecter strictement
8
ISIM 1 – Active Server Pages 8T. Bourdeaudhuy – IG 2 I Saison 2006-2007 Objet RecordSet Propriétés –EofPlus denregistrement disponible Collections –Fields : Enregistrements retournés (cas SELECT) –Accès à des sous-éléments : –rs.fields(0) :Premier champ de lenregistrement –rs.fields.count :Nombre de champs –rs.fields(0).name :Nom du champ Méthodes –MoveNextPasser à lenregistrement suivant –MoveFirstRetourner au premier enregistrement –Move Passer enregistrements
9
ISIM 1 – Active Server Pages 9T. Bourdeaudhuy – IG 2 I Saison 2006-2007 Rappels de SQL (Structured Query Language) SELECT [DISTINCT] FROM ` ` SELECT … WHERE = SELECT … WHERE LIKE % % SELECT … WHERE IN (val1,val2) SELECT … WHERE BETWEEN AND SELECT … WHERE … ORDER BY ASC|DESC, … INSERT INTO (, …) VALUES (,…) DELETE FROM WHERE … UPDATE WHERE … SET =, …
10
ISIM 1 – Active Server Pages 10T. Bourdeaudhuy – IG 2 I Saison 2006-2007 Exercices Exercice 21 : Modifier lexemple didentification pour lire les données à partir de la base de données –Ajouter des scripts dadministration : ajout, suppression et modification des logins et passwords Exercice 22 : Créer une page permettant dentrer et dexécuter une requête SQL quelconque –Afficher ses résultats dans le cas dune requête de sélection
11
Système de fichiers du serveur + dinfos : poly compléments ASP sur moodle
12
ISIM 1 – Active Server Pages 12T. Bourdeaudhuy – IG 2 I Saison 2006-2007 Accès au système de fichiers Objet FILESYSTEMOBJECT : permet daccéder aux fichiers et répertoires et disques du serveur Création dun objet de connexion au fichier système Set OFS = Server.CreateObject("Scripting.FileSystemObject") Permet de –Créer des objets daccès aux disques –Créer des objets daccès aux répertoires –Disposer de méthodes de manipulation des fichiers et répertoires –… Rappel : chemin daccès physique à un fichier : –cheminFichier = Server.MapPath("nom_fichier")
13
ISIM 1 – Active Server Pages 13T. Bourdeaudhuy – IG 2 I Saison 2006-2007 Disques : Objets DRIVE Collection DRIVES de FileSystemObject –Éléments de type DRIVE Propriétés dun objet « DRIVE » : DriveLetter : Lettre de lecteur DriveType : Type du disque (0 : inconnu, 1 : Amovible, 2 : Fixe, 3 : Réseau, 4 : CD-Rom, 5 : Lecteur RAM) IsReady : Le média est inséré ou non AvailableSpace : Espace disponible (également FreeSpace) TotalSize : Espace disque total VolumeName : Nom du disque RootFolder : Objet FOLDER représentant la racine … Exercice 23 : lister les lecteurs du serveurs
14
ISIM 1 – Active Server Pages 14T. Bourdeaudhuy – IG 2 I Saison 2006-2007 Répertoires : Objets FOLDER Propriétés –Name, Size, Attributes –DateCreated, DateLastAccessed, DateLastModified –ParentFolder : Objet FOLDER contenant son répertoire parent Méthodes –Copy (chemin physique) : Copie le répertoire –Delete : Supprime le répertoire –Move (chemin physique) : Déplace le répertoire Collections –Files : Objets FILE représentant les fichiers du répertoire –SubFolders : Objets FOLDER représentant ses sous-répertoires Exercice 24 : lister les noms des sous-répertoires dune lecteur –Version récursive avec une fonction
15
ISIM 1 – Active Server Pages 15T. Bourdeaudhuy – IG 2 I Saison 2006-2007 Fichiers : Objets FILE Propriétés –Attributes, Datecreated, Datelastaccessed, Datelastmodified –Name, Path, Size, Type –Parentfolder : Objet FOLDER représentant le parent Méthodes –Copy (chemin physique) : Copie le fichier –Delete : Supprime le fichier –Move (chemin physique) : Déplace le fichier –Openastextstream (IOMode) Ouvre le fichier et retourne un objet TEXTSTREAM –IOMode 1/ForReading | 2/ForWriting | 8/ForAppending Exercice 25 : Ajouter à lexercice précédent les noms des fichiers
16
ISIM 1 – Active Server Pages 16T. Bourdeaudhuy – IG 2 I Saison 2006-2007 Fichiers Ouverts : Objets TEXTSTREAM Propriété –AtEndOfLine, AtEndOfStream, Column, Line : position courante Méthodes –Close() –Read(max) : Lit un nombre donné de caractères –ReadAll () :Lit le contenu intégral de lobjet –ReadLine() : Lit une ligne entière –Write text : Écrit une chaîne –WriteLine text : Écrit une chaîne et ajoute le saut de ligne Exercice 26 : proposer douvrir un des fichiers listés pour lafficher
17
ISIM 1 – Active Server Pages 17T. Bourdeaudhuy – IG 2 I Saison 2006-2007 Méthodes de lObjet FILESYSTEMOBJECT Manipulation fichiers : –CopyFile, MoveFile, CreateTextFile, DeleteFile, FileExists, OpenTextFile, GetFile Manipulation répertoires : –CopyFolder, MoveFolder, CreateFolder, DeleteFolder, FolderExists, GetFolder Créer un nouveau fichier texte –CreateTextFile(nom_fichier, [BoolEcraser]) Ouvrir un fichier texte –OpenTextFile(nom_fichier, IOMode) Exercice 27 : proposer la création de nouveaux fichiers Exercice 28 : Améliorer le formulaire de saisie dune requête quelconque en listant (champ select) les bases de données disponibles
18
ISIM 1 – Active Server Pages 18T. Bourdeaudhuy – IG 2 I Saison 2006-2007 Méthodes de lObjet FILESYSTEMOBJECT Manipulation des noms de fichiers : GETBASENAME(chemin) –Nom du dernier composant du chemin GETEXTENSIONNAME(chemin) –Retourne lextension du fichier GETFILENAME (chemin) –Extrait et retourne le nom de fichier GETPARENTFOLDERNAME (chemin) –Retourne le parent dun chemin
19
GLOBAL.ASA
20
ISIM 1 – Active Server Pages 20T. Bourdeaudhuy – IG 2 I Saison 2006-2007 Fichier Global.asa /1 Fichier unique placé dans le répertoire racine du site –Il comporte quatre sous-routines exécutées lors de la création et suppression des objets application et session –Permet la définition de paramètres (et variables) globaux –Session.Timeout, Server.ScriptTimeout Structure Sub Application_OnStart ' action à exécuter lors du démarrage de l'application seuls objets autorisés : application et serveur END SUB SUB Application_OnEnd ' actions à réaliser lors de larrêt du Site. END SUB
21
ISIM 1 – Active Server Pages 21T. Bourdeaudhuy – IG 2 I Saison 2006-2007 Fichier Global.asa /2 SUB Session_OnStart ' action à exécuter lors de la création dune nouvelle session END SUB SUB Session_OnEnd ' actions à réaliser lors de la fermeture de la session END SUB Exercice 29 : Définir un mécanisme de comptage du nombre dutilisateurs en ligne
22
ISIM 1 – Active Server Pages 22T. Bourdeaudhuy – IG 2 I Saison 2006-2007 Global.asa Objets Statiques Section Les objets déclarés dans la section object ne sont pas instanciés avant d'être appelés dans un script Utilisés dans les collections StaticObjects des objets session et application Structure <Object RunAt="Server" Scope="Session|Application" Id="Identifiant" {ProgId="ProgId"|ClassId="ClassId"}> Exemples
23
Gestion des Erreurs Objet ASPERROR : Version 3.0 dASP
24
ISIM 1 – Active Server Pages 24T. Bourdeaudhuy – IG 2 I Saison 2006-2007 Objet ERR ON ERROR RESUME NEXT –Active une gestion derreur spécifique Propriétés –DESCRIPTION : Description de lerreur –HELPCONTEXT : Identifiant dune rubrique daide –HELPFILE : Chemin du fichier daide –NUMBER : Code de lerreur –SOURCE : Source de lerreur Méthodes –CLEAR() Réinitialisation des propriétés
25
ISIM 1 – Active Server Pages 25T. Bourdeaudhuy – IG 2 I Saison 2006-2007 Objet ASPERROR Permet de recueillir des informations sur les erreurs survenues lors de l'exécution du code ASP de la page Utile pour les pages de traitement des erreurs e.g. custom500.asp Création : méthode GetLastError de lObjet SERVER –SET Error = Server. GetLastError Propriétés (lecture seule) –ASPCode : Code derreur –ASPDescription: Description détaillée de lerreur –Category: Code source responsable de lerreur –Column: Numéro de colonne de lerreur –Description: Description courte de lerreur –File: Nom du fichier traité lorsque lerreur sest produite –Line: Numéro de ligne de lerreur –Number: Numéro de lerreur COM standard –Source: Code source responsable de lerreur
26
ISIM 1 – Active Server Pages 26T. Bourdeaudhuy – IG 2 I Saison 2006-2007 Objet RegExp SET oRegExp = NEW REGEXP Propriétés –GLOBAL Indique si la recherche doit être effectuée pour toutes les occurrences de la chaîne ou seulement la 1ère –IGNORECASE Indique si la chaîne est sensible à la casse –PATTERN Indique la chaîne modèle à rechercher Méthodes –EXECUTE(str) Retourne un objet collection MATCHES contenant les informations relatives à la comparaison –REPLACE(str1,str2) Remplace toutes les sous-chaînes trouvées par une autre –TEST str Retourne un booléen indiquant si la recherche sest effectuée avec succès
27
ISIM 1 – Active Server Pages 27T. Bourdeaudhuy – IG 2 I Saison 2006-2007 Objet Match Propriétés –FIRSTINDEX Indique la position dans la chaîne source où lexpression régulière a été rencontrée –LENGTH Indique le nombre de caractères correspondant dans la chaîne –VALUE Le texte trouvé dans la chaîne Collection MATCHES : –Propriétés COUNT et ITEM
28
Annexes Administration du Server Composants additionnels Conventions de Nommage Critères dévaluation des CTP et exercices
29
ISIM 1 – Active Server Pages 29T. Bourdeaudhuy – IG 2 I Saison 2006-2007 Composants Additionnels Cdont : Envoi de Mails AcxImage : Génération dimages Cf. http://www.laltruiste.comhttp://www.laltruiste.com AdRotator Afficher des annonces différentes à chaque affichage d'une page ASP BrowserType Indiquer les caractéristiques du navigateur du client ContentRotator Afficher un texte différent à chaque affichage d'une page ASP Counters Gérer des compteurs permanents IISLog Administrer /Explorer un fichier journal généré par le serveur IIS MyInfo Stocker des valeurs de propriétés qui peuvent être créées dynamiquement NextLink Gérer une liste d'adresses URL dans un fichier texte. PageCounter Comptabiliser le nombre d'ouverture d'une page ASP PermissionChecker Vérifier si un utilisateur à le droit d'accéder à un fichier Tools Utilitaires (tester l'existence d'un fichier, traiter un formulaire HTML, générer une valeur entière aléatoire, …) ASPSmartUpload Gérer les téléchargements de fichiers en Upload ou en Download à partir d'un serveur hôte
30
Administration du Serveur IIS Démo sous Windows XP Répertoires virtuels DSN systèmes
31
Conventions de Nommage Déclaration et initialisation des variables Variables ASP Variables de requêtes, formulaires Fonctions Répertoires et fichiers Modularité Clarté et lisibilité du code
32
ISIM 1 – Active Server Pages 32T. Bourdeaudhuy – IG 2 I Saison 2006-2007 Déclaration et Initialisation des variables Utiliser (1 ère ligne du source) : provoque des erreurs de compilation si des variables ne sont pas déclarées Utiliser les mots-clés DIM et CONST Toujours initialiser les variables : EMPTY, "", 0 Les chaînes de requête SQL sont définies et initialisées avant dêtre utilisées
33
ISIM 1 – Active Server Pages 33T. Bourdeaudhuy – IG 2 I Saison 2006-2007 Variables ASP Variables en minuscules : nomVar1, maSuperVariable Constantes et mots-clés du langage en MAJUSCULES Utilisation de noms pertinents (pas de « toto ») Des préfixes sont utilisés pour définir : –La portée des variables : Session/Application/Globale/Locale –Le type de la variable : Int/Str/Bool/Date/Objet/Tab Exemples : –Un compteur à lintérieur dune fonction : lInt_i –Une variable globale : gStr_nomUser –Une variable de session : sStr_idOk –Le résultat dun test : lBool_isTrue
34
ISIM 1 – Active Server Pages 34T. Bourdeaudhuy – IG 2 I Saison 2006-2007 Variables de formulaires, Requêtes Un préfixe décrit le type de champ de formulaire : –txt, passwd, textarea, radio, submit, button, hidden, select, … Tous les formulaires ont un nom, e.g. formCoord Les variables de formulaire utilisent ce nom : –formCoord_txtMail, formCoord_txtLogin Les variables ASP qui récupèrent des champs de formulaires portent le nom de la variable correspondante : –gStr_mail, gStr_login Les chaînes de requête SQL et les objets de connexion et de résultat correspondants doivent porter un nom fondé sur le même motif DANS TOUS LES CAS UTILISER UN NOMMAGE HOMOGENE
35
ISIM 1 – Active Server Pages 35T. Bourdeaudhuy – IG 2 I Saison 2006-2007 Fonctions Indiquer dans le nom dune fonction ce qu'elle fait (verbe) : –get : récupération dune valeur –set : modification dune valeur –mk : réalisation dun traitement –show/write/print : affichage Un préfixe peut être utilisé pour indiquer ce quelle renvoie Exemples : –Affichage dun tableau : showTab() –Vérification dune identification : boolVerifUser()
36
ISIM 1 – Active Server Pages 36T. Bourdeaudhuy – IG 2 I Saison 2006-2007 Répertoires et fichiers Les répertoires ne doivent pas être imbriqués Les extensions dépendent de la fonction du fichier : –asp, htm –inc, js pour les librairies asp et javascript Des préfixes permettent de connaître le contenu du fichier : –f formulairex traitement sans affichage –m menu –c cadre html
37
ISIM 1 – Active Server Pages 37T. Bourdeaudhuy – IG 2 I Saison 2006-2007 Modularité Découper les traitements en fonctions génériques Utiliser des inclusions de fichiers pour les fonctions communes à plusieurs pages –Attention : des fichiers inclus ne doivent pas en inclure dautres (notion de module) Attention à la portée des variables Séparer le code client (HTML, javascript) du code ASP –Fonctions, inclusions, appels en haut de la page –Quand cest nécessaire, veiller à minimiser les ouvertures/fermetures
38
ISIM 1 – Active Server Pages 38T. Bourdeaudhuy – IG 2 I Saison 2006-2007 Clarté et lisibilité du code Indentation BSD pour lASP ET le HTML ! User et abuser de commentaires pertinents : –Au moment de la déclaration dune variable –Avant la déclaration dune fonction –A chaque fois que lon effectue un traitement non trivial (début dune boucle, calcul dindex, … ) Commenter la fin dune boucle par son nom : WHILE lInt_i IN … DO traitements LOOPlInt_i
39
Critères dévaluation des CTP & Exercices Forme /3 Qualité du programme /3 Fonctionnalités attendues /14
40
ISIM 1 – Active Server Pages 40T. Bourdeaudhuy – IG 2 I Saison 2006-2007 Forme Tout ce qui permet de sy retrouver quand on reprend le programme Indentation : tabulations, passage à la ligne Quantité, mise en forme et pertinence des commentaires Lisibilité globale : enchevêtrement html/php/javascript, définition des fonctions au début de chaque page Choix des noms de paramètres, variables, fonctions, librairies pertinents Respect des nommages html/php Esthétique du résultat dans les limites du raisonnable (ni trop beau si toutes les questions n'ont pas été faites, ni linverse)
41
ISIM 1 – Active Server Pages 41T. Bourdeaudhuy – IG 2 I Saison 2006-2007 Qualité du programme Tout ce qui est indépendant de la fonction du programme Emploi de structures de contrôle adaptées et évoluées quand cest nécessaire (foreach, switch) Structure de la base de données conforme aux spécifications, qui permet l'ajout de fonctionnalités supplémentaires facilement Fermeture des bases de données, fichiers, … Tests aux limites : absence de résultats d'une requête … Utilisation raisonnée des variables globales et locales Modularité adaptée (traitements réutilisables, paramètres utiles et bien documentés, pas d'effets de bord néfastes), utilisation de librairies Robustesse, messages d'erreur pour l'utilisateur
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.