Wie entwickle ich JSP / Servlets Web App mit MVC-Muster?

8

Ich entwickle eine JSP / Servlet Web App (keine Frameworks). Ich möchte das MVC -Muster verwenden. Ich werde mein Projekt so gestalten:

  1. Controller : Ein Servlet, das eine Anforderung liest, die Werte extrahiert, mit Modellobjekten kommuniziert und Informationen an eine JSP-Seite weitergibt.
  2. Anzeigen : JSP-Seiten.
  3. Modell : Java-Klassen / Java-Bohnen .. etc.

Das Problem: Index.jsp ist der Ausgangspunkt (Standardseite) meiner Website. Also wird Index.jsp zum Controller, um die Anfrage zu analysieren. Zum Beispiel die folgende Anfrage:

%Vor%

wird in index.jsp wie folgt analysiert:

%Vor%

Hier kann ich das Servlet nicht dazu zwingen, ein Controller zu sein, weil index.jsp hier der Controller ist, da es der Startpunkt ist.

Gibt es eine Lösung, um die Anfrage von index.jsp an das Servlet weiterzuleiten und dann zu index.jsp zurückzukehren? Oder irgendeine Lösung, die das MVC Ziel erreicht - das Servlet sollte der Controller sein?

Ich denke daran, ein FrontPageController-Servlet als Standardseite anstelle von index.jsp zu erstellen, aber ich weiß nicht, ob es eine perfekte Idee ist.

>     
Abdullah 04.04.2010, 18:35
quelle

1 Antwort

11

Befreien Sie sich von index.jsp und lassen Sie das Controller-Servlet nur auf eine bestimmte url-pattern von Interesse warten. Der Controller selbst sollte die Anfrage mit RequestDispatcher an die gewünschte JSP-Seite weiterleiten.

%Vor%

Alternativ können Sie index.jsp an eine URL weiterleiten oder umleiten, die vom Controller-Servlet abgedeckt wird, die ihrerseits die "Standard" -Seite anzeigt (die frontpage.jsp zu sein scheint).

Bei einem korrekten MVC-Ansatz sollten Sie keine Scriptlets in JSP-Dateien haben. Wann immer Sie rohen Java-Code in eine JSP-Datei schreiben müssen, die nicht sinnvoll durch taglibs ersetzt werden kann ( JSTL und so weiter) oder EL, dann gehört der bestimmte Java-Code irgendwie in eine echte Java-Klasse, wie ein Servlet, Filter, Javabean, und so weiter.

In Bezug auf den selbst entwickelten MVC-Ansatz finden Sie diese Antwort und < a href="http://www.javaranch.com/journal/200603/frontman.html"> Dieser Artikel ist ebenfalls hilfreich.

    
BalusC 04.04.2010, 21:03
quelle