J2eeintro

1 268 vues

Publié le

0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
1 268
Sur SlideShare
0
Issues des intégrations
0
Intégrations
3
Actions
Partages
0
Téléchargements
72
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

J2eeintro

  1. 1. Java pour le développement d’applications Web : J2EE Version Septembre 2006 Mickaël BARON - 2006 (mailto:baron.mickael@gmail.com)
  2. 2. Java pour le développement d’applications Web : J2EE Introduction générale Mickaël BARON - 2006 (mailto:baron.mickael@gmail.com)
  3. 3. Le coursLobjectif de ce cours Initiation à la conception dapplications WEB de « qualité » Architecture logicielle Intérêt spécifique à la partie présentation des applications WEBStructuration rapide du cours Introduction aux technologies WEB et rappels Technologies des Servlets, JSP Programmation par balises : balises personnalisées JSP version 2.0 Framework : Struts Java Server Faces (JSF) Cours J2EE - M. Baron - Page 3
  4. 4. Le cours Explosion du nombre deformation concernant J2EE (Servlets, JSP, …) Cours J2EE - M. Baron - Page 4
  5. 5. Déroulement du coursPédagogie du cours Présentation des concepts Illustration avec de nombreux exemples Des bulles d’aide tout au long du cours : Ceci est une alerte Ceci est une astucePré-requis Connaissance de Java Connaissance des technologies WEB (HTML, HTTP)Mise en place du cours Livres : Servlets Java Guide du programmeur 2ème édition - Jason Hunter et William Crawfort - OReilly et JavaServer Pages - Hans Bergsten - OReilly Internet : www.developpez.com, ... Cours J2EE - M. Baron - Page 5
  6. 6. BibliothèqueServlets Java : Guide du programmeur Auteur : Jason Hunter et William Crawfort Éditeur : OReilly Edition : SE avril 2001 - 715 pages - ISBN : 2841771962JavaServer Pages Auteur : Hans Bergsten Éditeur : OReilly Edition : 2001 - 528 pages - ISBN : 2841771458J2EE Développement dapplication Web Auteur : Benjamin Aumaille Éditeur : ENI Edition : avril 2002 - ISBN : 2746016567 Cours J2EE - M. Baron - Page 6
  7. 7. Organisation du cours...Partie 1 : Introduction aux technologies WEBPartie 2 : ServletsPartie 3 : Configuration et installation d’un serveurd’applicationPartie 4 : JSPPartie 5 : Balises personnaliséesPartie 6 : JSP 2.0Partie 8 : StrutsPartie 7 : Java Server Faces Cours J2EE - M. Baron - Page 7
  8. 8. Organisation du cours...Partie 1 : Introduction aux technologies WEB Protocole HTTP Architectures WEB Technologie J2EEPartie 2 : Servlets Servlets et API Traitement des données de formulaires Architecture de développement Cycle de vie Suivi de session Collaboration de Servlets Sécurité : authentification Accès aux BD avec JDBC Cours J2EE - M. Baron - Page 8
  9. 9. Organisation du cours...Partie 3 : Configuration et installation d’un serveur d’application Installation et configuration du serveur d’application Jakarta Tomcat Déploiement des applications WEBPartie 4 : JSP JSP et définition Tag (directive, commentaire, déclaration, scriplet, expression) Objets implicites, cycle de vie et technique de gestion des erreurs Java Beans Collaboration de JSP/Servlets et vers une architecture MVC...Partie 5 : Balises personnalisées Définition Conception Déploiement Cours J2EE - M. Baron - Page 9
  10. 10. Organisation du cours...Partie 6 : JSP 2.0 Balises personnalisées (2.0) Expression Language (EL) Java Standard Tag Libraries (JSTL)Partie 8 : Struts Principe du framework Éléments de base : struts-config.xml, ActionForm et Action Éléments complémentaire : DynaActionForm et plug-in Validator Balises personnalisées : Localisation et …Partie 7 : Java Server Faces Bean Managé Navigation Validators, Converters Tomahawk, … Cours J2EE - M. Baron - Page 10
  11. 11. Java pour le développement d’applications Web : J2EE Introduction aux technologies WEB Mickaël BARON - 2006 (mailto:baron.mickael@gmail.com)
  12. 12. Architectures WEB : applications monolithiquesCaractéristiques Applications mêlant la partie présentation, règles métier et les données Ne communique pas avec l’extérieur Terminaux passifsAvantages Performance On parle de logique métier ou de règles métier relative aux fonctionnalités de Sécurité l’application (Banque : calcul des intérêts d’un compte)Inconvénients Maintenance logicielle Ouverture vers d’autres systèmes Technologies réseaux propriétaires Cours J2EE - M. Baron - Page 12
  13. 13. Architectures WEB : applications à deux niveauxCaractéristiques Généralement appelées architecture client/serveur Un SGBD pour les données et une application pour l’interface et le contrôle Seules les données transitent par le réseau Exemples de technologie : Java/Swing avec SGBD mySQLAvantages Réparties la puissance machine sur les clients Mise en œuvre du modèle de bases de données relationnelles Intégration inter-systèmes au niveau des données possiblesInconvénients Déploiement La logique métier est répartie sur les deux composantes Maintenance gestion des versions Cours J2EE - M. Baron - Page 13
  14. 14. Architectures WEB : architectures multi-tiers (couches) Caractéristiques Au moins trois niveaux : les interfaces, les règles métiers et la persistance Des normes de communication entre eux Exemples de technologie : php/mySQL (3 niveaux au plus), J2EE (Java 2 Entreprise Edition) Technologies : Technologies : Technologies : Technologies : JSP / Servlets JavaBean, EJB JDBC, JMS SGBDR, SGBDO Navigateur Présentation Logique métier Middleware Persistance Avantages Maintenance Nécessite peu de puissance client voire aucune en cas de clients légers Inconvénients Serveur puissant pour la logique métier Cours J2EE - M. Baron - Page 14
  15. 15. Différents types d’application : client …Définition de « client » Logiciel médiateur entre l’utilisateur et le service Exemples : FTP, messages électroniques (mailer), navigateur (browser), webmail, jeux, …Différentes catégories de client Lourd : le service est disponible sur le poste client avec possibilité de connexion à des serveurs (appelée aussi application à architecture client/serveur) Exemples : Yahoo Messenger, Word, Money, Battlefield 2, … Léger : tout le service est disponible sur des serveurs et l’utilisateur y accède par un conteneur spécialisé (appelée aussi application à architecture multi-tiers) Exemples : Google, Yahoo Mail, … Cours J2EE - M. Baron - Page 15
  16. 16. Différents types d’application : client lourdTechnologies : Java/Swing, C#/.NET, Tcl/Tk, C++/QTAvantages Interfaces utilisateurs riches (WIMP, POST-WIMP)Inconvénients Déploiement (utilisation de CD, téléchargement/installation) Gestion des versions (patch, problème de compatibilité) Interfaces riches (possibilité de dessiner dans un canvas, notion hiérarchique de composants, …) Interactions évoluées (Drag&Drop, popup menu, …) Cours J2EE - M. Baron - Page 16
  17. 17. Différents types d’application : client légerApplication à architecture dite « multi-tiers » de trois à n-niveauxLes technologies pour la génération et le traitement de laprésentation sont présentes à la fois dans le client mais aussi dansle serveurTechnologies côté client HTML, DHTML, JavaScript, …Technologies côté serveur PHP, ASP, JSP, …Avantages Maintenance AccessibilitéInconvénients Interfaces utilisateurs pauvres et proches du classique formulaires Cours J2EE - M. Baron - Page 17
  18. 18. Client léger : Internet et HTTPLes clients légers désignent essentiellement toutes les applicationsassociées aux sites WebL’accès aux services se fait par l’intermédiaire d’un conteneurspécialisé qui est généralement un navigateur FireFox, Internet ExplorerLes technologies pour le transport entre le serveur et le client sont Internet HTTP, HTTPSLes sites Web actuels se caractérisent par le fameux mode pagepar page A chaque requête de l’utilisateur (demande) le serveur génère une nouvelle présentation L’affichage n’est pas continu Cours J2EE - M. Baron - Page 18
  19. 19. Client léger : l’Internet à l’origineA l’origine Internet a vocation de diffuser de l’information statique HTTP (déconnecté) HTML (langage de description de document)Déploiement Universel (protocoles standards et réseau standard) Un navigateur suffitPas prévu pour embarquer desapplications Afficher des données en temps réel Le premier navigateur pour Internet : Mosaic Cours J2EE - M. Baron - Page 19
  20. 20. Client léger : Internet et HTTPApplication Web et page par page On assiste actuellement à l’émergence Mode page par page à chaque de nouvelles technologies permettant requête un réaffichage permanent d’éviter le mode page par page introduit de la présentation par HTTP et Internet Cours J2EE - M. Baron - Page 20
  21. 21. Protocole HTTPHyper Text Transfer Protocol v1.1Protocole Client/Serveur sans état Impossibilité de conserver des informations issu du clientLa conversation HTTP est initialisée lorsque l’URL est saisiedans le navigateur 1 - le client ouvre la connexion avec le serveur 2 - le client émet une requête HTTP 3 - le serveur répond au client 4 - la connexion est fermée Serveur Web Client WEB Cours J2EE - M. Baron - Page 21
  22. 22. Protocole HTTP : requête Requête envoyée par le client (navigateur) au serveur WWWLe type de méthode Document demandé. Protocole HTTPde la requête GET, Fichier HTML, une avec la version : 1.0 POST, ... image, ... ou 1.1 <Méthode> <URI> HTTP/<Version> La ligne blanche est [<Champ d’en-tête>:<Valeur>] obligatoire ... Ligne blanche [corps de la requête pour la méthode Post] Différentes informations concernant le navigateur, Le corps de la requête uniquement si la méthode l’utilisateur, ... est de type POST. Sont fournis les valeurs des paramètres envoyées par un formulaire Cours J2EE - M. Baron - Page 22
  23. 23. Protocole HTTP : en-têtes de requêteCorrespond aux formats de documents et aux paramètres pour leserveur Accept = type MIME visualisable par le client (text/html, text/plain, …) Accept-Encoding = méthodes de codage acceptées (compress, x-gzip, x-zip) Accept-Charset = jeu de caractères préféré du client Accept-Language = liste de langues (fr, en, de, …) Authorization = type d’autorisation BASIC nom:mot de passe (en base64) Transmis en clair, facile à décrypter Nous reviendrons sur l’en-tête Cookie = cookie retourné authorization dans la partie From = adresse email de l’utilisateur suivante au niveau de la sécurité ... Cours J2EE - M. Baron - Page 23
  24. 24. Protocole HTTP : type de méthodes Lorsqu’un client se connecte à un serveur et envoie une requête, cette requête peut-être de plusieurs types, appelés méthodes Requête de type GET Pour extraire des informations (document, graphique, …) Intègre les données de formatage à l’URL (chaîne d’interrogation) www.exemple.com/hello?key1=titi&key2=raoul&… Requête de type POST Pour poster des informations secrètes, des données graphiques, … Transmis dans le corps de la requête<Méthode> <URI> HTTP/<Version>[<Champ d’en-tête>:<Valeur>]...Ligne blanche[corps de la requête pour la méthode Post] Cours J2EE - M. Baron - Page 24
  25. 25. Protocole HTTP : réponse Réponse envoyée par le serveur WWW au client (navigateur) Protocole HTTP Status des réponses HTTP. Donne des avec la version : 1.0 Liées à une erreur ou à une informations sur le ou 1.1 réussite : 200 status : OK HTTP/<Version><Status><Commentaire Status> Content-Type:<Type MIME du contenu> [<Champ d’en-tête>:<Valeur>] ... La ligne blanche est Ligne blanche obligatoire Document Type de contenu qui sera retourné : text/html, Le document peut contenir Différentes informationstext/plain, application/octet- du texte non formaté, du concernant le serveur, ... stream code HTML, ... Cours J2EE - M. Baron - Page 25
  26. 26. Protocole HTTP : en-têtes de réponseCorrespond aux informations concernant le serveur WWW Accept-Range = accepte ou refus d’une requête par intervalle Age = ancienneté du document en secondes Set-Cookie = créé ou modifie un cookie sur le client WWW-Authenticate = système d’authentification. Utiliser en couple avec l’en-tête requête Authorization Nous reviendrons sur l’en-tête ... WWW-Authenticate dans la partie suivante au niveau de la sécurité Cours J2EE - M. Baron - Page 26
  27. 27. Protocole HTTP : status des réponsesRéponse donnée du serveur au client <Status><Commentaire> 100-199 : Informationnel 100 : Continue (le client peut envoyer la suite de la requête), … 200-299 : Succès de la requête client 200 : OK, 204 : No Content (pas de nouveau corps de réponse) 300-399 : Re-direction de la requête client 301 : Redirection, 302 : Moved Temporarily 400-499 : Erreur client 401 : Unauthorized, 404 : Not Found (ressource n’a pas été trouvée) 500-599 : Erreur serveur 503 : Service Unavailable (serveur est temporairement indisponible) Cours J2EE - M. Baron - Page 27
  28. 28. Client léger : principe générale La réponse contient Code de technologies côté des requêtes d’accès serveur (généralement une seule Réponse HTTP aux fichiers sources technologie par application) Requête HTTP JSP HTML Conteneur de Servlet Client WEB ASP Serveur Web Serveur PHPLe client traite le PHP code HTML et … La réponse contient celui des autres généralement du code technologies Moteur(s) qui HTML et du code de différentes technologies transforme(nt) le code des traité par le client technologies en HTML Cours J2EE - M. Baron - Page 28
  29. 29. Client léger : technologies côté serveurLes technologies côté serveur permettent à l’aide de langagesspécialisés de générer plus ou moins du code HTMLNous distinguons deux types de langages Langages à balises : ceux qui sont utilisés directement dans le code HTML PHP, ASP, JSP et .NET Langages de contrôle : ceux qui ne contiennent que du code propre au langage et qui généralement s’occupe du contrôle de l’application CGI et ServletLes langages de contrôles sont plutôt adaptés au traitement defonctionnalités (sécurité, base de données, …) et délèguent lapartie présentation aux langages à balisesIl n’est pas rare de trouver des applications uniquement avec deslangages à balises mais la compréhension du code en devient alorsdifficile (absence d’architecture) Cours J2EE - M. Baron - Page 29
  30. 30. Client léger : technologies côté serveurParmi les deux types de langage on distingue deux types desémantique Langages « procéduraux » : la portée des variables est limitée et l’absence de persistance oblige à bidouiller pour maintenir la valeur d’une variable pour chaque requête ASP, PHP et CGI Langages à objets : la persistance des objets permet de maintenir des états (valeurs d’attributs) à chaque requête JSP, Servlet et .NETExemple : un compteur Dans le cas des langages procéduraux pour stocker la valeur d’un compteur on peut soit utiliser un simple fichier ou soit utiliser une base de donnée. A chaque nouvelle requête le compteur est initialisé au travers du support Dans le cas des langages à objets, un objet contenant un attribut compteur est créé à la première requête et sa durée de vie est fonction de différents paramètres (serveur, scope, …) Cours J2EE - M. Baron - Page 30
  31. 31. Client léger : technologies côté clientLes technologies côté client permettent d’effectuer des traitementssupplémentaires que ceux fournis uniquement par l’HTMLNous distinguons deux types de technologie Affichage : celles qui ne s’occupent que de la partie présentation HTML et DHTML Dynamique : celles qui permettent d’effectuer des traitements dynamiques JavaScriptQuelle que soit la technologie utilisée elles devront être codée ettransmises par les technologies côté serveurExemple : un formulaire L’HTML ou le DHTML permettent d’afficher le formulaire Le JavaScript permet de vérifier la cohérence « de surface » des données (champs vides, …) Cours J2EE - M. Baron - Page 31
  32. 32. Client léger : les solutions envisagéesQuelle que soit la complexité du site Web les technologies côtéclients sont toujours identiquesAu contraire le choix de la technologie côté serveur dépendfortement de la complexité de l’application Web Site marketing et recherche de simples informations : PHP ou ASP Site commercial avec transaction: langage à objets J2EE ou .NETAvis personnels L’utilisation de technologies avec langage à objets permettent d’imposer une architecture Les technologies à objets offrent un nombre important d’API La persistance liée au paradigme objets permet de gérer plus facilement les sessions utilisateurs et le stockage d’attributs (compteur)Exemple : J2EE Cours J2EE - M. Baron - Page 32
  33. 33. Technologie J2EE : acronymes en puissanceLes API J2EE Le serveur J2EE va fournir à une application WEB un ensemble de services comme les connexions aux bases de données, la messagerie, les transactions, …La spécification J2EE prévoit un ensemble d’extensions Javastandard que chaque plate-forme doit prendre en charge Servlet : composant coté serveur, dont le rôle est de fournir une implémentation au traitement des requêtes/réponses JSP : JavaServer Pages est une extension au Servlet permettant de simplifier la génération de pages web dynamiques JNDI : Java Naming and Directory Interface JDBC : Java Database Connectivity est une API permettant de se connecter à une base SQL JMS : Java Messaging Service JTA : Java Transaction API EJB : Entreprise Java Bean Cours J2EE - M. Baron - Page 33

×