Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 Applications Internet Chapitre 7, Sections 7.67.8.

Slides:



Advertisements
Présentations similaires
Introduction aux Web Services Partie 1. Technologies XML
Advertisements

Transformation de documents XML
Algorithmes et structures de données avancées Partie Conception de Sites Web dynamiques Cours 8 Patrick Reuter.
Architecture. Architecture Enjeux Les Enjeux Trouver une solution e-Business Accessible à partir d’un navigateur Web Accédant au système via un Portail.
L’architecture .net et ASP.net
Exposé de Système - Informatique et Réseau
Programmation Web Les JSP.
XHTML EXtensible HyperText Markup Language. HTML et XML HTML (HyperText Markup Language) et XML (eXtensible Markup Language) sont deux spécifications.
Cours 6 : XML et les architectures N-tiers – Tier Applicatif
le langage les éléments
Les fonctions de XPath et XSLT
Domaines nominaux XSLT

UV JSP JSP : Java Server Page
TP 3-4 BD21.
JSP Java Server Pages. Introduction Afin dimplémenter les règles métiers, coté serveur dans une application Web, larchitecture Java propose trois solutions.
Servlet JAVA.
Formulaire HTML Introduction. Définition de formulaire.
JSP 2 Crash Course Michel Buffa UNSA
CREATION DE FEUILLE DE STYLE pour structuré le document XML
Introduction aux Web Services Partie 1. Technologies HTML-XML
La balise <FORM>:
Introduction aux Web Services Partie 1. Technologies HTML-XML
Common Gateway Interface
LOG 02 Bases de Données Avancées Rappels sur JSP / Servlet
XML-Family Web Services Description Language W.S.D.L.
Struts 1 & 2 Tlohi ibtissam Tabit boutaina Ilias bouras
Applications Internet
JAVASERVER FACES Un framework Java pour le développement Web.
M2 – MIAGE/SID Servlet M2 – MIAGE/SID
SERVLETS PRESENTATION
Xml/xslt : Extensible Stylesheet Language Transformation réalisé par: saÏd NAÏM.
Bienvenue! Qui suis-je? Webmestre depuis 1994 Café Internet en 1996 Commerce électronique Gestion de contenu web Marketing interactif.
ASP.NET Par: Hugo St-Louis. C ARACTÉRISTIQUES A SP. NET Évolution, successeur plus flexible quASP (Active Server Pages). Pages web dynamiques permettant.
Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 Algèbre Relationnelle Chapitre 4, Sections 4.1 – 4.2.
M. Larooussi Formatage de documents - CSS École dété INSAT Août 2006.
JSTL JSP Standard Tag Library
PhP-MySQL Pagora 2012/2013 CTD 1 - Presentation de moi ^^
Servlets.
JSP (Java Server Pages)
1 CSI 2532 Lab6 Application Web et DB Février 27, 2012.
Document élaboré à Centrale Paris par Pascal Morenton LES TECHNOLOGIES DU WEB 1. LES PHASES D UN DEPLOIEMENT DE RESEAUX 2. LE LANGAGE HTML 3. LE LANGAGE.
Chapitre 3 Les bibliothèques de balises JSP et la JSTL
J2EE vs .NET Réaliser par : SEIF ENNACER BADRA && CHETOUI RIM.
Initiation au web dynamique
Les feuilles de style CSS
Animateur : Med HAIJOUBI
M2 – MIAGE/SID Servlet M2 – MIAGE/SID
UV J2EE Module Java Expert
Cours de programmation web
CEG3585/CEG3555 Tutorat 2 Hi ver 2013.
Technologies web et web sémantique TP3 - XML. XML eXtensible Markup Language (langage extensible de balisage) – Caractéristiques: méta-langage = un langage.
420-B63 Programmation Web Avancée Auteur : Frédéric Thériault 1.
1 Applications Internet Chapitre 7, Sections 7.1—7.5.
HTML Cours 3. Plan du cours Les feuilles de styles CSS Mise en forme du texte et des paragraphes.
Struts.
 Formulaires HTML : traiter les entrées utilisateur
Initiation au JavaScript
1 / / 01 / 2003 Laurent GRANIE & Franck LEGENDRE – MIAGE 3ème année - ARCHITECTURE WEB ARCHITECTURE WEB – COURS III
M2 – MIAGE/SID Servlet et session M2 – MIAGE/SID
Les Servlets Présentation Cycle de vie Principe de fonctionnement
Serveurs Web à contenu dynamique Emmanuel Cecchet INRIA Rhône-Alpes, Projet Sardes Rice University, Systems lab
HTML Création et mise en page de formulaire Cours 3.
Les Java Server Pages Dans ce chapitre, nous allons :
CPI/BTS 2 Programmation Web Les sites dynamiques Prog Web CPI/BTS2 – M. Dravet – 02/10/2003 Dernière modification: 02/10/2003.
HTML Création et mise en page de formulaire
IFT 6800 Atelier en Technologies d’information Chapitre 5 Introduction aux Servelets & JSP.
24 octobre 2012 Grégory Petit
Parquet Geoffrey 3 ARIL EXIA.CESI ARRAS. Présentation du MLD Présentation de la persistance Présentation récapitulatif du projet JSP/SERVLET MVC Cycle.
APP-TSWD Apprentissage Par Problèmes Techniques des Sites Web Dynamiques Licence Professionnelle FNEPI Valérie Bellynck, Benjamin Brichet-Billet, Mazen.
Transcription de la présentation:

Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke1 Applications Internet Chapitre 7, Sections

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)

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

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

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:

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

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).

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

Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke9 Formulaires HTML: Un Exemple Complet Userid Password <input type="submit" value="Login name="submit">

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:

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

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;}

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; }

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

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

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:

Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke17 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

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)

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.

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

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;

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

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

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); }

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()

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); }

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

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