488
Créez votre application web avec Java EE Par Coyote www.siteduzero.com Licence Creative Commons BY-NC-SA 2.0 Dernière mise à jour le 18/10/2012

285022 Creez Votre Application Web Avec Java Ee

Embed Size (px)

Citation preview

Crez votre application web avec Java EEPar Coyote

www.siteduzero.com

Licence Creative Commons BY-NC-SA 2.0 Dernire mise jour le 18/10/2012

2/489

SommaireSommaire ........................................................................................................................................... 2 Lire aussi ............................................................................................................................................ 5 Crez votre application web avec Java EE ........................................................................................ 7Comment lire ce cours ? ................................................................................................................................................... 7

Partie 1 : Les bases du Java EE ......................................................................................................... 7Introduction au Java EE .................................................................................................................................................... 8Pour commencer ......................................................................................................................................................................................................... 8 Comment lire ce cours ? ............................................................................................................................................................................................. 8 Prrequis ..................................................................................................................................................................................................................... 8 Qu'est-ce que Java EE ? ............................................................................................................................................................................................. 8 Java EE n'est pas Java ............................................................................................................................................................................................... 8 Java EE n'est pas Javascript ...................................................................................................................................................................................... 8 Internet n'est pas le web ! ........................................................................................................................................................................................... 9 Comment a marche ................................................................................................................................................................................................... 9 Les langages du web ................................................................................................................................................................................................ 10 En rsum ................................................................................................................................................................................................................. 10

Le Java EE mis nu ! ...................................................................................................................................................... 11Principes de fonctionnement ..................................................................................................................................................................................... 11 Le modle MVC : en thorie ...................................................................................................................................................................................... 12 Le modle MVC : en pratique .................................................................................................................................................................................... 13 En rsum ................................................................................................................................................................................................................. 14

Outils et environnement de dveloppement ................................................................................................................... 15L'IDE Eclipse ............................................................................................................................................................................................................. Prsentation .............................................................................................................................................................................................................. Tlchargement et installation .................................................................................................................................................................................. Configuration ............................................................................................................................................................................................................. Le serveur Tomcat ..................................................................................................................................................................................................... Prsentation .............................................................................................................................................................................................................. Installation ................................................................................................................................................................................................................. Cration du projet web avec Eclipse ......................................................................................................................................................................... Structure d'une application Java EE ......................................................................................................................................................................... Structure standard ..................................................................................................................................................................................................... Votre premire page web .......................................................................................................................................................................................... En rsum ................................................................................................................................................................................................................. 15 15 15 16 17 17 17 20 30 30 31 35

Partie 2 : Premiers pas avec Java EE ............................................................................................... 36La servlet ......................................................................................................................................................................... 36Derrire les rideaux ................................................................................................................................................................................................... Retour sur HTTP ....................................................................................................................................................................................................... Pendant ce temps-l, sur le serveur ...................................................................................................................................................................... Cration ..................................................................................................................................................................................................................... Mise en place ............................................................................................................................................................................................................ Dfinition de la servlet ............................................................................................................................................................................................... Mapping de la servlet ................................................................................................................................................................................................ Mise en service ......................................................................................................................................................................................................... Do you GET it? .................................................................................................................................................................................................... Cycle de vie d'une servlet ......................................................................................................................................................................................... Envoyer des donnes au client ................................................................................................................................................................................. En rsum ................................................................................................................................................................................................................. 36 36 37 37 40 41 42 43 43 45 46 47

Servlet avec vue .......................................................................................................................................................... 49Introduction aux JSP ................................................................................................................................................................................................. 49 Nature d'une JSP ...................................................................................................................................................................................................... 49 Mise en place d'une JSP ........................................................................................................................................................................................... 50 Cration de la vue ..................................................................................................................................................................................................... 50 Cycle de vie d'une JSP ............................................................................................................................................................................................. 52 Mise en relation avec notre servlet ............................................................................................................................................................................ 54 En rsum ................................................................................................................................................................................................................. 56

Transmission de donnes ............................................................................................................................................... 56Donnes issues du serveur : les attributs ................................................................................................................................................................. 57 Donnes issues du client : les paramtres ............................................................................................................................................................... 58 En rsum ................................................................................................................................................................................................................. 61

Le JavaBean ................................................................................................................................................................... 62Objectifs .................................................................................................................................................................................................................... Pourquoi le JavaBean ? ............................................................................................................................................................................................ Un JavaBean n'est pas un EJB ................................................................................................................................................................................. Structure .................................................................................................................................................................................................................... Mise en place ............................................................................................................................................................................................................ Cration de notre bean d'exemple ............................................................................................................................................................................ Configuration du projet sous Eclipse ......................................................................................................................................................................... Mise en service dans notre application ..................................................................................................................................................................... En rsum ................................................................................................................................................................................................................. 62 62 62 62 63 63 66 68 69

La technologie JSP (1/2) ................................................................................................................................................. 71Les balises ................................................................................................................................................................................................................ 71 Les directives ............................................................................................................................................................................................................ 72

www.siteduzero.com

Sommaire

3/48975 77 77 78 78 79

La porte des objets .................................................................................................................................................................................................. Les actions standard ................................................................................................................................................................................................. L'action standard useBean ........................................................................................................................................................................................ L'action standard getProperty ................................................................................................................................................................................... L'action standard setProperty .................................................................................................................................................................................... L'action standard forward ..........................................................................................................................................................................................

La technologie JSP (2/2) ................................................................................................................................................. 81Expression Language ................................................................................................................................................................................................ 81 Prsentation .............................................................................................................................................................................................................. 81 La ralisation de tests ............................................................................................................................................................................................... 81 La manipulation d'objets ............................................................................................................................................................................................ 83 Dsactiver l'valuation des expressions EL .............................................................................................................................................................. 88 Les objets implicites .................................................................................................................................................................................................. 90 Les objets de la technologie JSP .............................................................................................................................................................................. 90 Les objets de la technologie EL ................................................................................................................................................................................ 93

Des problmes de vue ? ................................................................................................................................................. 99Nettoyons notre exemple .......................................................................................................................................................................................... 99 Compltons notre exemple... .................................................................................................................................................................................. 102 Le point sur ce qu'il nous manque ........................................................................................................................................................................... 106 Documentation ........................................................................................................................................................................................................ 106 Liens utiles .............................................................................................................................................................................................................. 106

TP Fil rouge - tape 1 ................................................................................................................................................... 107Objectifs .................................................................................................................................................................................................................. 108 Contexte .................................................................................................................................................................................................................. 108 Fonctionnalits ........................................................................................................................................................................................................ 108 Contraintes .............................................................................................................................................................................................................. 108 Conseils ................................................................................................................................................................................................................... 111 propos des formulaires ......................................................................................................................................................................................... 111 Le modle ................................................................................................................................................................................................................ 112 Les contrleurs ........................................................................................................................................................................................................ 112 Les vues .................................................................................................................................................................................................................. 112 Cration du projet .................................................................................................................................................................................................... 113 Illustration du comportement attendu ...................................................................................................................................................................... 113 Exemples de rendu du comportement attendu ........................................................................................................................................................ 114 Correction ................................................................................................................................................................................................................ 117 Le code des beans .................................................................................................................................................................................................. 117 Le code des servlets ................................................................................................................................................................................................ 119 Le code des JSP ..................................................................................................................................................................................................... 122

Partie 3 : Une bonne vue grce la JSTL ...................................................................................... 125Objectifs et configuration ............................................................................................................................................... 125C'est sa raison d'tre ........................................................................................................................................................................................... Lisibilit du code produit .......................................................................................................................................................................................... Moins de code crire ............................................................................................................................................................................................ Vous avez dit MVC ? ............................................................................................................................................................................................... retenir ................................................................................................................................................................................................................... Plusieurs versions ................................................................................................................................................................................................... Configuration ........................................................................................................................................................................................................... Configuration de la JSTL ......................................................................................................................................................................................... En rsum ............................................................................................................................................................................................................... Les variables et expressions ................................................................................................................................................................................... Affichage d'une expression ..................................................................................................................................................................................... Gestion d'une variable ............................................................................................................................................................................................. Les conditions ......................................................................................................................................................................................................... Une condition simple ............................................................................................................................................................................................... Des conditions multiples ......................................................................................................................................................................................... Les boucles ............................................................................................................................................................................................................. Boucle "classique" ................................................................................................................................................................................................... Itration sur une collection ...................................................................................................................................................................................... Itration sur une chane de caractres .................................................................................................................................................................... Ce que la JSTL ne permet pas (encore) de faire .................................................................................................................................................... Les liens .................................................................................................................................................................................................................. Liens ........................................................................................................................................................................................................................ Redirection .............................................................................................................................................................................................................. Imports .................................................................................................................................................................................................................... 125 125 126 126 127 127 127 127 130 131 131 132 135 135 136 136 136 138 141 141 141 142 144 145

La bibliothque Core ..................................................................................................................................................... 130

JSTL core : exercice d'application ................................................................................................................................. 147Les bases de l'exercice ........................................................................................................................................................................................... 147 Correction ................................................................................................................................................................................................................ 149

La bibliothque xml ....................................................................................................................................................... 153La syntaxe XPath .................................................................................................................................................................................................... Le langage XPath .................................................................................................................................................................................................... Les actions de base ................................................................................................................................................................................................ Rcuprer et analyser un document ....................................................................................................................................................................... Afficher une expression ........................................................................................................................................................................................... Crer une variable ................................................................................................................................................................................................... Les conditions ......................................................................................................................................................................................................... Les conditions ......................................................................................................................................................................................................... Les boucles ............................................................................................................................................................................................................. Les boucles ............................................................................................................................................................................................................. Les transformations ................................................................................................................................................................................................. Transformations ...................................................................................................................................................................................................... 153 153 154 154 157 158 158 158 159 159 160 160

www.siteduzero.com

Sommaire

4/489

JSTL xml : exercice d'application .................................................................................................................................. 162Les bases de l'exercice ........................................................................................................................................................................................... 163 Correction ................................................................................................................................................................................................................ 164

Faisons le point ! ........................................................................................................................................................... 166Reprenons notre exemple ....................................................................................................................................................................................... Quelques conseils ................................................................................................................................................................................................... Utilisation de constantes ......................................................................................................................................................................................... Inclure automatiquement la JSTL Core toutes vos JSP ....................................................................................................................................... Formater proprement et automatiquement votre code avec Eclipse ...................................................................................................................... Documentation ........................................................................................................................................................................................................ Liens utiles .............................................................................................................................................................................................................. Objectifs .................................................................................................................................................................................................................. Utilisation de la JSTL ............................................................................................................................................................................................... Application des bonnes pratiques ........................................................................................................................................................................... Exemples de rendus ............................................................................................................................................................................................... Conseils .................................................................................................................................................................................................................. Utilisation de la JSTL ............................................................................................................................................................................................... Application des bonnes pratiques ........................................................................................................................................................................... Correction ................................................................................................................................................................................................................ Code des servlets ................................................................................................................................................................................................... Code des JSP ......................................................................................................................................................................................................... 166 168 168 170 171 176 176 178 178 178 178 179 180 180 181 181 184

TP Fil rouge - tape 2 ................................................................................................................................................... 177

Partie 4 : Une application interactive ! ............................................................................................. 190Formulaires : le b.a.-ba ................................................................................................................................................. 190Mise en place .......................................................................................................................................................................................................... JSP & CSS .............................................................................................................................................................................................................. La servlet ................................................................................................................................................................................................................. L'envoi des donnes ............................................................................................................................................................................................... Contrle : ct servlet ............................................................................................................................................................................................. Affichage : ct JSP ................................................................................................................................................................................................ 190 197 200 201 202 206

Formulaires : la mode MVC ....................................................................................................................................... 213Analyse de notre conception ................................................................................................................................................................................... 214 Cration du modle ................................................................................................................................................................................................. 215 Reprise de la servlet ............................................................................................................................................................................................... 218 Reprise de la JSP .................................................................................................................................................................................................... 220

TP Fil rouge - tape 3 ................................................................................................................................................... 222Objectifs .................................................................................................................................................................................................................. Fonctionnalits ........................................................................................................................................................................................................ Exemples de rendus ............................................................................................................................................................................................... Conseils .................................................................................................................................................................................................................. Correction ................................................................................................................................................................................................................ Code des objets mtier ........................................................................................................................................................................................... Code des servlets ................................................................................................................................................................................................... Code des JSP ......................................................................................................................................................................................................... Le formulaire ........................................................................................................................................................................................................... Le principe de la session ......................................................................................................................................................................................... Le modle ............................................................................................................................................................................................................... La servlet ................................................................................................................................................................................................................. Les vrifications ...................................................................................................................................................................................................... Test du formulaire de connexion ............................................................................................................................................................................. Test de la destruction de session ............................................................................................................................................................................ Derrire les rideaux ................................................................................................................................................................................................. La thorie : principe de fonctionnement .................................................................................................................................................................. La pratique : scrutons nos requtes et rponses .................................................................................................................................................... Le bilan .................................................................................................................................................................................................................... Restreindre l'accs une page ............................................................................................................................................................................... Les pages d'exemple .............................................................................................................................................................................................. La servlet de contrle .............................................................................................................................................................................................. Test du systme ...................................................................................................................................................................................................... Le problme ............................................................................................................................................................................................................ Le principe du filtre .................................................................................................................................................................................................. Gnralits .............................................................................................................................................................................................................. Fonctionnement ...................................................................................................................................................................................................... Cycle de vie ............................................................................................................................................................................................................. Restreindre l'accs un ensemble de pages ......................................................................................................................................................... Restreindre un rpertoire ........................................................................................................................................................................................ Restreindre l'application entire .............................................................................................................................................................................. Dsactiver le filtre .................................................................................................................................................................................................... Modifier le mode de dclenchement d'un filtre ........................................................................................................................................................ Retour sur l'encodage UTF-8 .................................................................................................................................................................................. 223 223 223 225 226 226 232 234 239 239 242 244 246 246 248 253 253 254 268 269 269 270 271 272 273 273 274 275 275 275 280 287 287 288

La session : connectez vos clients ................................................................................................................................ 238

Le filtre : crez un espace membre ............................................................................................................................... 268

Le cookie : le navigateur vous ouvre ses portes ........................................................................................................... 291Le principe du cookie .............................................................................................................................................................................................. 291 Ct HTTP .............................................................................................................................................................................................................. 291 Ct Java EE .......................................................................................................................................................................................................... 291 Souvenez-vous de vos clients ! ............................................................................................................................................................................... 291 Reprise de la servlet ............................................................................................................................................................................................... 292 Reprise de la JSP .................................................................................................................................................................................................... 296 Vrifications ............................................................................................................................................................................................................. 298 propos de la scurit ........................................................................................................................................................................................... 302

www.siteduzero.com

Sommaire

5/489303 303 303 306 308 308 314 321

TP Fil rouge - tape 4 ................................................................................................................................................... 302Objectifs .................................................................................................................................................................................................................. Fonctionnalits ........................................................................................................................................................................................................ Exemples de rendus ............................................................................................................................................................................................... Conseils .................................................................................................................................................................................................................. Correction ................................................................................................................................................................................................................ Le code des vues .................................................................................................................................................................................................... Le code des servlets ............................................................................................................................................................................................... Le code des objets mtiers .....................................................................................................................................................................................

Formulaires : l'envoi de fichiers ..................................................................................................................................... 326Cration du formulaire ............................................................................................................................................................................................. 326 Rcupration des donnes ..................................................................................................................................................................................... 326 Mise en place .......................................................................................................................................................................................................... 326 Traitement des donnes .......................................................................................................................................................................................... 328 La diffrence entre la thorie et la pratique ............................................................................................................................................................. 334 Enregistrement du fichier ........................................................................................................................................................................................ 336 Dfinition du chemin physique ................................................................................................................................................................................ 336 criture du fichier sur le disque ............................................................................................................................................................................... 337 Test du formulaire d'upload ..................................................................................................................................................................................... 340 Problmes et limites ................................................................................................................................................................................................ 340 Comment grer les fichiers de mmes noms ? ....................................................................................................................................................... 340 Comment viter les doublons ? ............................................................................................................................................................................... 340 O stocker les fichiers reus ? ................................................................................................................................................................................ 341 Rendre le tout entirement automatique ................................................................................................................................................................. 341 Intgration dans MVC .............................................................................................................................................................................................. 342 Cration du bean reprsentant un fichier ................................................................................................................................................................ 342 Cration de l'objet mtier en charge du traitement du formulaire ........................................................................................................................... 342 Reprise de la servlet ............................................................................................................................................................................................... 347 Adaptation de la page JSP aux nouvelles informations transmises ........................................................................................................................ 348 Comportement de la solution finale ......................................................................................................................................................................... 349

Le tlchargement de fichiers ....................................................................................................................................... 351Une servlet ddie .................................................................................................................................................................................................. Cration de la servlet .............................................................................................................................................................................................. Paramtrage de la servlet ....................................................................................................................................................................................... Analyse du fichier .................................................................................................................................................................................................... Gnration de la rponse HTTP ............................................................................................................................................................................. Lecture et envoi du fichier ....................................................................................................................................................................................... Vrification de la solution ........................................................................................................................................................................................ Une solution plus simple ......................................................................................................................................................................................... L'tat d'un tlchargement ...................................................................................................................................................................................... Raliser des statistiques ......................................................................................................................................................................................... Objectifs .................................................................................................................................................................................................................. Fonctionnalits ........................................................................................................................................................................................................ Exemples de rendus ............................................................................................................................................................................................... Conseils .................................................................................................................................................................................................................. Envoi du fichier ........................................................................................................................................................................................................ Validation et enregistrement du fichier .................................................................................................................................................................... Affichage d'un lien vers l'image ............................................................................................................................................................................... R-affichage de l'image ........................................................................................................................................................................................... Correction ................................................................................................................................................................................................................ Le code de l'objet mtier ......................................................................................................................................................................................... Le code des servlets ............................................................................................................................................................................................... Le code des JSP ..................................................................................................................................................................................................... 351 351 351 353 354 355 356 357 358 358 360 360 360 363 363 363 364 364 364 365 370 373

TP Fil rouge - tape 5 ................................................................................................................................................... 359

Partie 5 : Les bases de donnes avec Java EE .............................................................................. 380Introduction MySQL et JDBC ..................................................................................................................................... 380Prsentation des bases de donnes ....................................................................................................................................................................... Structure .................................................................................................................................................................................................................. SGBD ...................................................................................................................................................................................................................... SQL ......................................................................................................................................................................................................................... Prparation de la base avec MySQL ....................................................................................................................................................................... Installation ............................................................................................................................................................................................................... Cration d'une base ................................................................................................................................................................................................ Cration d'un utilisateur ........................................................................................................................................................................................... Cration d'une table ................................................................................................................................................................................................ Insertion de donnes d'exemple ............................................................................................................................................................................. Mise en place de JDBC dans le projet .................................................................................................................................................................... JDBC ....................................................................................................................................................................................................................... Mise en place .......................................................................................................................................................................................................... Cration d'un bac sable ........................................................................................................................................................................................ Cration de l'objet Java ........................................................................................................................................................................................... Cration de la servlet .............................................................................................................................................................................................. Cration de la page JSP ......................................................................................................................................................................................... 380 380 381 382 382 382 384 384 385 385 386 386 387 387 387 388 389

Communiquez avec votre BDD ..................................................................................................................................... 389Chargement du driver .............................................................................................................................................................................................. 390 Connexion la base, cration et excution d'une requte ..................................................................................................................................... 390 Connexion la base de donnes ............................................................................................................................................................................ 390 Cration d'une requte ............................................................................................................................................................................................ 392 Excution de la requte ........................................................................................................................................................................................... 393 Accs aux rsultats de la requte ........................................................................................................................................................................... 393 Libration des ressources ....................................................................................................................................................................................... 395 Mise en pratique ...................................................................................................................................................................................................... 396

www.siteduzero.com

Lire aussi

6/489396 398 400 400 400 402 402 403 403 405 407

Afficher le contenu de la table Utilisateur ................................................................................................................................................................ Insrer des donnes dans la table Utilisateur ......................................................................................................................................................... Les limites du systme ............................................................................................................................................................................................ Insrer des donnes saisies par l'utilisateur ........................................................................................................................................................... Le problme des valeurs nulles .............................................................................................................................................................................. Le cas idal ............................................................................................................................................................................................................. Les injections SQL .................................................................................................................................................................................................. Les requtes prpares .......................................................................................................................................................................................... Pourquoi prparer ses requtes ? ........................................................................................................................................................................... Comment prparer ses requtes ? ......................................................................................................................................................................... Mise en pratique ......................................................................................................................................................................................................

Le modle DAO ............................................................................................................................................................. 410Objectifs ................................................................................................................................................................................................................... 411 Inconvnients de notre solution ............................................................................................................................................................................... 411 Isoler le stockage des donnes ............................................................................................................................................................................... 411 Principe ................................................................................................................................................................................................................... 412 Constitution ............................................................................................................................................................................................................. 412 Intgration ............................................................................................................................................................................................................... 413 Cration ................................................................................................................................................................................................................... 413 Modification de la table Utilisateur .......................................................................................................................................................................... 413 Reprise du bean Utilisateur ..................................................................................................................................................................................... 414 Cration des exceptions du DAO ............................................................................................................................................................................ 415 Cration d'un fichier de configuration ...................................................................................................................................................................... 417 Cration d'une Factory ............................................................................................................................................................................................ 417 Cration de l'interface du DAO Utilisateur ............................................................................................................................................................... 420 Cration de l'implmentation du DAO ..................................................................................................................................................................... 421 Intgration ............................................................................................................................................................................................................... 427 Chargement de la DAOFactory ............................................................................................................................................................................... 427 Utilisation depuis la servlet ...................................................................................................................................................................................... 429 Reprise de l'objet mtier .......................................................................................................................................................................................... 431 Cration d'une exception ddie aux erreurs de validation .................................................................................................................................... 434 Vrifications ............................................................................................................................................................................................................. 434 Le code final ............................................................................................................................................................................................................ 434 Le scnario de tests ................................................................................................................................................................................................ 435

TP Fil rouge - tape 6 ................................................................................................................................................... 438Objectifs .................................................................................................................................................................................................................. 438 Fonctionnalits ........................................................................................................................................................................................................ 438 Conseils .................................................................................................................................................................................................................. 438 Cration de la base de donnes ............................................................................................................................................................................. 438 Mise en place de JDBC ........................................................................................................................................................................................... 440 Rutilisation de la structure DAO dveloppe dans le cadre du cours ................................................................................................................... 440 Cration des interfaces et implmentations du DAO .............................................................................................................................................. 440 Intgration dans le code existant ............................................................................................................................................................................ 441 Correction ................................................................................................................................................................................................................ 443 Code de la structure DAO ....................................................................................................................................................................................... 443 Code des interfaces DAO ........................................................................................................................................................................................ 445 Code des implmentations DAO ............................................................................................................................................................................. 446 Code des beans ...................................................................................................................................................................................................... 452 Code des objets mtier ........................................................................................................................................................................................... 454 Code des servlets ................................................................................................................................................................................................... 465 Code du filtre ........................................................................................................................................................................................................... 473 Code des JSP ......................................................................................................................................................................................................... 475

Grer un pool de connexions ........................................................................................................................................ 480Contexte .................................................................................................................................................................................................................. 481 Une application multi-utilisateurs ............................................................................................................................................................................ 481 Le cot d'une connexion la BDD .......................................................................................................................................................................... 481 La structure actuelle de notre solution .................................................................................................................................................................... 482 Principe ................................................................................................................................................................................................................... 482 Rutilisation des connexions ................................................................................................................................................................................... 482 Remplacement du DriverManager par une DataSource ......................................................................................................................................... 483 Choix d'une implmentation .................................................................................................................................................................................... 483 Mise en place .......................................................................................................................................................................................................... 484 Ajout des jar au projet ............................................................................................................................................................................................. 484 Prise en main de la bibliothque ............................................................................................................................................................................. 484 Modification de la DAOFactory ................................................................................................................................................................................ 485 Vrifications ............................................................................................................................................................................................................. 487 Configuration fine du pool ....................................................................................................................................................................................... 487 Avancement du cours .............................................................................................................................................................................................. 488 Et aprs ? ................................................................................................................................................................................................................ 488

www.siteduzero.com

Lire aussi

7/489

Crez votre application web avec Java EE

Par

Coyote

Mise jour : 18/10/2012 Difficult : Intermdiaire

Dure d'tude : 1 mois

20 059 visites depuis 7 jours, class 18/792 La cration d'applications web avec Java EE semble complique beaucoup de dbutants. Une norme nbuleuse de sigles en tout genre gravite autour de la plate-forme, un nombre consquent de technologies et d'approches diffrentes existent : servlet, JSP, Javabean, MVC, JDBC, JNDI, EJB, JPA, JMS, JSF, Struts, Spring, Tomcat, Glassfish, JBoss, WebSphere, WebLogic... La liste n'en finit pas, et pour un novice ne pas touffer sous une telle avalanche est bien souvent mission impossible ! Soyons honntes, ce tutoriel ne vous expliquera pas le fonctionnement et l'utilisation de toutes ces technologies. Car a aussi, c'est mission impossible ! Il faudrait autant de tutos... Non, ce cours a pour objectif de guider vos premiers pas dans l'univers Java EE : aprs quelques explications sur les concepts gnraux et les bonnes pratiques en vigueur, vous allez entrer dans le vif du sujet et dcouvrir comment crer un projet web, en y ajoutant de la complexit au fur et mesure que le cours avancera. la fin du cours, vous serez capables de crer une application web qui respecte les standards reconnus dans le domaine et vous disposerez des bases ncessaires pour utiliser la plupart des technologies se basant sur Java EE. Je profite de cette introduction pour tordre le coup une erreur trop courante : l'appellation JEE n'existe pas ! Les crateurs de Java EE ont mme ddi une page web cette fausse appellation.

Comment lire ce cours ?Un contenu consquent est prvu, mais je ne vais volontairement pas tre exhaustif : les technologies abordes sont trs vastes, et l'objectif du cours est de vous apprendre crer une application. Si je vous rcrivais la documentation de la plate-forme Java EE en franais, a serait tout simplement imbuvable. Je vais ainsi fortement insister sur des points non documents et des pratiques que je juge importantes, et tre plus expditif sur certains points, pour lesquels je me contenterai de vous prsenter les bases et de vous renvoyer vers les documentations et sources officielles pour plus d'informations. Je vous invite donc ne pas vous limiter la seule lecture de ce cours, et parcourir chacun des liens que j'ai mis en place tout au long des chapitres. Enfin, avant d'attaquer sachez que ce cours ne part pas totalement de zro : il vous faut des bases en Java afin de ne pas vous sentir largus ds les premiers chapitres. Ainsi, si vous n'tes pas encore familier avec le langage, vous pouvez lire les parties 1 et 2 du tutoriel sur le Java du Site du Zro.

www.siteduzero.com

Crez votre application web avec Java EE

8/489

Partie 1 : Les bases du Java EEDans cette courte premire partie, nous allons poser le dcor : quelles sont les briques de base d'une application Java EE, comment elles interagissent, quels outils utiliser pour dvelopper un projet...

Introduction au Java EEAvant de nous plonger dans l'univers Java EE, commenons par faire une mise au point sur ce que vous devez connatre avant d'attaquer ce cours, et penchons-nous un instant sur ce qu'est le web, et sur ce qu'il n'est pas. Simples rappels pour certains d'entre vous, dcouverte pour d'autres, nous allons ici expliquer ce qui se passe dans les coulisses lorsque l'on accde un site web depuis son navigateur. Nous aborderons enfin brivement les autres langages existants, et les raisons qui nous poussent choisir Java EE.

Pour commencer Comment lire ce cours ?Un contenu consquent est prvu dans ce cours, mais je ne vais volontairement pas tre exhaustif : les technologies abordes sont trs vastes, et l'objectif est avant tout de vous apprendre crer une application. Si je vous rcrivais la documentation de la plate-forme Java EE en franais, a serait tout simplement imbuvable. Je vais ainsi fortement insister sur des points non documents et des pratiques que je juge importantes, et tre plus expditif sur certains points, pour lesquels je me contenterai de vous prsenter les bases et de vous renvoyer vers les documentations et sources officielles pour plus d'informations. Je vous invite donc ne pas vous limiter la seule lecture de ce cours, et parcourir chacun des liens que j'ai mis en place tout au long des chapitres ; plus vous ferez preuve de curiosit et d'assiduit, plus votre apprentissage sera efficace.

PrrequisAvant d'attaquer, sachez que ce cours ne part pas totalement de zro : des notions en dveloppement Java sont ncessaires (lire les parties 1 et 2 du cours de Java) ; des notions en langages HTML et CSS sont prfrables, pour une meilleure comprhension des exemples (lire le cours de HTML5 / CSS3) ; des notions en langage SQL sont prfrables, pour une meilleure comprhension de la partie 5 du cours (lire le cours de MySQL).

Qu'est-ce que Java EE ?Pour commencer, tordons le coup certaines confusions plutt tenaces chez les dbutants

Java EE n'est pas JavaLe terme Java fait bien videmment rfrence un langage, mais galement une plate-forme : son nom complet est Java SE pour Java Standard Edition , et tait anciennement raccourci J2SE . Celle-ci est constitue de nombreuses bibliothques, ou API : citons par exemple java.lang, java.io, java.math, java.util, etc. Bref, toutes ces bibliothques que vous devez dj connatre et qui contiennent un nombre consquent de classes et de mthodes prtes l'emploi pour effectuer toutes sortes de tches. Le terme Java EE signifie Java Enterprise Edition, et tait anciennement raccourci en J2EE . Il fait quant lui rfrence une extension de la plate-forme standard. Autrement dit, la plate-forme Java EE est construite sur le langage Java et la plate-forme Java SE, et elle y ajoute un grand nombre de bibliothques remplissant tout un tas de fonctionnalits que la plate-forme standard ne remplit pas d'origine. L'objectif majeur de Java EE est de faciliter le dveloppement d'applications web robustes et distribues, dployes et excutes sur un serveur d'applications. Inutile de rentrer plus loin dans les dtails, tout ceci tant bien entendu l'objet des chapitres venir. Si le cur vous en dit, vous pouvez consulter les spcifications de la plate-forme Java EE actuelle, finalises depuis dcembre 2009.

Java EE n'est pas JavascriptS'il est vrai que Java EE permet la cration d'applications web, il ne faut pas pour autant le confondre avec le langage Javascript, souvent raccourci en JS , qui est lui aussi massivement utilis dans les applications web. Ce sont l deux langages totalement

www.siteduzero.com

Crez votre application web avec Java EEdiffrents, qui n'ont comme ressemblance que leur nom ! En d'autres termes, Java est au Javascript ce que le bal est la balustrade

9/489

Ne vous leurrez donc pas, et lorsque vous entendrez parler de scripts Java, rappelez-vous bien que cela dsigne simplement du code Java, et surtout pas du code Javascript.

Internet n'est pas le web !Avant tout, il ne faut pas confondre l'internet et le web : l'internet est le rseau, le support physique de l'information. Pour faire simple, c'est un ensemble de machines, de cbles et d'lments rseau en tout genre parpills sur la surface du globe ; le web constitue une partie seulement du contenu accessible sur l'internet. V ous connaissez et utilisez d'autres contenus, comme le courrier lectronique ou encore la messagerie instantane. Un site web est un ensemble constitu de pages web (elles-mmes faites de fichiers HTML, CSS, Javascript, etc.). Lorsqu'on dveloppe puis publie un site web, on met en ralit en ligne du contenu sur internet. On distingue deux types de sites : les sites internet statiques : ce sont des sites dont le contenu est fixe , il n'est modifiable que par le propritaire du site. Ils sont raliss l'aide des technologies HTML, CSS et Javascript uniquement. les sites internet dynamiques : ce sont des sites dont le contenu est dynamique , parce que le propritaire n'est plus le seul pouvoir le faire changer ! En plus des langages prcdemment cits, ils font intervenir d'autres technologies : Java EE est l'une d'entre elles !

Comment a marcheLorsqu'un utilisateur cons