#java #servlets #redirect #filter #servlet-filters
#java #сервлеты #перенаправление #Фильтр #сервлет-фильтры
Вопрос:
У меня есть класс фильтра сервлета. Внутри функции doFilter я хотел бы перенаправить на пользовательский URL после цепочки.Вызов doFilter(запрос, ответ).
Теперь я знаю, что я не могу вызвать обе цепочки.doFilter(запрос, ответ) и response.redirect(«www.customURL.com «) вместе. Но идея в том, что браузер перенаправляет на customUrl после завершения цепочки фильтров.
Как это может быть выполнено в функции doFilter моего класса фильтра сервлета (который, очевидно, реализует класс filter).
Спасибо.
Ответ №1:
Короткий ответ: вы не можете.
Несколько более длинный ответ: измените порядок ваших фильтров. Позаботьтесь о том, чтобы все фильтры, которые вы хотите обработать, были добавлены перед вашим перенаправляющим фильтром. Фильтры обрабатываются в порядке их добавления web.xml
.
Ответ №2:
Вы можете сделать это, если обернете объект ответа и реализуете любые вызовы, которые явно или неявно фиксируют ответ как NO-OPs . По сути, делая это, вы отбрасываете ответ, сгенерированный цепочкой фильтров.