Здравствуйте, Blazkowicz, Вы писали:
B>Желания, у вас как бы это сказать по мягче. Необычные. Давайте с самого начала.
B>1) Клиент отправляет HTTP запрос на сервер.
B>2) Фильтр получает HTTP запрос и проводит над ними некоторые утилитные операции.
B>3) Сервлет получает HTTP запрос. Создает HTTP ответ, в том числе статус.
B>4) Клиент получает ответ.
B>Теперь вопрос. Куда мы хотим вклинится.
B>Если в пункт 2, то на этом этапе нет никакого статуса. Только запрос.
B>Если между 3 и 4, то эту логику надо помещать в конец п. 3. Потому что какой смысл работать сервлету если после него кто-то вклинится и выкинет всю его работу?
А разве так нельзя?
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws java.io.IOException, ServletException {
// 2) Фильтр получает HTTP запрос и проводит над ними некоторые утилитные операции.
// 3) Сервлет получает HTTP запрос. Создает HTTP ответ, в том числе статус.
chain.doFilter();
// ЗДЕСЬ ПРОВЕРЯЕМ СТАТУС
// 4) Клиент получает ответ. Если точнее, то ответ проходит через оставшиеся фильтры и идёт к клиенту.
}
Кстати, примерно такой код и приведён в указанной выше ссылке:
Q>Вот что нашёл Servlet response status Но у мeня нe работаeт всё-равно.
q5752558, у тебя происходит вызов public void setStatus(int statusCode)? А если смотреть с помощью отладчика, у ServletResponse после вызова chain.doFilter() установлен статус?
... << RSDN@Home 1.2.0 alpha rev. 650>>