Myślę, że nie możesz, jedyną inną alternatywą konfiguracji jest wyliczenie ścieżek, które chcesz filtrować, więc zamiast tego /*
możesz dodać kilka dla /this/*
i /that/*
itp., Ale to nie doprowadzi do wystarczającego rozwiązania, gdy masz dużo tych ścieżek.
To, co możesz zrobić, to dodać parametr do filtru, dostarczając wyrażenie (takie jak wyrażenie regularne), które jest używane do pomijania funkcji filtru dla dopasowanych ścieżek. Kontener serwletów nadal będzie wywoływał filtr dla tych adresów URL, ale będziesz mieć lepszą kontrolę nad konfiguracją.
Edytować
Teraz, gdy wspomniałeś, że nie masz kontroli nad filtrem, możesz albo dziedziczyć z tego filtru wywołujące super
metody w jego metodach, z wyjątkiem sytuacji, gdy istnieje ścieżka adresu URL, który chcesz pominąć, i postępować zgodnie z łańcuchem filtrów, takim jak proponowany @BalusC, lub zbudować filtr, który tworzy instancję filtru i delegatów w tych samych okolicznościach. W obu przypadkach parametry filtru obejmowałyby zarówno dodawany parametr wyrażenia, jak i filtr, z którego dziedziczono lub do którego delegowano.
Zaletą tworzenia filtru delegującego (opakowania) jest to, że można dodać klasę filtru opakowanego filtru jako parametr i użyć go ponownie w innych sytuacjach, takich jak ta.