Вы можете сделать это, если перехватываете (или переносите) поток вывода сервлета.Вы можете хранить содержимое, возвращаемое вашим приложением, для каждого URL-адреса запроса, поэтому вы сможете получать состояние приложения побайтно.
РЕДАКТИРОВАТЬ.
Здесь описано, как это можно реализовать.,Контроллер - это сервлет, который реализует doGet()
и / или doPost
.
Вот как выглядит сигнатура всех таких методов:
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
Типичный шаблон кода выглядит следующим образом:
// do somthing and get data.
resp.getOuputStream().write(somthing);
Вы можете написать свой собственный выходной поток (или модуль записи), который расширяет OutputStream и оборачивает 2 потока palyload: поток сервлета и поток файла.Он переопределяет свой метод записи следующим образом:
public abstract void write(int b) throws IOException {
fileOut.write(b);
servletOut.write(b);
}
Теперь каждый байт записывается как в веб-клиент, так и в файл.