SIO-65291 Page 1 de 5 1- Objectifs généraux Applications Web dynamiques Prof. : Dzenan Ridjanovic Assistant : Vincent Dussault 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 présent cours offre à l'étudiant l'occasion de se familiariser aux JSP et servlets en utilisant SQL et JDBC pour interagir avec des bases de données. 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; gérer la sécurité d'une application; concevoir une application Web utilisant le Model-View-Controller; rendre une application Web multilingue.
SIO-65291 Page 2 de 5 3- Contenu du cours : Une architecture d'applications Web basée sur le HTTP et les Java Servlets est expliquée. La technologie JSP pour la génération de pages dynamiques est introduite. Le partage d'objets Java entre plusieurs JSP dans le but de fournir une réponse à une requête d'utilisateur est expliquée. Les technologies JavaBeans et JDBC 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. Le mécanisme des JSP pour manier les erreurs est montré, en même temps que les différentes techniques de "déboguage". 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 utiliser pour standardiser l'affichage des pages. 4- Cours préalable : SIO-65290 - 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 livre obligatoire pour ce cours est disponible gratuitement en version électronique (PDF) à l'adresse suivante : http://pdf.coreservlets.com Outre ce document, le site de référence du cours offre des présentations sur les sujets couverts à chaque semaine : http://drdb.fsa.ulaval.ca/sujets Mentionnons qu'il est possible, et non obligatoire, d'acquérir une version papier du manuel de référence en version française sur le site de Camelot Info : http://www.camelot.ca 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/
SIO-65291 Page 3 de 5 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-7) 1. Introduction, logiciels, Servlets, JSP 2. Formulaires HTML, requêtes et réponses 3. JavaBeans 4. Gestion de sessions 5. Panier d'achats 6. MVC, JavaBeans (M), JSP (V), Servlet (C) 7. Internationalisation 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.ca/sujets/ Logiciels Retour rapide sur les deux logiciels qui seront utilisés dans ce cours, Apache Tomcat et Borland JBuilder. Tomcat : http://drdb.fsa.ulaval.ca/sujets/tomcat/index.html JBuilder : http://www.borland.com/jbuilder/personal/download/jb5personal_steps.html Chapitre 1 : tout (seulement Tomcat pour 1.5) [16 pages] 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 à deux caractéristiques des servlets, à savoir la génération de texte et la redirection de requêtes HTTP. Chapitre 2 : Introduction, 2.1 à 2.6 [20 pages] JSP
SIO-65291 Page 4 de 5 Les JSP sont en fait des interfaces plus conviviales pour développer des servlets. Effectivement, une page JSP est convertie en servlet par le serveur d'application lors de la première visite sur cette page. Un rapide survol de la syntaxe des JSP est effectué. Chapitre 10 : Tout Chapitre 11 : Introduction, 11.1, 11.7, 11.12 Chapitre 12 : Introduction, 12.1, 12.2 [16 pages] [3 pages] [4 pages] 2. Formulaires HTML, requêtes et réponses Les formulaires HTML constituent la façon pour l'utilisateur d'interagir avec une application Web. Dans un premier temps, une présentation des diverses composantes d'un formulaire est effectuée. Ensuite, une démonstration est effectuée sur la façon de récupérer et manier ces informations. Chapitre 16 : Introduction, 16.1 à 16.11 Chapitre 3 : tout [40 pages] [28 pages] 3. JavaBeans Les JavaBeans sont des outils puissants qui ajoutent un support aux applications Web en encapsulant diverses informations. On peut s'en servir pour garder en mémoire les données d'un formulaire. Ils s'avèrent d'ailleurs fort utiles pour valider les données entrées par l'utilisateur. Chapitre 13 : tout [24 pages] 4. Gestion des sessions Un système de login/mot de passe permet non seulement de sécuriser une application Web, mais également de personnaliser le contenu qui est présenté à l'utilisateur. Quatre mécanismes sont présentés pour gérer les sessions d'utilisateur, soient les cookies, la modification d'url, les variables de session ainsi que les champs de formulaires cachés. Lectures : Chapitre 8 : Introduction, 8.1 à 8.5 Chapitre 9 : Introduction, 9.1 à 9.3 [14 pages] [12 pages] 5. Panier d'achats Il est difficile de parler d'applications de commerce électronique sans toucher aux paniers d'achats. Un système de panier d'achat combinant les éléments présentés précédemment et utilisant une base de données (la technologie JDBC) est étudié.
SIO-65291 Page 5 de 5 6. MVC : JavaBeans (M), JSP (V), Servlet (C) Une architecture utilisant le Model-View-Controller (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) s'occupe de diriger le traffic au sein de l'application. L'architecture MVC est appliquée au panier d'achats étudié à la semaine 5. 7. Internationalisation 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. Une version multilingue du panier d'achats est présentée. JavaMail JavaMail est une API fort simple à implanter qui permet d'envoyer des courriels depuis une application Web dynamique. Un système de confirmation de réception de commande par courriel est greffé au panier d'achat. 8- Les méthodes d évaluation : Travaux individuels (2) 40 % Projet en groupe (2-3 ét.) 60 % TP1 : Reproduire un formulaire HTML qui envoie ses données via la méthode POST à un servlet invoqué par mapping. Ce servlet doit rediriger la requête vers une page JSP récupérant les données du formulaire et utilisant un JavaBean pour encapsuler ces informations. (semaine 4, 20%) TP2 : Reproduire un panier d'achats similaire à celui présenté à la semaine 5 (semaine 6, 20%) Projet : Construire une application Web fonctionnelle utilisant l'architecture MVC. Deux choix sont offerts aux équipes. Elles peuvent : a) Utiliser un panier d'achats b) Utiliser un système de gestion de compte (login/mot de passe). (semaine 8, 60%)