Nous avons examiné le cycle de vie d'une page et comment une page peut contenir différents contrôles. La page elle-même est instanciée en tant qu'objet de contrôle. Tous les formulaires Web sont essentiellement des instances de classes de pages ASP.NET. La classe page possède les propriétés extrêmement utiles suivantes, qui correspondent aux objets internes :
session
application
cache
demander
réponse
serveur
utilisateur
piste
Nous discuterons de chaque objet au moment opportun. Dans ce didacticiel, nous explorerons l'objet Server, l'objet Request et l'objet Response.
L'objet serveur dans ASP.NET est une instance de la classe System.Web.HttpServerUtility. La classe HttpServerUtility fournit un grand nombre de propriétés et de méthodes pour effectuer différentes tâches.
Les méthodes et propriétés de la classe HttpServerUtility sont exposées via les objets serveur internes fournis par ASP.NET.
Le tableau suivant fournit une série de propriétés de la classe HttpServerUtility.
propriété | décrire |
---|---|
Nom de la machine | Nom de l'ordinateur serveur |
ScriptTimeOut | Obtient et définit la valeur du délai d'expiration de la demande en secondes |
Le tableau suivant fournit quelques méthodes importantes :
méthode | décrire |
---|---|
CréerObjet(Chaîne) | Crée une instance de l'objet COM, vérifiée par son ProgID. |
CréerObjet(Type) | Crée une instance d'un objet COM, vérifiée par son type. |
Égal à (Objet) | Déterminez si un objet spécifique est cohérent avec un objet existant. |
Exécuter (Chaîne) | Exécute le chemin virtuel spécifié par l'application de traitement dans le contexte de la requête en cours. |
Exécuter (Chaîne, Booléen) | Exécute le chemin virtuel spécifié par le gestionnaire dans le contexte de la requête en cours, en spécifiant s'il faut effacer la collection QueryString et les formulaires. |
ObtenirDernièreErreur | Renvoie l'exception précédente. |
ObtenirType | Obtient le type d'une instance existante. |
Code HTML | Convertissez une chaîne ordinaire en une chaîne HTML légale. |
HtmlDécoder | Convertissez une chaîne HTML en une chaîne ordinaire. |
VersChaîne | Renvoie une chaîne représentant l'objet actuel. |
Transfert (Chaîne) | Pour la requête en cours, termine l'exécution de la page en cours et démarre l'exécution d'une nouvelle page en spécifiant le chemin URL de la page. |
UrlDécodage | Convertit une chaîne d'URL en une chaîne normale. |
UrlEncodeToken | Identique à UrlEncode, mais contient des données codées en Base64 dans un tableau d'octets. |
UrlDecodeToken | Fonctionne de la même manière que UrlDecode, mais contient des données codées en Base64 dans un tableau d'octets. |
Chemin de la carte | Renvoie le chemin physique correspondant au chemin du fichier sur le serveur virtuel spécifié. |
Transfert | Transférer l'exécution de l'application actuelle vers une autre page Web. |
L'objet de requête est une instance de la classe System.Web.HttpRequest. Il représente les valeurs et attributs de la requête HTTP qui permettent de charger la page dans le navigateur.
Les informations présentées par cet objet sont encapsulées dans une abstraction de niveau supérieur (le modèle de contrôle Web). Cependant, cet objet peut aider à inspecter certaines informations, telles que les navigateurs clients et les cookies.
Le tableau suivant fournit quelques propriétés remarquables de l'objet de requête :
propriété | décrire |
---|---|
Accepter les types | Obtient un tableau de chaînes de types MIME acceptés pris en charge par l'utilisateur. |
Chemin d'application | Obtenez le véritable chemin racine de l’application ASP.NET sur le serveur. |
Navigateur | Obtient ou définit des informations sur les capacités du navigateur de l'utilisateur demandeur. |
ContenuEncodage | Obtient ou définit l'entité du jeu de caractères. |
ContenuLongueur | Spécifie la longueur en octets du contenu envoyé par le client. |
Type de contenu | Obtient ou définit le type de contenu MIME de la demande entrante. |
Cookies | Obtenez l'ensemble des cookies envoyés par le client. |
Chemin du fichier | Obtenez le chemin réel de la requête actuelle. |
Fichiers | Obtient une collection de fichiers téléchargés par le client au format MIME en plusieurs parties. |
Formulaire | Obtient une collection de variables de formulaire. |
En-têtes | Obtient une collection d'en-têtes HTTP. |
Méthode Http | Obtenez la méthode de transfert de données HTTP utilisée par l'utilisateur (telle que GET, POST ou HEAD) |
Flux d'entrée | Obtenez le contenu de l'entité du HTTP entrant. |
IsSecureConnection | Obtient une valeur indiquant si la connexion HTTP utilise des sockets sécurisés (c'est-à-dire HTTPS). |
Chaîne de requête | Obtient une collection de variables de chaîne de requête HTTP. |
URL brute | Obtenez l'URL d'origine de la requête en cours. |
Type de demande | Obtient ou définit la méthode de transfert de données HTTP (GET ou POST) utilisée par l'utilisateur. |
Variables du serveur | Obtient une collection de variables du serveur Web. |
Nombre total d'octets | Obtenez le nombre d'octets du flux d'entrée existant. |
URL | Obtient des informations sur une URL demandée existante. |
Référent Url | Obtient des informations sur l'URL de la demande précédente du client liée à une URL existante. |
Agent utilisateur | Obtient la chaîne d'agent utilisateur d'origine du navigateur client. |
AdresseHôteUtilisateur | Obtenez l'adresse IP de l'hôte du client distant. |
NomHôteUtilisateur | Obtient le nom DNS du client distant. |
Langues utilisateur | Obtient un tableau de chaînes triées de préférences linguistiques du client. |
Le tableau suivant fournit quelques méthodes importantes :
méthode | décrire |
---|---|
LectureBinaire | Effectue une lecture binaire du nombre d'octets spécifié à partir du flux d'entrée actuel. |
Égal à (Objet) | Détermine si l'objet spécifié est équivalent à un objet existant. (hérité de l'objet) |
ObtenirType | Obtient le type d'une instance existante. |
Coordonnées de l'image de la carte | Dessine les paramètres du formulaire de champ d'image entrant selon les valeurs de coordonnées x et y appropriées. |
MapPath (Chaîne) | Dessine le chemin réel spécifié dans un chemin physique. |
Enregistrer sous | Stocké sur le disque sous forme de requête HTTP. |
VersChaîne | Renvoie une chaîne représentant l'objet existant. |
ValiderEntrée | Provoque la validation en accédant à la collection de propriétés Cookies, Form et QueryString. |
L'objet de réponse représente la réponse du serveur à la demande de l'utilisateur. Il s'agit d'une instance de la classe System.Web.HttpResponse.
Dans ASP.NET, les objets de réponse ne jouent aucun rôle important dans l'envoi de texte HTML à l'utilisateur, car les contrôles côté serveur disposent de méthodes imbriquées et orientées objet pour leur rendu.
Cependant, l'objet HttpResponse fournit des fonctionnalités importantes, telles que les caractéristiques des cookies et la méthode Redirect(). La méthode Response.Redirect() permet de transférer l'utilisateur vers une autre page, soit au sein de l'application, soit en dehors de l'application. Cela nécessite un processus aller-retour.
Le tableau suivant fournit quelques propriétés remarquables des objets de réponse :
propriété | décrire |
---|---|
Tampon | Obtient ou définit une valeur indiquant si la sortie est mise en mémoire tampon et envoyée une fois que le répondeur complet a terminé. |
Sortie du tampon | Obtient ou définit une valeur qui indique si la sortie est mise en mémoire tampon et envoyée une fois la page complète terminée. |
Jeu de caractères | Obtient ou définit le jeu de caractères HTTP du flux de sortie. |
ContenuEncodage | Obtient ou définit le jeu de caractères HTTP du flux de sortie. |
Type de contenu | Obtient ou définit le type HTTP MIME du flux de sortie. |
Cookies | Obtenez la collection de cookies correspondante. |
Expire | Obtient ou définit le nombre de minutes avant l'expiration des pages mises en cache sur un navigateur. |
ExpireAbsolu | Obtient ou définit la date et l'heure absolues auxquelles les informations mises en cache sont supprimées du cache. |
En-têteEncoding | Obtient ou définit un objet d'encodage représentant l'encodage du flux de sortie d'en-tête existant. |
En-têtes | Obtient une collection d’en-têtes de réponse. |
EstClientConnecté | Obtient une valeur indiquant si l'utilisateur est toujours connecté au serveur. |
Sortir | Entraîne la sortie du texte de sortie vers le flux de réponse HTTP. |
Flux de sortie | Active la sortie binaire vers le corps du contenu HTTP de la sortie. |
RedirectionEmplacement | Obtient ou définit la valeur de la position de l'en-tête Http. |
Statut | Définissez la barre d'état et renvoyez-la au client. |
Code d'état | Obtient ou définit le code d'état de sortie HTTP renvoyé au client. |
StatutDescription | Obtient ou définit la chaîne d'état de sortie HTTP renvoyée au client. |
Code de sous-état | Obtient ou définit une valeur qui limite le code d'état de la réponse. |
Supprimer le contenu | Obtient ou définit une valeur indiquant s'il faut envoyer du contenu HTTP au client. |
Le tableau suivant fournit quelques méthodes importantes :
méthode | décrire |
---|---|
Ajouter un en-tête | Ajoute un en-tête HTTP au flux de sortie. AddHeader est fourni pour assurer la compatibilité avec les versions antérieures d'ASP. |
AjouterCookie | L'infrastructure ajoute un cookie HTTP à la collection de cookies interne. |
AppendHeader | Ajoute un en-tête HTTP au flux de sortie. |
Ajouter au journal | Ajoutez des informations de journal personnalisées au fichier journal des services Internet (IIS). |
Écriture binaire | Écrit une chaîne de caractères binaires dans le flux de sortie HTTP. |
Effacer le contenu | Efface toutes les sorties du flux mis en mémoire tampon. |
Fermer | Fermez le socket client. |
Fin | Envoie toutes les sorties mises en mémoire tampon existantes au client, arrête l'exécution de la page et déclenche l'événement EndRequest. |
Égal à (Objet) | Détermine si l'objet spécifié est équivalent à un objet existant. |
Flush | Envoyez toutes les sorties mises en mémoire tampon existantes au client. |
ObtenirType | Obtient le type d'une instance existante. |
Photos | Ajoute un en-tête HTTP PICS-Label au flux de sortie. |
Redirection (Chaîne) | Redirigez la demande vers une nouvelle URL et spécifiez la nouvelle URL. |
Redirection (Chaîne, Booléen) | Redirigez le client vers une nouvelle URL. Spécifie la nouvelle URL et si la page existante doit être fermée. |
DéfinirCookie | Mettez à jour les cookies existants dans la collection de cookies. |
VersChaîne | Renvoie une chaîne représentant l'objet existant |
Transmettre le fichier (chaîne) | Écrit le fichier spécifié directement dans un flux de sortie de réponse HTTP sans mise en mémoire tampon. |
Écrire (caractère) | Écrit un caractère dans un flux de sortie de réponse HTTP. |
Écrire (Objet) | Écrit un objet dans un flux de réponse HTTP. |
Écrire (Chaîne) | Écrit une chaîne dans un flux de sortie de réponse HTTP. |
ÉcrireFichier(Chaîne) | Écrit le contenu du fichier spécifié directement dans un flux de sortie de réponse HTTP, sous forme de bloc de fichier. |
WriteFile (Chaîne, Booléen) | Écrit le contenu du fichier spécifié directement dans un flux de sortie de réponse HTTP, sous forme de bloc mémoire. |
L'exemple simple suivant comporte un contrôle de zone de texte qui permet à l'utilisateur de saisir un nom, un bouton qui envoie des informations au serveur et un contrôle d'étiquette qui affiche l'URL de l'ordinateur client.
Fichiers de contenu :
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="server_side._Default" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>Untitled Page</title> </head> <body> <form id="form1" runat="server"> <div> Enter your name: <br /> <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Submit" /> <br /> <asp:Label ID="Label1" runat="server"/> </div> </form> </body></html>
Code Button1_Click après avoir cliqué :
protected void Button1_Click(object sender, EventArgs e) { if (!String.IsNullOrEmpty(TextBox1.Text)) { // Access the HttpServerUtility methods through // the intrinsic Server object. Label1.Text = "Welcome, " + Server.HtmlEncode(TextBox1.Text) + ". <br/> The url is " + Server.UrlEncode(Request.Url.ToString()) }}
Exécutez la page pour voir les résultats suivants :