Как исключить конкретный формат URL-адреса из фильтра?Исключить конкретный URL-адрес в сервлет-фильтр
Есть ли стандартный метод или альтернативное решение?
Как исключить конкретный формат URL-адреса из фильтра?Исключить конкретный URL-адрес в сервлет-фильтр
Есть ли стандартный метод или альтернативное решение?
Это невозможно через конфигурацию <url-pattern>
.
Вы имеете в основном 2 варианта:
Make <url-pattern>
более конкретны. Например. переместите все те ресурсы, которые действительно нужно отфильтровать в определенной папке, например /app
, и установите <url-pattern>
на /app/*
. Затем вы можете просто поместить исключенную страницу за пределы этой папки.
Проверьте URI запроса в фильтре и просто продолжите цепочку, если она представляет исключенную страницу.
E.g.
String loginURL = request.getContextPath() + "/login.jsp";
if (request.getRequestURI().equals(loginURL)) {
chain.doFilter(request, response);
}
else {
// ...
}
Возможный дубликат [Могу ли я исключить какие-то конкретные адреса из внутри <фильтр-отображение>?] (Http://stackoverflow.com/questions/3125296/can-i-exclude-some- бетон-URLs-из-URL-шаблон внутри фильтр-картирование) –
beat