Wie Sie Filter hinzufügen, um servlet-ohne änderung web.xml
Möchte ich die Möglichkeit zum ändern/konfigurieren von filtern auf eine andere Weise als web.xml. Hier ist eine statische Konfiguration von 2 filtern. Ich möchte die Möglichkeit haben, ein filter statisch konfiguriert und ermöglichen es, die filter zu laden, zusätzliche Filter. Ich wollte nur wissen, ob jemand weiß, lib, bereits dieser.
Verwendung der Servlet-API 2.5
<web-app>
...
<filter>
<filter-name>MyFilter1</filter-name>
<filter-class>com.me.MyFilter1</filter-class>
</filter>
<filter-mapping>
<filter-name>MyFilter1</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
...
<filter>
<filter-name>MyFilter2</filter-name>
<filter-class>com.me.MyFilter2</filter-class>
</filter>
<filter-mapping>
<filter-name>MyFilter2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
...
</web-app>
Ich habe gesehen, dies geschieht in Guice mit GuiceFilter wo der Filter konfiguriert sind zur Laufzeit.
InformationsquelleAutor der Frage TJR | 2011-08-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Genau das gleiche tun job, wie die container bereits tut. I. e. das Rad neu erfinden der Kette der Verantwortung design-Muster ist unter der Decke wurde von servlet-filtern.
mit jener kleinen helper-Klassen (die bei Bedarf gemacht werden
private static
geschachtelte Klassen der oben genanntenGodFilter
):und
Könntest du, wenn nötig auch füttern Sie eine XML-Konfigurationsdatei mit allen möglichen filtern, so dass Sie am Ende mit einfacher Konfiguration. Sie konnte reflektion verwenden, um Filter zu erstellen in
init()
IhrerGodFilter
.Oh nevermind, das ist es, was die
web.xml
und die container bereits tut...InformationsquelleAutor der Antwort BalusC
Servlet 3.0 hat die
@WebFilter
annotation um einen filter zu definieren. Keine Notwendigkeit zu erklären, es in web.xml mehr.Aber das laden eines filter ein filter wird nicht unterstützt. Sie konnte es selbst implementieren: es ist "nur" das chain of responsibility-Muster, aber warum sollte man?
InformationsquelleAutor der Antwort JB Nizet
Kann erreicht werden, in einfachen Schritten, selbst für die pre-3.0-Servlet-spec:
Ref: Xstream verwendet die gleiche Art von Muster für Serializer, auch nicht mit Servlet/Filter wenn. 🙂
InformationsquelleAutor der Antwort Puspendu Banerjee