La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

1 Applications Internet Chapitre 7, Sections 7.67.8.

Présentations similaires


Présentation au sujet: "1 Applications Internet Chapitre 7, Sections 7.67.8."— Transcription de la présentation:

1 1 Applications Internet Chapitre 7, Sections

2 2 Survol Concepts Internet Formats des données sur le web HTML, XML, DTDs Introduction à larchitecture à trois niveaux Le niveau de présentation Formulaires HTML; méthodes HTTP Get et POST, encodage des URLs; Javascript; Stylesheets; XSLT Le niveau intermédiaire CGI, serveurs dapplication, Servlets, JavaServerPages, passages darguments, maintenance des états (cookies)

3 3 Survol du Niveau de Présentation Rappel: Fonctionnalité du niveau de présentation Interface primaire de lusager Doit sadapter aux divers moyens de présentation (PC, PDA, téléphone cellulaire, accès vocal?) Simple fonctionnalité, telle vérification de la validité des champs Nous couvrirons: Formulaires HTML: Comment passer les données au niveau intermédiaire? JavaScript: Simple fonctionnalité au niveau de présentation Style sheets: Séparation des données du formatage

4 4 Formulaire HTML (Forms) Manière commune de communiquer les données du client au niveau intermédiaire Format général dun formulaire: … Composantes dune balise HTML FORM: ACTION: Spécifie lURI qui traite le contenu du formulaire METHOD: Spécifie la méthode HTTP GET ou POST NAME: Nom du formulaire; peut être utilisé dans les scripts du client pour faire référence au formulaire

5 5 Structure des Formulaires HTML Balise INPUT Attributs: TYPE: text (texte), password, reset NAME: nom symbolique utilisé pour identifier la valeur VALUE au niveau intermediaire VALUE: valeur par defaut Exemple: Exemple de formulaire:

6 6 Passage des Arguments Deux méthodes: GET et POST GET Le contenu du formulaire est passé à lURI soumis Structure: action?name1=value1&name2=value2&name3=value3 Action: nom de lURI spécifié dans le formulaire Les paires (name,value) viennent des attributs des balises INPUT contenu dans le formulaire; les attributs vides ont des valeurs vides (name=) Exemple tiré du formulaire de mot de passe du transparent précédent: TableOfContents.jsp?userid=john&password=johnpw La ressource mentionnée dans laction doit être un programme, un script, ou une page qui traitera les entrées de lutilisateur

7 7 Passage des Arguments (Suite) POST Structure comme dans la methode GET: action?name1=value1&name2=value2&name3=value3 GET: le contenu encodé est envoyé en attachement à lURI. POST: le contenu est envoyé dans un bloc de données séparées. POST et GET ont chacun des avantages et désavantages (Voir le livre de Ian Graham pour les détails).

8 8 HTTP GET: Encodage des Champs du Formulaire Les champs du formulaire peuvent contenir des caractères ASCII qui normalement napparaissent pas dans un URI Une convention spéciale dencodage convertit les valeurs de ces champs/attributs en caractères compatibles avec des URIs: 1.Convertit tous les caractères spéciaux (tels que &, =, +, %, etc.) en %xyz. Ici, xyz est le code ASCII du caractère spécial 2.Convertit tous les espaces en caractère + 3.Colle les paires (name,value) de la balise INPUT du formulaire ensemble avec & pour former lURI

9 9 Formulaires HTML: Un Exemple Complet Userid Password

10 10 JavaScript But: Ajouter de la fonctionnalité au niveau de présentation. Exemple dapplications: Détecter le type de browser et exécuter le code spécifique à ce browser Validation des formulaires: Validation des champs dentrée des formulaires Contrôle du browser: Ouvrir de nouvelles fenêtres, clore celles existantes En général imbriqué directement dans HTML avec la balise …. La balise a plusieurs attributs: LANGUAGE: spécifie le langage du script (p.ex. javascript) SRC: fichier externe contenant le code du script Exemple:

11 11 JavaScript (Suite) Si la balise ne contient pas un attribut SRC, le script de JavaScript est directement dans le fichier HTML. Exemple: Deux styles différents de commentaire

12 12 JavaScript (Suite) JavaScript est un langage de script complet Variables Assignements (=, +=, …) Opérateurs de comparaison (,…), opérateurs booléen (&&, ||, !) Instructions if (condition) {instructions;} else {instructions;} Boucles for, do-while, et while Fonctions avec valeur de retour Mot clé function function f(arg1, …, argk) {instructions;}

13 13 JavaScript: Un Exemple Complet Formulaire HTML:

JavaScript associé: function testLoginEmpty() { loginForm = document.LoginForm if ((loginForm.userid.value == "") || (loginForm.password.value == "")) { alert('Please enter values for userid and password.'); return false; } else return true; }

14 14 Stylesheets Idée: Séparer laffichage du contenu et adapter laffichage aux différents formats de présentation Deux aspects: Tranformation du document pour décider quelles parties afficher et dans quel ordre Decider comment chaque partie sera affichée Pourquoi utiliser les stylesheets? Réutiliser le même document pour différents affichages Adapter laffichage aux préférences de lutilisateur Réutilier le même document dans différents contextes Deux langages de stylesheets Cascading style sheets (CSS): pour documents HTML Extensible stylesheet language (XSL): pour documents XML

15 15 CSS: Cascading Style Sheets Définit comment afficher les documents HTML Beaucoup de documents HTML peuvent se référer au même CSS Le format dun site web peut ainsi changer juste en changeant un seul style sheet Exemple: Chaque ligne consiste en 3 parties: sélecteur {propriété: valeur} Sélecteur: balise dont le format est défini Propriété: attribut dont la valeur est fixée Valeur: valeur de lattribut

16 16 CSS: Cascading Style Sheets (Suite) Exemple de style sheet: body {background-color: yellow} h1 {font-size: 36pt} h3 {color: blue} p {margin-left: 50px; color: red} La première ligne a le même effet que la ligne HTML:

17 17 XSL Langage pour exprimer les style sheets Détails sur: Trois composantes XSLT: langage de transformation de XSL Peut transformer un document en un autre Détails sur XPath: langage de chemin XML Sélectionne des parties dun document XML Détails sur XSL Formatting Objects Formate la sortie dune transformation XSL Détails sur

18 18 Survol Concepts Internet Formats des données sur le web HTML, XML, DTDs Introduction à larchitecture à trois niveaux Le niveau de présentation Formulaires HTML; méthodes HTTP Get et POST, encodage des URLs; Javascript; Stylesheets; XSLT Le niveau intermédiaire CGI, serveurs dapplication, Servlets, JavaServerPages, passages darguments, maintenance des états (cookies)

19 19 Survol du Niveau Intermédiaire Rappel: Fonctionnalité du niveau intermédiaire Encode la logique dapplication Connecte à la base de données Accepte les entrées des formulaires venant du niveau de présentation Génère les sorties pour le niveau de présentation Nous couvrirons CGI: Protocole pour passer des arguments aux programmes exécutant au niveau intermédiaire Serveur dapplication: Environnement dexécution au niveau intermédiaire Servlets: Programmes Java au niveau intermédiaire JavaServerPages: Scripts Java au niveau intermédiaire Maintien de létat: Comment maintenir létat de lexécution au niveau intermédiaire. Ici, on verra essentiellement les cookies.

20 20 CGI: Common Gateway Interface But: Transmet des arguments des formulaires HTML aux programmes executant au niveau intermediaire Les détails du protocole CGI ne sont pas tellement important des bibliotheques implementent des interfaces au protocole CGI Désavantages: Le programme dapplication est invoqué dans un nouveau processus à chauqe invocation (rémède: FastCGI) Aucun partage des ressources entre les programmes dapplication (p.ex., les connexions aux bases de données) -- Rémède: Serveurs dapplication

21 21 CGI: Exemple Formulaire HTML: Type an author name: Code Perl: use CGI; $dataIn=new CGI; $dataIn->header(); $authorName=$dataIn->param(authorName); print( Argument passing test ); print(The author name is + $authorName); print( ); exit;

22 22 Serveur dApplication Idée: Eviter la surchage des CGIs Pooling de plusieurs processus Gère les connexions Permet un accès à des sources de données hétérogènes Autres fonctionnalité telle que des APIs pour la gestion des sessions

23 23 Serveur dApplication: Structure du Processus Structure du processus BrowserServeur Web Serveur dapplication Application C++ JavaBeans DBMS 1 DBMS 2 Pool de Servlets HTTP JDBC ODBC

24 24 Servlets Java Servlets: Code Java qui exécute au niveau intermédiaire Indépendant des plateformes Des APIs complets en Java disponibles, y compris JDBC Exemple: import java.io.*; import java.servlet.*; import java.servlet.http.*; public class ServetTemplate extends HttpServlet { public void doGet(HTTPServletRequest request, HTTPServletResponse response) throws SerletExpection, IOException { PrintWriter out=response.getWriter(); out.println(Hello World); }

25 25 Servlets (Suite) Vie dun servlet? Le serveur web envoie une requête au container servlet Le container crée une instance servlet (appèle la méthode init(); désallocation: destroy()) Le container appèle la méthode service() service() appèle doGet() pour exécuter le GET de HTTP ou doPost() pour POST Dhabitude il est conseillé de ne faire loverriding de service(), mais plutôt de doGet() et doPost()

26 26 Servlets: Un Exemple Complet public class ReadUserName extends HttpServlet { public void doGet(HttpServletRequest request, HttpSevletResponse response) throws ServletException, IOException { reponse.setContentType(text/html); PrintWriter out=response.getWriter(); out.println( \n \n + + request.getParameter(userid) + \n + + request.getParameter(password) + \n + \n ); } public void doPost(HttpServletRequest request, HttpSevletResponse response) throws ServletException, IOException { doGet(request,response); }

27 27 Java Server Pages Servlets Génère du HTML en lécrivant dans des objets PrintWriter Dabord le code, ensuite la page web JavaServerPages Ecrits en HTML, code similaire au code Servlet, mais imbriqué dans un code HTML Dabord la page web, ensuite le code Sont habituellement compilés en un Servlet

28 28 JavaServerPages: Exemple Welcome to B&N Welcome back! <% String name=NewUser; if (request.getParameter(username) != null) { name=request.getParameter(username); } %> You are logged on as user


Télécharger ppt "1 Applications Internet Chapitre 7, Sections 7.67.8."

Présentations similaires


Annonces Google