Java-Filter URL-Muster-spezifische request-params
Haben wir eine situation, wo wir wollen, zu verwenden, filter für URLs, die einige bestimmte request-Parameter, e ist.g:
http://mydomain.com/?id=78&formtype=simple_form&....... http://mydomain.com/?id=788&formtype=special_form&.......
und so weiter, id
abgerufen werden, zur Laufzeit möchte ich filter konfigurieren im web.xml
nur, wenn formtype=special_form
. Wie sollte die Lösung? Kann der Filter konfiguriert werden, mit regex-Muster?
Warum wollen Sie, um es in der filter-mapping? Es ist nicht möglich etwas anderes als " * " - und fast nichts kann überprüft werden, in filter-doFilter Methode sowieso. Die einzige Bedingung, wo die regexp-filter-mapping wäre sinnvoll, wenn Sie keinen Zugriff auf den filter der Quelle. Ist das Ihr Fall?
Sie haben, um zu sehen, einige wirklich schlechte code, aber es ist da draußen. Ich habe ein java-web-app, die ich geerbt, dass ich Sie neu schreiben müssen. Es gibt keine servlets! Sie gelangen auf das jsps direkt, ausserhalb des web-inf-Verzeichnis, also musste ich schreiben, ein filter zum abfangen und blockieren bestimmte url-Anfragen.
Sie haben, um zu sehen, einige wirklich schlechte code, aber es ist da draußen. Ich habe ein java-web-app, die ich geerbt, dass ich Sie neu schreiben müssen. Es gibt keine servlets! Sie gelangen auf das jsps direkt, ausserhalb des web-inf-Verzeichnis, also musste ich schreiben, ein filter zum abfangen und blockieren bestimmte url-Anfragen.
InformationsquelleAutor Rohit Desai | 2010-03-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
Soweit ich weiß, gibt es keine Lösung für das zuordnen von Anforderungen an Filter der query-string direkt in
web.xml
. Man könnte also registrieren Sie die filter in Ihremweb.xml
mit init-params, um den filter konfigurierbar und legen Sie ein Muster übervoid init(FilterConfig filterConfig)
in Ihremjavax.servlet.Filter
Umsetzung.Die Konfiguration Aussehen würde, wie Sie dies in Ihrem web.xml:
Literaturhinweise:
http://java.sun.com/javaee/5/docs/api/javax/servlet/Filter.html
Ein filter unterstützt, die die Muster, wie man es von Apache mod_rewrite (das
RewriteRule
Sachen und so weiter) ist hier erhältlich: tuckey.org/urlrewriteInformationsquelleAutor stefanglase
Müssen Sie analysieren die URL-params in den Körper des filters, nicht in web.xml;
Ich habe so ein Ding, aber ich habe eine phase-listener, ein Konfigurations-Eintrag (in einer Konfigurationsdatei), die zugeordnete URL-params zu FQN der Klassen, die mit einer bestimmten "Aktion" (durch die Aktion meine ich einen URL-Parameter von GET/POST), als die phase-listener würde analysieren alle der URL-params aus jeder GET/POST und senden Sie jeden von Ihnen an einen Dispatcher. Der Dispatcher hat die Aufgabe, rufen Sie die rechts-handler (singleton-Objekt entsprechend den FQN für, dass die URL-Parameter). Der handler dann nicht einfach der spezifischen Sache mit den URL-Wert, die er erhält.
Dasselbe kann gemacht werden, indem Sie mithilfe eines filters statt des phase-Listeners.
InformationsquelleAutor Paul Ianas