У меня есть сервлет, который используется для извлечения данных из многих сторонних точек данных REST, интеграции всех данных и представления данных в формате HTML. У меня также есть фильтр со следующим потоком:
- Создайте запись о событии, когда запрос попадет в фильтр, и добавьте в запрос объект eventrecord.
- выполнить chain.doFilter, который позволяет сервлету добавлять дополнительные сведения к записи о событии.
- на обратном пути к браузеру filter получает объект eventrecord и регистрирует его.
Теперь, если я использую асинхронный сервлет с использованием AsyncContext context = request.getAsyncContext();
, который будет обращаться к тем же точкам данных REST, но когда данные будут готовы, он будет записывать в поток ответов вместо ожидания ответа всех точек данных REST, как бы я переписал свой фильтр? Будет ли он прикреплен к потоку, который отвечает за сброс данных из точек данных REST, чтобы после обработки и сброса всех данных он регистрировал запись события? Есть ли какой-либо общий шаблон, который я могу изучить, чтобы понять, как такие варианты использования могут обрабатываться с помощью асинхронных сервлетов Servlet 3.0? Я использую JDK 6.0, Tomcat 7.0.