Angenommen wir einige Projekte mit folgenden Struktur:Best Practices der Implementierung von Front-Controller mit Java-Servlets
web articles main.jsp sidearts.jsp central.jsp forum main.jsp css js WEB-INF web.xml
Bitte beachten, dass wir noch nicht an diesem Punkt Front-Controller haben.
mit einigen Facette Nach der Bereitstellung (lassen Sie es ‚asdf‘ sein) wir unsere Seiten mit folgenden URLs zugreifen können:
http://localhost:8080/asdf/articles/main.jsp http://localhost:8080/asdf/forum/main.jsp and so on..
main.jsp erzeugt eine HTML und umfasst sidearts.jsp (mittels jstl c : Importieren oder auf andere Weise)
Und was passiert nach dem Hinzufügen von Front Controller?
Angenommen, wir Servlet ArticlesController haben, die für den Versand
einige Anfragen zuständig ist und die nächste Abbildung hat:
<servlet>
<servlet-name>ArtsController</servlet-name>
<servlet-class>org.forstackoverflow.ArticlesController</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ArtsController</servlet-name>
<url-pattern>/articles/*</url-pattern>
</servlet-mapping>
Wenn wir jetzt URL anfordern http://localhost:8080/asdf/articles/main
, ArticlesController behandelt diese Anfrage und versuchen, Artikel enthalten/main. jsp. Und an diesem Punkt beginnt der Infinity-Zyklus, da/arts/* ArtsController zugeordnet ist.
Was ist die korrekte Lösung des beschriebenen Problems?
Meine Varianten sind:
1) Mappings für alle jsp-Dateien machen (ich glaube nicht, dass es)
2) ändern Verzeichnisse Namen (Artikel-> Kunst acceptible ist); aber dann bekommen wir viele neue URLs (wie http://localhost:8080/asdf/arts/main.jsp
) und ich denke, dass es eine Quelle von Bugs sein kann.
Kommentieren zu Ich kann Beispiele von POEAA veröffentlichen, wenn ich nach Hause komme. –
Aus Neugier, aus welchem Grund möchten Sie Ihren eigenen (Servlet-basierten) Frontcontroller implementieren? Warum nicht für eines der vielen verfügbaren Open-Source-MVC-Frameworks entscheiden? –