-
[Débutant] MVC - Servlet
Bonjour à tous,
J'aurais une question simple à poser. Je lis quelques doc sur les jsp/servlet ainsi que sur struts. Vu ce que je comprend, un classe java (soit une servlet classique ou bien une classe ActionServlet sous struts) sert de contrôleur à l'application.
C'est à dire que ce contrôleur va recevoir toutes les actions de l'utilisateur (qui passe par un formulaire).
Donc je pense qu'il n'y aura q'une seule servlet dans toute l'application.
Ma question est donc : ai-je raison ou pas ?
Il n'y a qu'une seule servlet (qui sert de contrôleur) dans toute l'application ?
Merci
-
Ca dépend
Ca dépend !!
Si tu utilises MVC, tu peux avoir autant de Servlet que tu le souhaites donc autant de controleurs !!!
Mais effectivement, si tu utilise Struts, c'est à dire le modèle MVC2, il n'y a qu'un Controleur et une servlet : le controleur Struts.
J'espère que ca t'aidera
-
Ok merci.
ça répond à ma question.
Mais ça veut dire aussi que je peux implémenter le modèle MVC2 (c'est à dire avec un seul contrôleur) même sans utiliser struts.
Quel est la meilleur méthode ? avoir un seul contrôleur (donc une seule servlet qui risque de devenir énorme au bout d'un moment) ou bien avoir une servlet par formulaire ?
Merci
-
Bonjour chennuo,
l'interêt d'avoir un seul contrôleur est de pouvoir centraliser des traitements. C'est ce que fait Struts, chaque url (termine par .do (selon la config)) sont recupere par la servlet Struts. Cette servlet appele une classe RequestProcessor
qui transforme l'url (request) en Classe Action Java et appelle la methode execute de cette classe.
La servlet Struts ne contient pas toute l'application, elle permet de router sur une classe Action (que tu configure dans le struts-config, fichier de config interprete par la Servlet Struts).
L'exemple de Struts montre qu'il n'y a qu'un seul controleur (une servlet) qui permet de router sur d'autres classes Actions (qui sont associés à un formulaire).
En d'autre termes, tu as :
* un controleur principal (servlet Struts)
* des sous-controleurs (classes Actions associés a des formulaires).
Tu peux peut etre partir de cette idée, d'avoir une servlet principal (controleur) qui permet de router sur d'autres servlet (sous-controleur).
Le fait d'avoir une servlet permet de centraliser par exemple la sécurité (si la personne existe dans la session,on route sur la servlet adequate, autrement on verifie dans l base que l'utilisateur existe). Ca t'évite de faire des includes sur toutes tes pages JSP.
Angelo