Wie kann ich konfigurieren web.xml url-Muster zu bekommen angegebenen Ort?
Ich soll Anfragen zu /Projects
und /Projects/SomeProject/
mit 'ProjectsServlet', aber zurück 404
Fehlercode beim Zugriff auf /Projects/SomePath/SomeOtherSubPath
.
Projekt-Namen werden Häufig aktualisiert, so will ich nicht umschreiben, die mein Servlet-code jedes mal, wenn es passiert, und ich habe geschrieben, einfachen parser der Projekt name und servlet lädt die angegebene Seite, wenn es vorhanden ist.
Also, wie kann ich schreiben in der config web.xml? Nun sieht es so aus:
<servlet>
<servlet-name>ProjectsServlet</servlet-name>
<servlet-class>com.example.ProjectsServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ProjectsServlet</servlet-name>
<url-pattern>/Projects/*</url-pattern>
</servlet-mapping>
Aber es versucht auch, um allen Anfragen nach 'Projekte' root-Verzeichnis /Projects/.../...
Im besten Fall möchte ich schreiben-Zuordnung wie dieses:
<servlet-mapping>
<servlet-name>ProjectsServlet</servlet-name>
<url-pattern>/Projects</url-pattern>
<url-pattern>/Projects/*/</url-pattern>
</servlet-mapping>
Aber es ist auch nicht korrekt. Wie kann ich das gleiche tun?
InformationsquelleAutor rand0m86 | 2013-09-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sie können mehrere url-patterns in einem servlet-mapping. Sie benötigen mehrere servlet-mappings mit dem gleichen servlet-name, aber unterschiedliche url-pattern.
Mein Vorschlag ist, ordnen Sie Ihre servlet für alle /Projekte/* - URLs und implementieren einfache servlet-filter, die Rückkehr 404 für beliebige URLs mit Unterpfad (diese Prüfung kann vorgenommen werden, in Ihrem servlet als gut, aber wenn Sie nicht ändern Sie die servlet, filter).
InformationsquelleAutor Kojotak
Als mein Verständnis der Frage:
wenn du willst das Ding als
Können Sie zwei Servlet-mappings als:
- Und Sie können auch anzeigen auf einen filter(ProjectsServletFilter) für die urls wie "/Projekte/*/" und verarbeiten der Anforderung( Entscheiden Sie hier, ob senden müssen, 404 oder weiterhin die Kette zu einem anderen servlet etc.) in diesem filter.
Sowieso, die "/Projekte" url servlet wird ausgeführt, wenn die oben genannten filter (ProjectsServletFilter) erfolgreich ausgeführt, ohne wieder alle 404 Fehler-code usw.
Ich hoffe es hilft dir.
InformationsquelleAutor venky