Re[6]: Как можно узнать status code в servlet filter ?
От: York Россия  
Дата: 22.06.06 04:25
Оценка:
Здравствуйте, 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>>
Пищальников Юрий
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.