Applications Web dynamiques SIO-21970



Documents pareils
SIO Page 1 de 5. Applications Web dynamiques. Prof. : Dzenan Ridjanovic Assistant : Vincent Dussault

Avant-propos 1. Avant-propos Organisation du guide À qui s'adresse ce guide?...4

Refonte front-office / back-office - Architecture & Conception -

SITE WEB E-COMMERCE ET VENTE A DISTANCE

Petite définition : Présentation :

Bases de données Page 1 de 11. Bases de données. Prof. : Dzenan Ridjanovic

Un serveur d'archivage

Cours en ligne Développement Java pour le web

Formation en Logiciels Libres. Fiche d inscription

10. Base de données et Web. OlivierCuré

Introduction à la plateforme J2EE

Compte Rendu d intégration d application

Soutien technique en informatique

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

TP JEE Développement Web en Java. Dans ce TP nous commencerons la programmation JEE par le premier niveau d une application JEE : l application web.

Formation Webase 5. Formation Webase 5. Ses secrets, de l architecture MVC à l application Web. Adrien Grand <jpountz@via.ecp.fr> Centrale Réseaux

Programmation Web. Introduction

Applications distribuées: le retour du client "riche"

Outil de planification en ligne pour des créations de rendez-vous ou de sondage

Catalogue des Formations Techniques

Projet 2. Gestion des services enseignants CENTRE D ENSEIGNEMENT ET DE RECHERCHE EN INFORMATIQUE. G r o u p e :

Environnements de Développement

Formation : WEbMaster

Java pour le Web. Cours Java - F. Michel

Modèle de cahier des charges pour un appel d offres relatif à une solution de gestion des processus métier (BPM)

Conception d'un système d'information WEB avec UML Par Ass SERGE KIKOBYA

Technologies Web. Ludovic Denoyer Sylvain Lamprier Mohamed Amine Baazizi Gabriella Contardo Narcisse Nya. Université Pierre et Marie Curie

Catalogue des Formations

LICENCE PROFESSIONNELLE SYSTEMES INFORMATIQUES & LOGICIELS

2.1 Liferay en un clin d'oeil Forces, faiblesses, opportunités et menaces Résumé de notre évaluation... 5

Devenez un véritable développeur web en 3 mois!

Module BD et sites WEB

Sage CRM. 7.2 Guide de Portail Client

Livre Blanc WebSphere Transcoding Publisher

Technologies du Web. Créer et héberger un site Web. Pierre Senellart. Page 1 / 26 Licence de droits d usage

Hébergement de sites Web

Qu'est-ce que le BPM?

Projet Java EE Approfondi

Développement des Systèmes d Information

webmestre : conception de sites et administration de serveurs web 42 crédits Certificat professionnel CP09

Architecture N-Tier. Ces données peuvent être saisies interactivement via l interface ou lues depuis un disque. Application

Architecture JEE. Objectifs attendus. Serveurs d applications JEE. Architectures JEE Normes JEE. Systèmes distribués

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique

Application web de gestion de comptes en banques

Types de REA produites dans le cadre de la séquence pédagogique

Magento. Magento. Réussir son site e-commerce. Réussir son site e-commerce BLANCHARD. Préface de Sébastien L e p e r s

Mise en œuvre des serveurs d application

Cours Plugin Eclipse. Université Paris VI / Parcours STL / Master I Pierre-Arnaud Marcelot - Iktek - pamarcelot@iktek.com

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

7 villa de la citadelle Né le 13 mai Arcueil Nationalité : Française. Développeur Web JEE COMPÉTENCES

UE 8 Systèmes d information de gestion Le programme

Annexe : La Programmation Informatique

1. Considérations sur le développement rapide d'application et les méthodes agiles

Documentation de conception

Bases de données et environnements distribués Chapitre I : Architecture logicielle technologies de developpement en environnement

Programmation Web. Madalina Croitoru IUT Montpellier

SOUTIEN INFORMATIQUE DEP 5229

CQP Développeur Nouvelles Technologies (DNT)

Logiciel Enterprise Guide Version 1.3 Windows

INGÉNIEUR - DÉVELOPPEUR EXPÉRIMENT É JAVA - J2EE. 27 ans - 5 ans d'expérience

Cursus Sage ERP X3 Outils & Développement. Le parcours pédagogique Sage ERP X3 Outils et Développement

Le stockage local de données en HTML5

PROSOP : un système de gestion de bases de données prosopographiques

Extensions, Documentation, Tutoriels, Astuces

Architectures en couches pour applications web Rappel : Architecture en couches

Situation présente et devis technique

Programme scientifique Majeure ARCHITECTURE DES SYSTEMES D INFORMATION. Mentions Ingénierie des Systèmes d Information Business Intelligence

INF 1250 INTRODUCTION AUX BASES DE DONNÉES. Guide d étude

Les nouvelles architectures des SI : Etat de l Art

INFORMATIQUE & WEB. PARCOURS CERTIFICAT PROFESSIONNEL Programmation de sites Web. 1 an 7 MODULES. Code du diplôme : CP09

A5.2.4 Étude d une technologie, d'un composant, d'un outil

Langage HTML (2 partie) <HyperText Markup Language> <tv>lt La Salle Avignon BTS IRIS</tv>

Ingénieur Développement Nouvelles Technologies

Service d'installation et de démarrage de la solution de stockage réseau HP StoreEasy 1000/3000

ManageEngine IT360 : Gestion de l'informatique de l'entreprise

Europa. Développement JEE 5. avec Eclipse. K a r i m D j a a f a r. A v e c l a c o n t r i b u t i o n d e O l i v i e r S a l v a t o r i

Méthode de Test. Pour WIKIROUTE. Rapport concernant les méthodes de tests à mettre en place pour assurer la fiabilité de notre projet annuel.

Joomla! Création et administration d'un site web - Version numérique

Sybase PowerAMC 16. Guide des nouvelles fonctionnalités générales. DOCUMENTATION

Notre Catalogue des Formations IT / 2015

Dans nos locaux au 98 Route de Sauve NÎMES. Un ordinateur PC par stagiaire, scanner, imprimante/copieur laser couleur

REQUEA. v PD 20 mars Mouvements d arrivée / départ de personnels Description produit

Apache Tomcat 6. Guide d'administration du serveur Java EE sous Windows et Linux. Résumé. Étienne LANGLET

Politique de Sage en matière de protection de la vie privée sur le site

Auteur LARDOUX Guillaume Contact Année 2014 DEVELOPPEMENT MOBILE AVEC CORDOVA

Application Web et J2EE

Le moteur de workflow JBPM

PHP 5.4 Développez un site web dynamique et interactif

THEME PROJET D ELABORATION D UNE BASE DE DONNEES SOUS LE SERVEUR MYSQL

Java c est quoi? Java. Java. Java : Principe de fonctionnement 31/01/ Vue générale 2 - Mon premier programme 3 - Types de Programme Java

Code Produit Nom Produit Dernière mise à jour. AM003 Alias Mobile On Demand Licence 1 mois 27/04/2015

XML, PMML, SOAP. Rapport. EPITA SCIA Promo janvier Julien Lemoine Alexandre Thibault Nicolas Wiest-Million

Installation et prise en main

Les Architectures Orientées Services (SOA)

Web Tier : déploiement de servlets

PRODIGE V3. Manuel utilisateurs. Consultation des métadonnées

Transcription:

Faculté des sciences de l'administration Systèmes d'information organisationnels Université Laval Automne 2003 Applications Web dynamiques SIO-21970 Professeur: Dzenan Ridjanovic Bureau: 2519 Téléphone: 656-2131, 4365 Courrier électronique: dzenan.ridjanovic@fsa.ulaval.ca Assistant : Allen Whittom Courrier électronique: allen.whittom.1@agora.ulaval.ca 1- Objectifs généraux acquérir les principes et concepts fondamentaux dans le domaine d'applications Web dynamiques; développer les connaissances intellectuelles et les habiletés nécessaires dans le domaine d'applications Web dynamiques; développer le goût et la capacité de continuer à parfaire ses connaissances dans le domaine d'applications Web dynamiques. 2- Objectifs spécifiques Bien que ce soient les applets qui lui aient valu sa notoriété initiale, Java a su évoluer et s'adapter aux besoins du monde des affaires, surtout au niveau des technologies Web mieux que tous les autres langages. En effet, de plus en plus d'entreprises utilisent des Java Server Pages (JSP) pour construire leurs applications de commerce électronique. Java s'intègre facilement à plusieurs langages existants et est peu coûteux si on le compare aux technologies équivalentes, puisque la communauté Java met à la disposition de tous les programmeurs ses codes sources dans la tradition de l'open source. Une compagnie open source, Apache, offre de puissants outils de développement de sites Web dynamiques, dont le serveur d'applications Web Tomcat, un contenant pour les JSP et les servlets qui peut également être utilisé comme serveur Web. Ces outils sont offerts tout à fait gratuitement et offrent une alternative fort intéressante aux programmeurs qui désirent développer une expertise recherchée à peu de frais. L'usage des bases de données en ligne dans la pratique du commerce électronique est aussi très répandu. En effet, les applications Web vont puiser et stocker des données sur les transactions et les clients dans des bases de données, ce qui rend une connaissance minimale de celles-ci absolument nécessaire pour quiconque voudrait gagner sa vie en développant des applications de commerce électronique. Le cours Applications Web dynamiques vise les objectifs spécifiques suivants:

créer des Java servlets; concevoir des pages JSP; partager des objets entre des pages JSP; manier les sessions d'utilisateur; utiliser un panier d'achat; valider les données; gérer la sécurité d'une application; concevoir une application Web utilisant le Modèle Vue Contrôleur (Model- View-Controller); rendre une application Web multilingue; développer des applications Web complexes en utilisant une architecture avancée; utiliser des tags personnalisés pour standardiser l'affichage d'une page. 3- Contenu du cours : Une architecture d'applications Web basée sur le architecture Modèle Vue Contrôleur est expliquée. La technologie JSP pour la génération de pages dynamiques est utilisée. Le partage d'objets Java entre plusieurs JSP dans le but de fournir une réponse à une requête d'utilisateur est expliqué. Les technologies JavaBeans et DbFramework sont utilisées pour accéder à une base de données, afficher et mettre à jour des données en utilisant des formulaires HTML dans des JSP. Une application Web est internationalisée. Il est montré comment sécuriser et personnaliser une application. Une technique avancée pour créer des applications Web dynamiques complexes est expliquée. Des tags personnalisés sont utilisés pour standardiser l'affichage des pages. 4- Cours préalable : SIO-21922 - Bases de données 5- Les approches pédagogiques : Apprendre une nouvelle technologie n'est pas chose facile. L'objectif est d'aider les étudiants à apprendre des concepts en informatique en suivant une approche pédagogique éprouvée. http://www.cs.uni.edu/~wallingf/patterns/elementary/ http://www-lifia.info.unlp.edu.ar/ppp/ L'atteinte des objectifs se fera par des exposés portant sur les concepts requis pour comprendre les logiciels, par des démonstrations des différents outils, par des exercices en classe (ordinateurs portatifs des étudiants), par des travaux individuels, et par un projet en équipe. Les travaux individuels doivent être remis au plus tard au début de la séance où ils sont dus; aucun retard ne sera toléré (dans ce cas, la note accordée est automatiquement de 0), sauf pour des raisons de maladie.

6- Matériel pédagogique Le site de référence du cours offre des présentations sur les sujets couverts à chaque semaine : http://drdb.fsa.ulaval.ca/sujets Sans être obligatoires, d'autres documents peuvent s'avérer intéressants : Hans Bergsten, JavaServer Pages, O'Reilly & Associates, 2000. http://www.oreilly.com/catalog/jserverpages/ Marty Hall, Core Servlets and JavaServer Pages, Prentice Hall, 2000. http://www.coreservlets.com/ Jason Hunter with William Crawford, Java Servlet Programming, 2nd Edition, O'Reilly & Associates, 2001. http://www.oreilly.com/catalog/jservlet2/ 7- Le déroulement du cours : Contenu des séances de cours (semaines 1-15) 1. Introduction, Eclipse, DbFramework 2. Servlets 3. Architecture MVC (Modèle Vue Contrôleur) 4. JSTL 5. Tags personnalisés 6. Projet Commons de Jakarta et drdb 7. Validation de formulaires HTML (Validator du projet Commons) 8. XML 9. Semaine de lecture 10. Sécurité de Tomcat 11. Framework de sécurité 12. Cookies et panier d achats 13. JavaMail, Internationalisation 14. Tiles 15. CSS 1. Introduction Le syllabus du cours est expliqué. Le site Web du cours ainsi que le site Web des sujets couverts dans celui-ci sont visités. Les technologies utilisées dans le cours sont introduites. http://drdb.fsa.ulaval.ca/cours/ http://drdb.fsa.ulaval/sujets/

Eclipse est un environnement de modélisation et de développement générique, ouvert et extensible. L'environnement de développement Java, qui n'est qu'un ensemble de modules d'extension (appelé JDT pour Java Development Tooling), offre un éditeur spécialisé, une compilation incrémentale, un débogueur et différents services tels que le code completion, des code templates et le refactoring. Ce qui distingue Eclipse des autres IDE est l'extensibilité de son environnement. Eclipse a été conçu de manière à pouvoir facilement étendre ses fonctions à l'aide de modules d'extension tout en conservant une interface graphique cohérente. http://www.eclipse.org http://drdb.fsa.ulaval.ca/sujets/boisvertalain/html/bk03.html http://eclipse-plugins.2y.net/eclipse/index.jsp http://www.objectlearn.com/index.html DbFramework est un framework maison développé par Dzenan Ridjanovic et Vincent Dussault pour faciliter l'interaction avec une base de données dans une application Web ou logicielle. Il est indépendant du mécanisme de persistance utilisé. On parle de mécanisme de persistance pour décrire le système que l'on utilise pour sauvegarder les données de l'application après la fermeture de celleci. Il s'agit généralement d'une base de données relationnelle mais il est également possible d'utiliser une base de données objet, un chiffrier électronique, un fichier texte, un fichier XML, etc. http://drdb.fsa.ulaval.ca/sujets/dbfw/index.html 2. Servlets Les servlets sont des classes Java qui reçoivent et traitent les requêtes transmises par le client au serveur. Dans le cadre de ce cours, on s'intéressera aux servlets en tant que contrôleurs. http://www.commentcamarche.net/servlets/servintro.php3 http://java.sun.com/products/servlet/ http://drdb.fsa.ulaval.ca/sujets/servlets/index.html 3. Architecture MVC (Modèle Vue Contrôleur) Une architecture utilisant le Modèle Vue Contrôleur (MVC) divise les différents éléments qui composent une application Web. Le modèle constitue les données manipulées (les JavaBeans les encapsulent), la vue constitue le médium utilisé pour présenter les données à l'utilisateur (des pages JSP) et le contrôleur (un servlet ou une page JSP sans code HTML) s'occupe de diriger le trafic au sein de l'application. http://www.cs.indiana.edu/~cbaray/projects/mvc.html http://drdb.fsa.ulaval.ca/sujets/mvc/index.html http://www.application-servers.com/articles/pdf/opensourcejava-tomcat.pdf

4. JavaServer Pages Standard Tag Library (JSTL) Il est possible d évacuer le code Java d une page JSP en concevant ou en utilisant des tags personnalisés. Lorsque le serveur d application lit ces tags, il va exécuter le code Java correspondant. C est là une des principales forces des JSP. Cependant, jusqu à tout dernièrement, aucun effort de standardisation n avait été fait pour définir des tags JSP. C est maintenant chose faite grâce à un effort commun de Sun Microsystems et du groupe Apache Jakarta, le projet JSTL (Java Standard Tag Library). Cette séance vise à démontrer comment utiliser les tags du projet JSTL. http://java.sun.com/products/jsp/jstl/ http://jakarta.apache.org/taglibs/doc/standard-doc/intro.html http://jakarta.apache.org/taglibs/doc/standard-doc/standard/index.html http://www.onjava.com/pub/a/onjava/2002/08/14/jstl1.html http://www.onjava.com/pub/a/onjava/2002/09/11/jstl2.html http://www.onjava.com/pub/a/onjava/2002/10/30/jstl3.html 5. Tags personnalisés Il est possible d évacuer le code Java d une page JSP en concevant ou en utilisant des tags personnalisés. Lorsque le serveur d application lit ces tags, il va exécuter le code Java correspondant. C est là une des principales forces des JSP. Cette séance vise à démontrer comment réaliser des tags personnalisés. http://developer.java.sun.com/developer/technicalarticles/xml/webappdev3/ http://drdb.fsa.ulaval.ca/sujets/customtags/index.html 6. Projet Commons de Jakarta et drdb Commons est un sous projet de Jakarta concentré sur tous les aspects des composants réutilisables de Java. Plusieurs des applications Web développées dans le cadre des cours de M. Ridjanovic utilisent des technologies communes développées par M. Ridjanovic et Vincent Dussault. Ces diverses technologies sont regroupées dans un sous projet intitulé drdb (inspiré du projet Commons du groupe Jakarta). Ces projets se veulent d'ailleurs un complément, dans bien des cas, aux projets Commons de Jakarta. Plutôt que de reproduire ce qui existe déjà, les projets drdb leur ajoutent des fonctionnalités. Les sous projets jugés pertinents seront d'ailleurs proposés au groupe Jakarta. http://jakarta.apache.org/commons/index.html http://drdb.fsa.ulaval.ca/sujets/commons/index.html 7. Validation de formulaires HTML (Validator du projet Commons) Le sous projet Validator fait partie du projet Commons développé par le groupe Apache. Il vise à automatiser la validation côté serveur et la validation côté client dans une seule et même opération.

http://jakarta.apache.org/commons/validator/index.html http://jakarta.apache.org/commons/validator/apidocs/index.html 8. XML XML est un langage de balisage servant à décrire la structure et le contenu des documents. Un document XML est balisé uniquement en fonction de son contenu intrinsèque et indépendamment de sa restitution future. Le choix de XML repose d'abord sur le fait que ce langage est normalisé (de facto) par un consortium international (http://www.w3.org/) et qu'il assure une interopérabilité et une pérennité sans commune mesure par rapport aux formats propriétaires des traitements de textes. http://www.commentcamarche.net/xml/xmlintro.php3 http://drdb.fsa.ulaval.ca/sujets/xml/index.html http://www.xml.com/ http://cafeconleche.org/books/xmljava/ http://www.w3schools.com/xml/default.asp http://www.jdom.org/ 9. Semaine de lecture 10. Sécurité de Tomcat Chaque serveur d application a son propre mécanisme de sécurité. Tomcat soutient container managed security, en se reliant à une base de données existante des noms, des mots de passe, et des rôles des utilisateurs. http://jakarta.apache.org/tomcat/tomcat-5.0-doc/realm-howto.html http://www.orbeon.com/oxf/doc/tutorial-authentication http://www.onjava.com/lpt/a/1024 11. Framework de sécurité Chaque serveur d application ayant son propre mécanisme de sécurité, une application Web perd de la portabilité si elle n offre pas une solution indépendante de gestion de la sécurité. Une telle solution est présentée cette semaine, à base de rôles, utilisateurs, de groupes et de permissions. Elle repose sur l utilisation d un fichier de configuration XML. http://drdb.fsa.ulaval.ca/sujets/security/index.html 12. Cookies et panier d achats Beaucoup utilisés dans les sites Web, les possibilités, les limites et les dangers des cookies sont peu connus. Une présentation d une application Web de panier

d achat permet de montrer comment peuvent cohabiter les objets de session et les cookies dans un site de commerce électronique muni d un panier d achats. http://drdb.fsa.ulaval.ca/panierachats/index.html 13. JavaMail JavaMail est la technologie Java permettant d envoyer et de recevoir des courriels. On montre comment utiliser JavaMail pour envoyer des courriels automatisés dans une application Web. http://drdb.fsa.ulaval.ca/sujets/javamail/index.html http://jakarta.apache.org/taglibs/doc/mailer-doc/intro.html Internationalisation (I18n) Java offre la possibilité de rendre des applications Web multilingues facilement. Ainsi, selon ses préférences, un utilisateur peut afficher le contenu d'une page JSP en plusieurs langues. http://drdb.fsa.ulaval.ca/sujets/i18n/index.html http://java.sun.com/docs/books/tutorial/i18n/ http://www.joconner.com/javai18n/ 14. Tiles Les Tiles sont une bibliothèque de tags développée par le groupe Apache pour intégrer des concepts orientés objet à des pages JSP. En effet, le code HTML dans une page JSP est difficilement réutilisable en temps normal. http://www.lifl.fr/~dumoulin/tiles/ http://www.theserverside.com/resources/article.jsp?l=tiles101 http://www.onjava.com/pub/a/onjava/excerpt/progjakstruts_14/index4.html 15. CSS Les CSS (Cascaded Style Sheet) permettent d évacuer une grande partie du code HTML de présentation dans une page HTML. Utilisées conjointement avec les Tiles, on obtient une solution flexible pour la partie Vue de l architecture MVC. http://www.commentcamarche.net/css/cssintro.php3 http://www.w3schools.com/css/default.asp http://www.htmlhelp.com/ 8- Les méthodes d évaluation : Travaux individuels (3) 60 %

Projet en équipe de deux 40 % TP1: Développer une petite application Web en utilisant l architecture MVC, DbFramework, et des tags JSTL. (Semaine 6, 30%) Avec un tag personnalisé et une description du travail un bonus de 5%. TP2: Intégrer l utilisation de Validator et File Upload au TP1. Faire en sorte que la modification et la suppression des données ne soient possibles qu aux visiteurs ayant le rôle administrateur (utiliser le framework de sécurité). Par conséquent, il faudra que la page d accueil permette à l utilisateur d entrer son login et son mot de passe pour s identifier. Si un utilisateur visite une page sans s être authentifié dans la session, il doit être redirigé vers la page d accueil. (Semaine 11, 15%) TP3: Intégrer l internationalisation au panier d achats et envoyer un email contenant les informations sur sa commande (produits, prix et quantité) au visiteur. (Semaine 14, 15%) Projet en équipe de deux: Développer une application Web en utilisant MySQL, DbFramework, l architecture MVC, JSTL, Validator, le framework de sécurité, JavaMail, Internationalisation, File Upload, Tiles, et CSS. (Semaine 16, 40%)