Contrôleur Java Front [dupliquer]
cette question a déjà une réponse ici:
je pense implémenter le contrôleur Front dans mon application J2EE. Pourriez-vous s'il vous plaît suggérer la même chose avec peu de liens (avec des exemples de code source) et n'importe quelles normes à suivre?
meilleures salutations
2 réponses
pour commencer, créer un Servlet
qui écoute un certain url-pattern
, par exemple /pages/*
. Implémenter la méthode service()
pour rechercher l'action associée à la méthode request ( GET
, POST
, etc) et pathinfo (la partie URL après le servlet url-pattern
).
exemple de base:
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
View view = new View(request, response);
Action action = ActionFactory.getAction(request);
action.execute(view);
view.navigate();
}
l'interface Action
doit représenter une unité de travail. Vous pouvez le mettre en œuvre pour faire le nécessaire la logique d'entreprise:
public interface Action {
void execute(View view);
}
le ActionFactory
doit maintenir les classes implémentant Action
dans une sorte de Map<String, Action>
où la touche String
représente de moins en moins une combinaison de la méthode de requête et de pathinfo. Vous pouvez alors obtenir un Action
comme suit:
public static Action getAction(HttpServletRequest request) {
return actions.get(request.getMethod() + request.getPathInfo());
}
le View
doit représenter le contexte de la requête avec lequel le Action
peut travailler. Dans le navigate()
vous pouvez transmettre la demande à un JSP pour affichage:
public void navigate() {
String path = "/WEB-INF" + request.getPathInfo() + ".jsp";
request.getRequestDispatcher(path).forward(request, response);
}
qui devrait vous permettre de commencer (notez que j'ai laissé toutes les vérifications évidentes telles que les pointeurs null loin pour rendre les exemples moins encombrés, c'est à vous maintenant).
il y a cependant plus à prendre en compte dans l'ensemble de l'histoire, comme la validation, la conversion, la gestion d'événements, les mappages de valeurs d'entrée, la localisation, l'injection de dépendances, etc. C'est tous avec tous un bon travail. Le plus décent MVC cadres prend la plupart de ce tout en compte, comme Sun JSF , Apache Struts , MVC printemps , Stripes , etcetera. Si vous n'en avez jamais fait, je vous recommande vivement de le faire avant d'en faire pousser une, sinon vous finiriez avec une perte de temps.
Le web est plein de maturité java, frameworks web. Je ne vois pas de raison d'en créer une nouvelle avec deux exceptions: 1. Vous avez un environnement/flux très atypique et vous avez besoin de quelque chose de très, très spécifique à vos besoins. 2. Vous voulez simplement passer par l'exercice de la création d'un cadre pour apprendre les tenants et les aboutissants de httpservlet développement.
JSR 154 définit les spécifications servlet. Trouvez-le ici: http://jcp.org/en/jsr/detail?id=154
le ressort est l'un des cadres populaires actuels et celui qui fonctionne pour moi. Struts a été l'un des premiers cadres très populaires qui a commencé à décliner en popularité. Trouver une bonne liste de cadres avec une discussion à http://java-source.net/open-source/web-frameworks