Spring MVC - Présentation

L'objectif de cet article est de présenter le principe de fonctionnement de spring MVC ainsi que les bases de ce framework.

Principe de fonctionnement

Spring MVC est un framwork qui permet d’implémenter des applications selon le design pattern MVC. Donc, comme tous autre MVC framework, Spring MVC se base sur le principe décrit par le schéma ci-dessous :

mvc schema

Passant maintenant aux détails : ci-dessous la cinématique de la gestion d’une requête par Spring MVC.

spring mvc

Les étapes sont :
1. Le DispatcherServlet reçoit une requête dont l’URI-pattern est '/myPage.html'.
2. Le DispatcherServlet consulte son Handler Mapping (Exemple : BeanNameUrlHandlerMapping) pour connaître le contrôleur dont le nom de bean est  '/myPage.html'.

3. Le DispatcherServlet dispatche la requête au contrôleur identifié (Exemple : MyController)

4. Le contrôleur retourne au DispatcherServlet un objet de type ModelandView possédant comme paramètre au minimum le nom logique de la vue à renvoyer.

5. Le DispatcherServlet consulte son View Resolver lui permettant de trouver la vue dont le nom logique est 'myPage'. Ici le type de View Resolver choisit est InternalResourceViewResolver.

6. Le DispatcherServlet forwarde la requête à la vue associé . Ici la page     /WEB-INF/jsp/ myPage.jsp

A NOTER : Pour les fans de struts, la servlet DispatcherServlet de Spring est l’équivalent du controlleur ActionServlet de Struts.

DispatcherServlet

C’est le point d’entrée de l’application, le DispatcherServlet effectue le premier mapping de l’application et distribue les requêtes aux servlets correspondantes.

Exemple : Admettant qu’on a cette configuration dans le web.xml :

web

Avec cette configuration, toutes les urls de notre application commençant par myApplication seront « dispatchées » vers cette servlet.

Controller

Le contrôleur (le C dans le modèle MVC) permet d’intercepter la requête et retourner la vue appropriée.

Spring MVC offre plusieurs types de contrôleurs : AbstractController, AbstractController, AbstractCommandController, AbstractFormController, SimpleFormController, AbstractWizardFormController…

L’interface ‘Controller’ définit le comportement basique d’un contrôleur : intercepter la requête et retourner un ‘ModelVue’ qui représente le modèle et la vue.

MultiActionController : un contrôleur dont les méthodes seront lancées en fonction des urls d’entrées.

Handler Mappings

Permet de mapper les requêtes HTTP avec le contrôleur correspondant.

View Resolvers

Permet de déterminer le nom de la vue.

Exmple : Revenons à notre exemple ci-dessous décrivant la cinématique de la gestion d’une requête par Spring MVC, pour déterminer le nom la page jsp qui correspond au url /myPage nous devons ajouter dans le fichier la configuration ci-dessous :


Le handler de notre contrôler doit retourner un objet de type ModelAndView, celui-ci est déclaré de la manière suivante :
return new ModelAndView("myPage″) ;

À partir du nom de  vue retourné, myPage par exemple, le viewResolver trouvera la  page jsp correspondante qui sera dans le dossier “/WEB-INF/jsp/ » avec le suffixe « .jsp »

 Conclusion

Dans cet article nous avons vu le principe de fonctionnement de spring MVC ainsi que les principaux composants.  Dans l'article prochain nous allons implémenter notre première application avec spring MVC.

Aucun commentaire: