Wie kann ein Filter dem Stamm einer URL zugeordnet werden? Ich verwende Tomcat 7.0.2 und stelle eine Anwendung als ROOT.war bereit. Die Begrüßungsseite ist sign_in.xhtml. Ich möchte einen Filter immer ausführen, wenn der Client eine Anforderung für das Stammverzeichnis der Site sendet (d. H. Nur den Domänennamen) oder wenn der Client sign_in.xhtml anfordert. Hier ist, was ich bisher:Servlet-Filter-URL-Zuordnung
<filter>
<filter-name>My filter</filter-name>
<filter-class>com.myApp.myFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>My filter</filter-name>
<url-pattern>/sign_in.xhtml</url-pattern>
</filter-mapping>
Anträge auf sign_in.xhtml direkt, erfolgreich den Filter aufrufen, aber ich bin nicht sicher, wie die Anforderung von der Wurzel zu erhalten, den Filter zu berufen. Gemäß der Servlet-Spezifikation (Version 3,0)
<url-pattern>/</url-pattern>
Karten auf den Standard Servlet und eine leere Zeichenfolge Karten an die Wurzel. Hier ist der relevante Abschnitt aus der Spezifikation:
„Die leeren Zeichenfolge (“ ") ist ein spezielles URL-Muster, das genau abbildet Kontext root Anwendung, dh Anfragen der Form http://host:port//In diesem Fall wird die Pfadangabe. ist '/' und der Servlet Pfad und Kontext Pfad ist leere Zeichenfolge (""). "
Beide der folgenden URL-Muster bewirken jedoch, dass Tomcat eine Ausnahme auslöst.
Ich würde es wirklich schätzen, wenn jemand etwas Licht darauf werfen könnte. Danke.
Andrew
Danke, dass Sie sich dieses BalusC angesehen haben. Ich beabsichtige Umleitung zu erzwingen, wenn der Benutzer sein Passwort ändern muss. Ein Filter scheint die richtige Lösung zu sein. Ich denke, ich muss auf 7.0.3 warten oder mir etwas anderes einfallen lassen. Irgendwelche Ideen? –
Ein Filter, der auf '/ *' hört, der nur dann aktiv wird, wenn der Anforderungs-URI leer ist. – BalusC
Ich werde es versuchen und dann die URL-Patten aktualisieren, sobald der Tomcat-Bug behoben ist. –