Découvrir Java pour le web

Mettre en œuvre le MVC

Testez gratuitement nos 1271 formations

pendant 10 jours !

Tester maintenant Afficher tous les abonnements
Extrayez de votre servlet la production de HTML pour en faire un vrai contrôleur. Puis consacrez le JSP à la représentation des données.
07:19

Transcription

Nous allons maintenant voir comment implémenter le patron MVC dans une application web Java. Pour ça on va utiliser le JSP pour la vue, Notre servlet pour le contrôleur, et une ou plusieurs entités JPA pour le modèle. On va commencer par la vue. Cette vue on ne va pas la créer comme on l'avait fait ici à la racine de notre site, mais dans un dossier inaccessible par l'utilisateur puisqu’on veut que la vue soit accessible par le contrôleur et non pas directement. « WEB-INF » n'étant pas accessible par l'internaute c'est quelque chose de pratique de mettre toutes nos vues là-dedans. On va déjà créer un dossier par convention JSP. Et dans ce dossier « jsp », un dossier « view » pour rassembler toutes nos vues. Enfin on peut créer notre vue. « suivi » ici, qui est un document JSP complet, non pas un fragment Maintenant qu'on a un langage complet pour manipuler le HTML, un langage vraiment dédié : le JSP, on va pouvoir utiliser une maquette un peu plus complexe : la maquette Bootstrap qu'on avait préparée. A cet effet j'ai recopié le dossier « vendor » dans lequel il y a Bootstrap et la librairie JavaScript graphique et de statistiques. Donc on peut reprendre exactement la maquette. Il va falloir maintenant s'intéresser à notre contrôleur pour charger cette vue. Je reviens ici dans le « process request » et je supprime la partie génération HTML puisque maintenant c'est quelque chose assuré par notre vue. Donc il faut maintenant que j'accède et que je redirige, une fois tous les éléments préparés dans le contrôleur, que je redirige la requête vers ma vue. Pour cela je récupère le contexte de la servlet. J'importe la classe. Et depuis ce contexte, je récupère un dispatcher de requête, auquel je spécifie la servlet vers laquelle je veux aller puisqu'une vue JSP est compilée en servlets. Donc indirectement c'est une servlet que je vais appeler dans le « jsp/view » et « suivi.jsp ». Avec « forward » je transmets à cette servlet les paramètres de la requête et l'objet de réponse qui va lui permettre de remplir l'objet de réponse. Donc on a ici le code qu'on retrouvera à chaque fois que l'on veut charger une vue ou en tout cas, répondre à l'utilisateur depuis notre contrôleur avec une vue. Maintenant, en ce qui concerne le modèle. On a un modèle tout prêt. Ici, nos entités de projet qui sont chargées. On peut déjà les passer à la vue. Pour passer à la vue, on passe par l'intermédiaire du « setAttribute » du contexte. On spécifie une clé ici pour la variable. L'utilisateur on le fera tout à l'heure, faisons plutôt les projets. Voici ici la liste des projets. j'ai utilisé le même nom pour la clé et pour la variable. Il n'y a aucune obligation. Vous pouvez faire vraiment ce que vous voulez. L’affichage étant maintenant assuré par la vue, on peut complètement se passer de cette méthode à nettoyer. On verra son équivalent dans les JSP un peu plus tard. Sur l'utilisateur on va faire quelque chose qui utilise la base de données. Tant qu'à faire, autant avoir un modèle complet. Avec « utilisateur » et « projet ». Pour cela on va déclarer un utilisateur plutôt qu'un login. Il faut charger l'entité ici. Puis le login. Ici le paramètre est toujours utile. Je le récupère. Je le teste toujours. Mais au moment où je le récupère, je vais d'abord tester s’il est en base de données. Pour ça je dois remonter mon entity manager. Puis vérifier avec l'entity manager Si j'ai un utilisateur qui a ce login. Au même titre qu'on se méfiait de login pour le mettre dans la page, il ne faut, en aucun cas, utiliser tel quel un paramètre qui nous a été passé, ici, « qui », l'utiliser pour le mettre dans une requête SQL. Lorsque je compose ma requête SQL ou JPA, ici c'est une requête JPA, j'utilise une requête paramétrée et je passe le paramètre. En aucun cas, il ne faut concaténer avec un « + », faire un « string.format ». Là on pourrait avoir une faille d'injection SQL. Donc j'ai défini le paramètre. Je récupère l'utilisateur ici, et le résultat. Et si j'ai bien trouvé un utilisateur qui a le login qui correspond au paramètre « qui », je peux le mettre en session. Et si jamais je n'ai pas reçu de paramètre je vais regarder la cession, ce que je faisais déjà précédemment, sauf que j'ai maintenant en session non pas un simple login, mais un objet utilisateur complet. Donc pas de « toString » ici puisque c'est le « getAttribute » que je fais directement. Il ne me reste plus qu'à passer l'utilisateur au contexte. Avec mon CTRL + SHIFT. On peut maintenant aller dans le JSP et utiliser les données que l'on a préparées. Pour ça il faut les récupérer. On va le faire ici. Ici, on récupère. Ce n'est pas « getUtilisateur » mais « getAttribute ». En convertissant notre utilisateur. Et on peur descendre afficher dans le menu notre utilisateur. Ici avec un « getNom ». On peut lancer maintenant. Et lorsque l'on sélectionne « S.Labasse » on a bien « S.Labasse » qui apparaît avec un « qui » qui était avec l'identifiant on a le nom qui est réutilisé. Ici on pourrait étendre ça au projet. Nous savons maintenant organiser web avec un modèle, une vue, et un contrôleur.

Découvrir Java pour le web

Développez une application web avec Java. Apprenez à écrire des servlets, des entités ​J​PA (Java Persistence API) d'accès aux données et des pages JSP (Java Server Pages).

2h06 (23 vidéos)
Aucun commentaire n´est disponible actuellement
 
Logiciel :
Spécial abonnés
Date de parution :25 janv. 2017

Votre formation est disponible en ligne avec option de téléchargement. Bonne nouvelle : vous ne devez pas choisir entre les deux. Dès que vous achetez une formation, vous disposez des deux options de consultation !

Le téléchargement vous permet de consulter la formation hors ligne et offre une interface plus conviviale. Si vous travaillez sur différents ordinateurs ou que vous ne voulez pas regarder la formation en une seule fois, connectez-vous sur cette page pour consulter en ligne les vidéos de la formation. Nous vous souhaitons un excellent apprentissage avec cette formation vidéo.

N'hésitez pas à nous contacter si vous avez des questions !