Сериализация и сохранение объекта Controller - PullRequest
0 голосов
/ 04 января 2012

Содержит ли объект все состояния страниц рабочего стола (например, снимок) Что на самом деле хранит объект контроллера.

Есть ли способ сохранить полные данные и компоненты на странице в объекте. Я хочу получить то же состояние страницы.

Это должно очистить проблему: Я хочу сохранить полное состояние определенной части веб-приложения, а затем, когда я перезагружаю страницу, я хочу установить представление части, которую я сохранил ранее.

1 Ответ

0 голосов
/ 04 января 2012

Вы можете сделать это, если перехватываете (или переносите) поток вывода сервлета.Вы можете хранить содержимое, возвращаемое вашим приложением, для каждого 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);
}

Теперь каждый байт записывается как в веб-клиент, так и в файл.

...