Programmation web & mobile d applications géomatiques SCG-67216 Technologies pour réaliser des applications géospatiales communicantes Architectures Web, J2EE et Servlets Thierry Badard & Frédéric Hubert Université Laval, Dép. des sciences géomatiques Québec, Canada {Thierry.Badard; Frederic.Hubert}@scg.ulaval.ca Cours donné le 12 janvier 2009
Note préliminaire. Pour rappel, ce cours se place dans le cheminement de vos études, après les cours : SCG-67210 Cadres de développement logiciel en géomatique SCG-66408 Publication avancée de données spatiales dans Internet Vous êtes donc fortement incités à vous reporter aux supports fournis dans le cadre de ces deux cours, afin de réviser certaines notions qui y ont été présentées mais qui ne seront pas ré-explicitées ici. L ensemble des supports de cours et énoncés de laboratoire est disponible sur : http://geosoa.scg.ulaval.ca, section Enseignement.
Plan du cours (1/2).
Plan du cours (2/2).
Rappels : Architectures distribuées (1/2).
Rappels : Architectures distribuées (2/2).
Rappels : Fonction de présentation.
Rappels : Fonction applicative.
Rappels : Fonction de stockage.
Architecture 3 tiers. Ce sont les architectures les plus classiques! Source: http://rangiroa.essi.fr/cours/internet/02-ntiers-architecture.pdf
Architectures web ou 4-tiers. Source: http://rangiroa.essi.fr/cours/internet/02-ntiers-architecture.pdf
Le tiers web Rôle. reçoit les requêtes HTTP des clients et renvoie les réponses permet la séparation entre présentation (spécifique au client) et «logique métier», génère du contenu dynamiquement, transforme des requêtes HTTP dans un format compris par l application, contient la logique du flot de présentation, identifie la session de l utilisateur, supporte plusieurs types de clients.
Le tiers web Architecture. Source: http://rangiroa.essi.fr/cours/internet/02-ntiers-architecture.pdf
Motivations pour serveurs d application (1/6).
Motivations pour serveurs d application (2/6).
Motivations pour serveurs d application (3/6).
Motivations pour serveurs d application (4/6).
Motivations pour serveurs d application (5/6).
Motivations pour serveurs d application (6/6).
Programmation par composants (1/4).
Programmation par composants (2/4).
Programmation par composants (3/4).
Programmation par composants (4/4).
Architecture à base de composants.
Composants (1/2).
Composants (2/2).
Conteneur.
Structures d accueil.
Plan du cours Avancement.
Les composants Web.
Les servlets (1/2).
Les servlets (2/2).
Les JSP Java Server Pages (1/4).
Les JSP Java Server Pages (2/4).
Les JSP Java Server Pages (3/4).
Les JSP Java Server Pages (4/4).
Conteneurs de composants Web (1/2).
Conteneurs de composants Web (2/2).
Topologie d une application J2EE.
Application n-tiers.
Client autonome.
Client autonome «EJB centric».
Application Web.
Détails de l application Web.
Technologies J2EE (1/2).
Technologies J2EE (2/2).
Le tiers Web dans J2EE.
Topologies du tiers Web (1/3).
Topologies du tiers Web (2/3).
Topologies du tiers Web (3/3).
Rôles du serveur Web.
Fonctions du serveur Web (1/3).
Fonctions du serveur Web (2/3). * (*) ou POST
Fonctions du serveur Web (3/3).
Technologies utilisées sur le Web.
Technologies «traditionnelles» (1/2). * (*) plus une charge serveur importante (chaque requête s exécute dans un processus différent) et ouvre la porte à de sérieuses failles de sécurité potentielles (contrôle du code très important et pointu)
Technologies «traditionnelles» (2/2).
Technologies Web pour J2EE (1/3).
Technologies Web pour J2EE (2/3).
Technologies Web pour J2EE (3/3).
Ce que l on va voir dans ce qui suit...
Servlets : Qu est ce que c est? (1/2)
Servlets : Qu est ce que c est? (2/2)
Servlet : À quoi cela sert?
Servlets : Comment ca marche?.
Architecture Web : Principe.
Architecture Servlets.
API Servlet.
Les classes de l API (1/2).
Les classes de l API (2/2).
La classe GenericServlet.
Structure de base d une servlet.
Communiquer avec le client.
Développer des HttpServlet.
La méthode service() de HttpServlet.
Méthodes de HttpServlet.
Squelette d une HttpServlet.
Structure de base.
Lire la requête du client.
Les méthodes de HttpServletRequest (1/2).
Les méthodes de HttpServletRequest (2/2).
Répondre au client.
Les méthodes de HttpServletResponse (1/2).
Les méthodes de HttpServletResponse (2/2).
Un exemple simple...
Un exemple simple...
Un autre exemple...
Un autre exemple...
Plan Avancement du cours.
Méthodes du cycle de vie.
Les méthodes du cycle de vie (1/3).
Les méthodes du cycle de vie (2/3).
Les méthodes du cycle de vie (3/3).
Gestion des servlets par le moteur.
Servlets et concurrence.
Implémenter SingleThreadModel.
Plan Avancement du cours.
Les formulaires HTML.
Rappel : Les balises de formulaire.
Envoyer les données du formulaire.
Exemple de formulaire.
Les méthodes GET et POST.
Lire les données dans une servlet (1/2).
Lire les données dans une servlet (2/2).
Plan Avancement du cours.
HTTP : protocole sans états.
Introduction : La gestion des états.
Qu est ce qu un cookie?
Anatomie d un cookie.
Où les cookies sont ils stockés? (NT4) dans C:\Documents and Settings\username \Cookies sous Windows 2000, 2003 et XP.
Cookie et sécurité?
Utiliser des cookies.
Méthodes de Cookie (1/2).
Méthodes de Cookie (2/2).
Envoi des cookies.
Lecture des cookies (1/2).
Lecture des cookies (2/2).
Les sessions.
Techniques de mémorisation.
Réécriture d URL (1/2).
Réécriture d URL (2/2).
Champs de formulaire cachés.
L interface HttpSession.
Identification des sessions (1/3).
Identification des sessions (2/3).
Identification des sessions (3/3).
Utiliser HttpSession.
Obtenir l objet de session.
Mémoriser et extraire les données (1/2).
Mémoriser et extraire les données (2/2).
Autres méthodes de HttpSession (1/2).
Autres méthodes de HttpSession (2/2).
Utiliser HttpSession sans cookies.
Réécriture d URL.
Conclusion. Rappels / Synthèse Notions d architectures distribuées et de serveurs d application Notions de programmation par composant Quelques éléments sur l architecture J2EE Un des deux composants Web de J2EE : Servlet! Cycle de vie d une Servlet Traitement de formulaires, cookie et sessions Le prochain cours Technologies pour réaliser des applications géospatiales communicantes «JSP et JavaBeans»