Cours CPTIC 158
Bases de données sur Internet
16 et 17 avril 2002

Interaction avec entre le client et le serveur, les objets ASP

Les objets de base d'ASP sont Request, Response, Server, Application et Session. Il y en a d'autres, je ne présente ici que les plus utiles à mes yeux.


l'objet Request

L'objet Request est utilisé pour obtenir l'information transmise par l'utilisateur.

Collections

QueryString contient toutes les variables transmises par une requête GET
Form contient toutes les variables transmises par une requête POST
ServerVariables contient toutes une série de variables du serveur
Cookies contient tous les cookies reçu avec la requête HTTP
ClientCertificate contient toutes les informations relatives aux certificats tranmis par le client

Propriétés

TotalBytes Renvoie le nombre total d'octets que le client a transmis dans le corps de sa requête

Méthodes

BinaryRead Place la totalité des données envoyées par le serveur dans une requête POST dans un tableau

Exemples d'utilisation:

Un petit programme qui demande votre nom, et qui vous salue après.

<% option explicit %>
<html>
  <body>

  <form action="hello.asp" method="get">
    Tapez votre nom, svp:
    <input type="text" name="nom"><br><br>
    <input type="submit" value="Submit">
   </form>

<% If Request.QueryString("nom")<>"" Then %>
    Hello <%= Request.QueryString("nom") %><br>
    Comment &ccedil;a va aujourd'hui?
<% End If %>

  </body>
</html>

Connaître des caractéristiques de la machine de l'utilisateur

<% option explicit %>
<html>
  <body>
    <p>Vous travaillez sur : <%= Request.ServerVariables("HTTP_USER_AGENT") %></p>
    <p>Votre adresse IP est :<%= Request.ServerVariables("REMOTE_ADDR") %></p>
  </body>
</html>

Parcourir les champs envoyé à l'aide d'un formulaire

<% option explicit %>
<html>
  <body>
    <form name="hobby" action="hobby.asp" method="post">
      <p>Votre nom: <input type="text" name="nom" size="24"><br>
      Vos hobbies:<br>
      <input type="checkbox" value="ski" name="hobby">ski<br>
      <input type="checkbox" value="velo" name="hobby">v&eacute;lo<br>
      <input type="checkbox" value="natation" name="hobby">natation<br>
      <input type="submit" name="submit"></p>
    </form>
    <hr>
<%
DIM champ, valeur
DIM i

For Each champ In Request.Form
  If Request.Form(champ).count > 1 Then
    For i = 1 To Request.Form(champ).count
      Response.Write champ & "(" & i & ") : " & Request.Form(champ)(i) & "<BR>"
    Next
  Else
    Response.Write champ & " : " & Request.Form(champ) & "<BR>"
  End If
Next
%>
  </body>
</html>


L'objet Response

L'objet Response est utilisé pour retourner de l'information du serveur vers le client

Collections

Cookies permet de gréer les cookies qui seront envoyés au navigateur

Propriétés

Buffer Spécifie s'il faut attendre la fin des calculs sur la page HTML avant de pouvoir envoyer le début de la page
CacheControl Spécifie si les serveur de proxy peuvent mettre cette page en cache.
Charset Ajoute le nom du jeu de caractère au champ Content-Type dans l'entête HTTP de la page
ContentType Définit le type de contenu HTTP pour l'objet Response
Expires Définit la durée de vie de la page dans le cache du navigateur, exprimée en minute
ExpiresAbsolute Définit de manière absolur la date et l'heure d'expiration de la page dans le cache du navigateur
IsClientConnected Indique si le client a été déconnecté du serveur.
Pics Rajoute un champ Pics à l'entête HTTP de la page (Pics = Platform for Internet Content Selection)
Status Spécifie la valeur du statut renvoyé par le serveur, par exemple 404 pour page non trouvée, 401 pour accès non autorisé, etc

Méthodes

AddHeader Rajoute un entête HTTP avec sa valeur à la réponse du serveur au client
AppendToLog Ajoute une ligne à la fin du log du serveur
BinaryWrite Envoye des données directement au client sans aucune conversion de caractère
Clear Vide tout le contenu du Buffer dans la mesure où celui-ci a été activé
End Arrête le processus de script courant, et retourne le résultat actuel au client
Flush Envoie le contenu du buffer au client immédiatement
Redirect Redirige l'utilitateur sur une autre page
Write Envoie le contenu de la chaîne de caractère au navigateur

Il n'y a pas grand-chose à dire sur l'objet Response, sauf qu'il est possible de temporiser un retour d'information vers le navigateur, afin d'être en mesure d'interompre le processus au cas où.


L'objet Server

L'objet Server est utilisé pour accéder au propriétés et aux méthodes du serveur.

Propriétés

ScriptTimeOut Définit la durée de vie maximale du script avant qui soit tué

Méthodes

CreateObject Créée une instance d'un objet
Execute Exécute une page ASP depuis l'intérieur d'une autre page ASP
GetLastError()
Retourne un objetASPError qui décrit le contexte de la dernière erreur qui s'est produit
HTMLEncode Transforme une chaîne de caractère du jeu standard Windows vers du code HTML
MapPath Transforme le nom du fichier passé en paramètre en un chemin absolu sur le serveur
Transfer Envoie (ou transfert) toute l'information déjà créée d'une page ASP vers une autre page ASP
URLEncode Transforme la chaîne decaractère passée en paramètre en une chaîne compatible avec la codification des URL


L'objet Application

L'objet Application est utilisé pour enregistrer et accéder à des variables depuis toutes les pages. Tous les utilisateurs du serveur partagent le même objet Application. Cet obje appliction est créé au démarrage du serveur web, et est détruit quand le serveur est arrêté. Il n'en est pas fait usage lors de ce cours, et pour cette raison la description s'arrête ici.


L'objet Session

L'objet Session est utilisé pour enregistrer des informations pour la durée d'une session utilisateur.

Pour rappel, le protocole HTTP est à l'origine un protocole sans connexion. A chaque fois que l'utilisateur demande un document, une page web, une image etc, le navigateur ouvre une nouvelle connexion vers le serveur, demande le document, le serveur fournit le document et ferme la connexion. Cette simplicité est à l'origine de l'essor fulgurant d'Internet. C'est son point fort, mais aussi son point faible. Il y a un certain nombre d'applications qui ont besoin de la notion de session, tels que messagerie via une page web, portail, accès à des bases de données, etc. Comme il n'y a théoriquement aucun lien entre deux appels successifs au serveur, il fat trouver un autre moyen pour maintenir cette information. Cela est fait au travers de l'objet session, qui relie les appels successifs à l'aide de cookies. La durée de vie de l'objet session est limitée dans le temps, à savoir une quinzaine de minutes d'inactivités.

Collections

Contents contient toutes les variables ajoutées à la session au travers de script
StaticObjects contient tous les objets ajouté à la session

Propriétés

CodePage Détermine le jeu de caractère utilisé pour afficher du contenu dynamique
LCID Valeurqui spécifie une région. Des contenus comme date, heure, monnaie sont affichés selon les usages de cette région
SessionID Retourne un identificateur de session unique. Cet ID est généré par le serveur
TimeOut Définit la durée de vie de la session

Méthodes

Abandon Supprime une session utilisateur
Contents.Remove Supprime une variable de la collection Contents
Contents.RemoveAll Supprime toutes les variables de la collection Contents
Clear Vide tout le contenu du Buffer dans la mesure où celui-ci a été activé

Evénements

Session.OnEnd Survient quand une session se termine
Session.OnStart Survient quand une sessions démarre