28
Programmation multimédia 3 Les objets de ASP Semaine 2 Préparé par Marc Aubé Source : www.laltruiste.com

Programmation multimédia 3 Les objets de ASP Semaine 2 Préparé par Marc Aubé Source :

Embed Size (px)

Citation preview

Page 1: Programmation multimédia 3 Les objets de ASP Semaine 2 Préparé par Marc Aubé Source :

Programmation multimédia 3

Les objets de ASPSemaine 2Préparé par Marc AubéSource : www.laltruiste.com

Page 2: Programmation multimédia 3 Les objets de ASP Semaine 2 Préparé par Marc Aubé Source :

Les objets de ASP

Objets à étudier Request: pour obtenir de l'information provenant de

l'usager Response: pour envoyer de l'information à l'usager Server: pour contrôler le serveur + utilitaires Session: pour gérer une session usager Application: pour contrôler l'état d'une application ASPError: contient des informations relatives à une

erreur dans un script ASP. ObjectContext: correspond en quelque sorte à un

objet racine autour duquel s'articulent les objets intrinsèques

Page 3: Programmation multimédia 3 Les objets de ASP Semaine 2 Préparé par Marc Aubé Source :

L'objet Request

cet objet permet d'obtenir l'information de l'usager

on dit qu'il contient différentes collections. Les collections qu'il contient sont dans les variables: QueryString, Form, Cookies, ServerVariables

cet objet se manipule comme ceci Request[.Collection]("variable")[(index)|.Count]

Page 4: Programmation multimédia 3 Les objets de ASP Semaine 2 Préparé par Marc Aubé Source :

Un exemple

Il faut noter que dans certains cas les formulaires retournent plusieurs valeurs pour un même champ. C'est le cas par exemple de listes à choix multiples. Prenons l'exemple suivant:

Quelles villes canadiennes avez-vous déjà visitées?

Page 5: Programmation multimédia 3 Les objets de ASP Semaine 2 Préparé par Marc Aubé Source :

Un exemple (suite)

Le HTML pour ceci aura cette forme: <P>Quelles villes canadiennes avez-vous déjà visitées?

<br></P> <FORM ACTION="#"><SELECT NAME="villes" MULTIPLE SIZE="6">

<OPTION> Halifax<OPTION SELECTED> Montréal<OPTION> Regina<OPTION SELECTED> Toronto<OPTION SELECTED> Vancouver<OPTION> Victoria

</SELECT><INPUT TYPE=SUBMIT NAME=submit VALUE="Envoyer">

</FORM>

Page 6: Programmation multimédia 3 Les objets de ASP Semaine 2 Préparé par Marc Aubé Source :

Un exemple (suite)

Et nous aurons Request.QueryString("villes").Count égale à 3.Si je veux imprimer le troisième choix, je dirai: Request.QueryString("villes")(3) (l'index va ici de 1 à Count)

Page 7: Programmation multimédia 3 Les objets de ASP Semaine 2 Préparé par Marc Aubé Source :

QueryString et Form

le QueryString contient des données provenant: d'un formulaire soumis avec la méthode GET

d'un URL incluant une partie de données à la fin, juste après le "?", exemple: http://www.xyz.com/commande.asp?itemno=2234&marchand=donini

Exemple d'extraction de données:

<%= Request.QueryString("itemno") %>

Page 8: Programmation multimédia 3 Les objets de ASP Semaine 2 Préparé par Marc Aubé Source :

QueryString et Form

le Form contient des données provenant: d'un formulaire soumis avec la méthode

POST (ces données sont envoyées avec la requête HTTP)

exemple:

<%= Request.Form("villes") %>

Page 9: Programmation multimédia 3 Les objets de ASP Semaine 2 Préparé par Marc Aubé Source :

Ignorer la collection

Si on ignore de mentionner la collection, comme par exemple: <%= Request("villes") %>alors là VBScript va chercher dans chacune des collections: QueryString, Form, Cookies, ServerVariables dans cet ordre jusqu'à ce qu'il trouve

s'il ne trouve pas, il retourne la chaîne vide

Page 10: Programmation multimédia 3 Les objets de ASP Semaine 2 Préparé par Marc Aubé Source :

Exercice 1: calcul de taxes

faire un formulaire pour le calcul de taxes avec le champ soustotal

sauver ce formulaire dans taxes.htm vous devez lire les données du

QueryString l'action dans taxes.htm doit être mise à

taxes.asp

Page 11: Programmation multimédia 3 Les objets de ASP Semaine 2 Préparé par Marc Aubé Source :

Variables d'environnement

Voici quelques variables d'environnement importantes SERVER_NAME: donne l'adresse IP ou le nom de

l'hôte du réseau sur lequel le script s'exécute. SERVER_PORT: donne le port sur lequel le script

roule. REQUEST_METHOD: donne la méthode selon laquelle

un formulaire à été soumis (POST ou GET) PATH_INFO: information sur le chemin (path); Elle est

envoyée par le fureteur qui utilise la méthode Get. PATH_TRANSLATED: complète l'information de la

variable PATH_INFO, en spécifiant le chemin complet à partir du répertoire principal

Page 12: Programmation multimédia 3 Les objets de ASP Semaine 2 Préparé par Marc Aubé Source :

Le vecteur ServerVariables

les variables d'environnement se retrouvent dans ServerVariables

par exemple, si on voulait toutes les afficher:<%For each variable In Request.ServerVariables%>

<%= variable %>: <%= Request.ServerVariables(variable) %><br>

<% Next %>

Page 13: Programmation multimédia 3 Les objets de ASP Semaine 2 Préparé par Marc Aubé Source :

Anatomie d'un script

un script doit satisfaire deux règles de base: il écrit vers la sortie standard il indique au serveur, à l'aide d'en-têtes (headers), la façon

qu'il doit traiter l'information qu'il reçoit du script

Page 14: Programmation multimédia 3 Les objets de ASP Semaine 2 Préparé par Marc Aubé Source :

Anatomie d'un script

il y a trois sortes d'entêtes: Content-type: dit au fureteur comment traiter l'information,

qu'il recevra du script. Location: permet au script d'ouvrir un autre document sur le

serveur (redirection), comme s'il avait été appelé par le fureteur.

Status: est utilisé pour envoyer un code d'état spécial au fureteur.

chaque entête doit être suivie d'une ligne blanche après les entêtes il y a les données (HTML, image, ...)

Page 15: Programmation multimédia 3 Les objets de ASP Semaine 2 Préparé par Marc Aubé Source :

L'objet Response

L'objet Response contient une série de méthodes, en voici la liste

AddHeader(): pour pouvoir ajouter des éléments dans l'en-tête

AppendToLog(): permet d'ajouter une chaîne d'au plus 80 caractères au fichier journal

Page 16: Programmation multimédia 3 Les objets de ASP Semaine 2 Préparé par Marc Aubé Source :

L'objet Response

BinaryWrite(): permet d'envoyer de l'information non filtrée (utile lorsqu'on renvoie une image)

Clear(): aura pour effet d'effacer le contenu sur l'afficheur du client

Page 17: Programmation multimédia 3 Les objets de ASP Semaine 2 Préparé par Marc Aubé Source :

L'objet Response

End(): termine la connexion avec le client Flush(): vide le tampon de sortie (utile

lorsque la propriété Buffer est à true) Redirect(): fait une redirection. Par

exemple: Response.Redirect "http://www.yahoo.com/"

Write(): envoie une chaîne de caractères au client

Page 18: Programmation multimédia 3 Les objets de ASP Semaine 2 Préparé par Marc Aubé Source :

L'objet Response

L'objet Response contient une série de propriétés, en voici la liste

Buffer: booléen. permet d'accumuler la sortie avant de l'envoyer et pendant ce temps d'envoyer des champs pour l'en-tête

Page 19: Programmation multimédia 3 Les objets de ASP Semaine 2 Préparé par Marc Aubé Source :

L'objet Response

ContentType: permet de spécifier le genre de données qui suit. Des exemples: text/plain, text/html (le plus souvent), image/gif, image/jpeg, application/ms-excel, etc...

CacheControl: Public ou Private (contrôler le caching par les serveurs proxy)

Cookies: pour conserver l'état. Nous verrons plus tard.

Page 20: Programmation multimédia 3 Les objets de ASP Semaine 2 Préparé par Marc Aubé Source :

L'objet Response

Expires: dit quand une page doit être rafraîchie. Par défaut c'est 0. Argument accepté: nombre de minutes.

ExpiresAbsolute: dit quand une page doit être rafraîchie. Argument accepté: une date complète. Exemple: Response.ExpiresAbsolute = #December 21, 2001 1:00:00 AM#

Page 21: Programmation multimédia 3 Les objets de ASP Semaine 2 Préparé par Marc Aubé Source :

L'objet Response

Status: force le serveur à renvoyer un statut de réponse. Un exemple:

<% Response.Status = "401 Unauthorized " %>aura pour effet de faire apparaître une boîte de dialogue sur le client pour obtenir les données pour l'authentification.

Page 22: Programmation multimédia 3 Les objets de ASP Semaine 2 Préparé par Marc Aubé Source :

Session et application

deux objets nous permettent de conserver l'état: ce sont les objets

Session (pour chaque session) Application (à la première session d'un

script dans un répertoire donné)

on peut initialiser dans un fichier appelé GLOBAL.ASA

Page 23: Programmation multimédia 3 Les objets de ASP Semaine 2 Préparé par Marc Aubé Source :

Session et application

les méthodes et propriétés: Abandon: méthode pour la session Timeout: propriété pour la session (défaut à 20

minutes) SessionID: propriété pour la session OnStart: événement pour la session ou l'application OnEnd: événement pour la session ou l'application Lock et Unlock: pour l'application Exemple: session("nomusager") =

Request.QueryString("nomusager")

Page 24: Programmation multimédia 3 Les objets de ASP Semaine 2 Préparé par Marc Aubé Source :

Exemple de GLOBAL.ASA<SCRIPT RUNAT=server LANGUAGE="VBS">SUB Application_OnStart

Application("nvisiteurs") = 0END SUB</SCRIPT><SCRIPT RUNAT=server LANGUAGE="VBS">SUB Session_OnStart

Application.LockApplication("nvisiteurs") = Application("nvisiteurs") + 1 Application.Unlock

END SUB</SCRIPT><SCRIPT RUNAT=server LANGUAGE="VBS">SUB Session_OnEndApplication.LockApplication("nvisiteurs") = Application("nvisiteurs") – 1Application.UnlockEND SUB</SCRIPT>

Page 25: Programmation multimédia 3 Les objets de ASP Semaine 2 Préparé par Marc Aubé Source :

Exemple de GLOBAL.ASA

Dans une page donnée, nous mettrions:

Bienvenue sur notre site, il y a présentement<% =Application("nvisiteurs") %> visiteurs sur

le site.

De la même façon on pourrait aussi afficher des variables spécifiques à la session

Page 26: Programmation multimédia 3 Les objets de ASP Semaine 2 Préparé par Marc Aubé Source :

Objet Server

Une seule propriété; ScriptTimeout qui par défaut est à 90 secondes

méthodes: CreateObject(): utilisée lors de la création d'un objet

ActiveX (beaucoup d'exemples dans les pages qui suivent) HTMLEncode(): pour encoder les caractères de contrôle

pour le HTML (p.e. <, >, &, ").

HTMLEncode("<")

donnera

&lt;

Quand utiliser ça? Lorsqu'on doit afficher à l'écran le résultat issu d'un formulaire...

Page 27: Programmation multimédia 3 Les objets de ASP Semaine 2 Préparé par Marc Aubé Source :

Objet Server

MapPath: convertir un URL local au serveur en chemin physique sur le système de fichiers. Par exemple, si la racine d'un Web est dans c:\inetpub\wwwroot\ alors

MapPath("/asp/bar.htm")sera

c:\inetpub\wwwroot\asp\bar.htmindépendamment de l'existence ou non du fichier en question...

Page 28: Programmation multimédia 3 Les objets de ASP Semaine 2 Préparé par Marc Aubé Source :

Objet Server

URLEncode(): pour encoder une chaîne et la rendre appropriée pour un URL. Utilisé pour les données encodées dans un URL par la méthode GET, celles envoyées par POST ou pour les cookies.

URLencode("Éric L'Hermite")donnera

%C9ric+L%27Hermite