fillter-mapping: möglichkeiten mit url-pattern

Status
Nicht offen für weitere Antworten.

tagtraeumer

Mitglied
Hi,
ich habe in der web.xml einen startfilter eingerichtet, der logs erstellen, letzte exceptions und noch ein paar andere dinge bereit stellen soll.

[HIGHLIGHT="XML"]<filter>
<filter-name>StartFilter</filter-name>
<filter-class>com.p2_0.web.application.StartFilter</filter-class>
</filter> soll,
<filter-mapping>
<filter-name>StartFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>[/HIGHLIGHT]

mein problem ist aber, dass wirklich alle dateien durch den filter gehen. bei servlets und meinem struts servlet 'action' ist das ja auch sinn der sache, doch leider werden auch Bilder, JavaScript und CSS-Dateien durch den filter geleitet, das ist nicht nur nicht ganz so ideal, da viele logs erstellt werden, die ich garnicht brauche, sondern wird sicher auch etwas auf die performance drücken, oder etwa nicht?
ich kann die klar auch alle im filter ausschließen, gibt es aber auch per filter-mapping die möglichkeit als url-pattern reguläre ausdrücke oder so zu nutzen oder spezielle datentypen auszuschließen? ich hab bei google nichts besonderes gefunden.
 
Zuletzt bearbeitet von einem Moderator:

gex

Bekanntes Mitglied
Hi

Ne sowas gibts leider nicht (ausser bei Caucho's Resin...). Ich hätte das auch mal gewollt ;-).

Mein Ansatz war dann den Filter mit einem param zu initialisieren, dessen Wert die exclusions enthielt,
separiert durch semikolons. Im Filter musst du dann aufgrund dieses Delimiters splitten, kannst dir ein HashSet oder
ähnliches aufbauen, wogegen du ganz zu Beginn des Filters überprüfst, ob die URL mit einem dieser Exclusions beginnt,
falls dem so ist, einfach nur chain.doFilter(request, response); ausführen. Dann verlierst du kaum Performance.

Falls du Regex gebrauchen möchtest, kannst du den Init-Param ja noch weiter auswerten.

also
Code:
<init-param>
  <param-name>exclusion</param-name>
  <param-value>/javascript;/css;..</param-value>
</init-param>
 

tagtraeumer

Mitglied
oh danke garnicht mitbekommen, dass schon eine antwort da ist.
auf der übersicht stand immer nur mein Nick, wahrscheinlich noch im Cache gewesen.

Ich werde das auf jeden fall mal ausprobieren, nun weiss ich zumindest, dass es erstmal nicht anders geht.
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben