Filter-mapping url-pattern, schließt die Unterverzeichnisse
Gibt es eine Möglichkeit, um eine filtermapping keine Unterverzeichnisse enthalten?
Zum Beispiel.
Habe ich .xhtml-Dateien in meinem root-Kontext, und ich habe auch einen Unterordner namens "test" mit den Dateien mit der gleichen Erweiterung. Ist es vielleicht zu map einen filter auf die Dateien im root-Kontext und nicht auf die Dateien in der "test" - Verzeichnis?
InformationsquelleAutor Stefan Rasmusson | 2010-08-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den
url-pattern
ist in der Tat restriktiver bei der passenden. Es erlaubt nur die genaue, Präfix oder suffix matchnig. Nicht Mitte/insgesamt/regex-matching. So z.B./*.xhtml
was Sie zu tun beabsichtigen ain ' T zur Arbeit zu gehen.Wenn Sie ausschließen wollen, XHTML in der
/test
Ordner nur dann Ihr bestes ist wirklich einFilter
hören auf eineurl-pattern
von*.xhtml
die nicht im wesentlichen die folgenden job indoFilter()
Methode:Den
HttpServletRequest#getServletPath()
im Grunde gibt den Teil der Anfrage-URI aus dem Kontext-Pfad auf.Können Sie, wenn erforderlich, konfigurieren Sie den Wert
/test
als<init-param>
des filters, so dass Sie kontrollieren können Sie den Wert aus dem inneren derweb.xml
statt im Filter-code.InformationsquelleAutor BalusC
Die Lösung, im Grunde müssen Sie Ihre eigene Filter-Klasse und definieren von Ausschluss-URLs als init-param für filter
Und den filter definieren, zuordnen und ausschließen von URLs in web.xml
InformationsquelleAutor softskin
Verwenden, was verfügbar ist für standard servlets/Filter, es gibt keinen direkten Weg, um auszuschließen das Unterverzeichnis, da
*.ext
Stil Zuordnungen Unterverzeichnisse enthalten. Sie könnten dies umgehen, indem Sie deklarieren einen anderen filter, die speziell behandelt die/test/*.xhtml
mapping und Griffe, die entsprechend.Das ist richtig. Ich dachte, dass der erste abgestimmt ist, die man verwendet, aber das ist nicht der Fall. Stattdessen könnte man hinzufügen, eine url-regex-check in Ihrer filter -, wenn Sie mit der regex, der filter führt es zu arbeiten, bevor die übertragung an die verbliebenen filter-Kette. Wenn die regex nicht, es passen nur die Delegierten der filter-Kette ohne jede Arbeit.
InformationsquelleAutor mdma
Können Sie ein url-mapping-Wert für jede Datei, die Sie im Rahmen Wurzel, daher wird der filter angewendet, um diese Dateien aber keine um die Dateien in dem test-Ordner (eigentlich ist es nur für jene bestimmte Dateien). Die folgenden arbeitete für mich
InformationsquelleAutor acaruci
Einige Container (wie Harz) definieren eine Erweiterung filter-mapping-definition in web.xml das erlaubt die Angabe
url-regexp
die es ermöglicht passend zu den urls basierend auf regulären Ausdruck. (Referenz). Siehe, wenn Ihr container hat so etwas wie dieses.InformationsquelleAutor Gopi