Comment développer JSP/Servlets Application Web en utilisant un modèle MVC?
Je suis l'élaboration d'une JSP/Servlet web app (sans cadres). Je veux utiliser MVC modèle. Je vais à la conception de mon projet comme ceci:
- Contrôleur: une servlet qui se lit d'une demande, extraits de les valeurs,communique avec les objets de modèle et donne de l'information à une page JSP.
- Vue: des Pages JSP.
- Modèle: Classes Java /Java Beans .. etc.
Le problème: Index.jsp
est le point de départ (page par défaut) dans mon site web. Ainsi, la Index.jsp
devient le contrôleur pour analyser la demande. Par exemple, la requête suivante:
index.jsp?section=article&id=10
est analysée dans l'index.jsp comme suit :
<div class="midcol">
<!-- Which section? -->
<%String fileName = request.getParameter("section");
if (fileName == null) {
fileName = "WEB-INF/jspf/frontpage.jsp";
} else {
fileName = "WEB-INF/jspf/" + fileName + ".jsp";
}
%>
<jsp:include page='<%= fileName%>' />
</div>
Ici, je ne peux pas forcer la servlet à un contrôleur, parce que le index.jsp
est le contrôleur ici, puisque c'est le point de départ.
Est-il une solution pour transmettre la demande à partir de index.jsp
à la servlet et ensuite revenir à la index.jsp
? Ou toute solution qui permet d'atteindre les MVC objectif - la servlet doit être le contrôleur?
Je pense que je vais faire un FrontPageController servlet comme page par défaut au lieu de index.jsp, mais je ne sais pas si c'est une parfaite idée?
OriginalL'auteur Abdullah | 2010-04-04
Vous devez vous connecter pour publier un commentaire.
Se débarrasser de
index.jsp
et juste laisser le contrôleur de servlet écouter sur unurl-pattern
d'intérêt. Le contrôleur lui-même doit transmettre la demande à la page JSP d'intérêt à l'aideRequestDispatcher
.Alternativement, vous pouvez laisser
index.jsp
de l'avant ou de les rediriger vers une URL qui est couvert par le contrôleur de servlet, qui à son tour montre la page "standard" (ce qui semble êtrefrontpage.jsp
).Cela dit, une bonne approche MVC, vous devriez avoir pas scriptlets dans des fichiers JSP. Chaque fois que vous devez écrire du raw du code Java à l'intérieur d'un fichier JSP qui ne peut pas être remplacé raisonnablement par taglibs (JSTL et ainsi de suite) ou EL, le code Java appartient en quelque sorte dans une vraie classe Java, comme une Servlet, Filtre, Javabean, etcetera.
À l'égard de la maison MVC approche, vous pouvez trouver cette réponse et cet article utile.
Si vous voulez un vrai
welcome-file
, alors vous pouvez garder leindex.jsp
, mais au lieu de le laisser en avant ou de les rediriger vers le niveau souhaité de la page par défaut. Lewelcome-file
ne peut malheureusement pas être une servlet. Ce point devrait au moins être clair: le contrôleur logique comme vous l'avez écrit dans la page JSP qui n'appartient pas, dans la page JSP. Il appartient à la servlet.OriginalL'auteur BalusC