я думаю, что это невозможно, потому что это фильтр сервлетов, который будет применяться после применения сервлета Mapper. в общем, сервлет отображения запросов считает, что он завершен, и передает запрос обратно в контейнер сервлета.
просмотр имен работает только ВНУТРИ весны - вне весны, в контейнере сервлета вам придется говорить об URL, а не просматривать имена.
перенаправление на конкретный URL будет работать. для этого вы должны знать о различиях между перенаправлением и переадресацией.
редирект отправляет клиенту следующий заголовок:
Расположение: http://server/new/location
вместе с кодом состояния 301 (постоянное перенаправление, чтобы сообщить клиенту, что он может кэшировать эту информацию) или 307 (временное перенаправление, чтобы сообщить клиенту, что он должен запросить снова в следующий раз, потому что перенаправление может измениться)
Переадресация на диспетчере запросов в основном имитирует новый запрос, и вы можете отправить запрос ЛЮБОМУ сервлету в том же контейнере. это означает, что вы должны ТАКЖЕ учитывать контекстный путь, то есть ответ, который @iimuhin дал:
response.sendRedirect(
request.getContextPath() +
getFilterConfig().getInitParameter("errorPage"));
на самом деле правильный путь. Вы можете (должны) добавить протоколирование, чтобы увидеть, что на самом деле происходит и какие пути на самом деле используются.
также - вы должны знать о буферизации. ответ сервлета обычно буферизируется, и клиенту ничего не отправляется, пока не будет заполнен буфер или не завершится вся обработка.
когда он очищен, заголовки записываются первыми. это означает, что изменение заголовков ПОСЛЕ того, как ответ был сброшен, невозможно, поскольку они уже отправлены.
это причина, по которой сервлеты могут вызывать сбрасывание, но обычно этого не происходит.
в вашем случае вы можете увеличить размер буфера в ответе:
response.setBufferSize(int size)
перед вызовом chain.doFilter (), чтобы избежать преждевременного сброса.