Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parAthenais Thierry Modifié depuis plus de 10 années
1
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 Applications Internet Chapitre 7, Sections 7.67.8
2
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke2 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
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke3 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
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke4 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
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke5 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
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke6 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
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke7 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
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke8 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
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke9 Formulaires HTML: Un Exemple Complet Userid Password <input type="submit" value="Login name="submit">
10
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke10 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
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke11 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 <!– commentaire de HTML pour ne pas afficher le code de JavaScript verbatim // commentaire de JavaScript
12
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke12 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
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke13 JavaScript: Un Exemple Complet Formulaire HTML: <form method="POST action="TableOfContents.jsp"> 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
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke14 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
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke15 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
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke16 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
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke17 XSL Langage pour exprimer les style sheets Détails sur: http://www.w3.org/Style/XSL/http://www.w3.org/Style/XSL/ Trois composantes XSLT: langage de transformation de XSL Peut transformer un document en un autre Détails sur http://www.w3.org/TR/xslthttp://www.w3.org/TR/xslt XPath: langage de chemin XML Sélectionne des parties dun document XML Détails sur http://www.w3.org/TR/xpathhttp://www.w3.org/TR/xpath XSL Formatting Objects Formate la sortie dune transformation XSL Détails sur http://www.w3.org/TR/xsl/http://www.w3.org/TR/xsl/
18
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke18 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
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke19 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
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke20 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
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke21 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
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke22 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
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke23 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
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke24 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
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke25 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
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke26 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
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke27 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
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke28 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
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.