Сериализация бинов в JSP - PullRequest
       19

Сериализация бинов в JSP

2 голосов
/ 06 февраля 2011

Почему иногда учебники заставляют бины реализовывать объект Serializable, а другие нет?Я знаю, что объект должен быть сериализован, когда я хочу отправить его через сеть, так что это доказывает, что каждый компонент, используемый в сессиях, должен реализовывать объекты Serializable, а компоненты, определенные на страницах JSP, не должны, поскольку они не передаются с использованием HTTP-реквизита

Ответы [ 2 ]

3 голосов
/ 06 февраля 2011

Я знаю, что объект должен быть сериализован, когда я хочу отправить его через сеть, так что это доказывает, что каждый компонент, используемый в сессиях, должен реализовывать Serializable

Вы, похоже, веритеобъекты в сеансе отправляются клиенту при передаче http?Это, конечно, не тот случай.Передается только идентификатор сеанса (обычно в файле cookie).Контейнер сервлета (например, Tomcat) просто сохраняет в памяти объекты сеанса (бины или нет), проиндексированные по идентификатору сеанса.

Кроме того, сериализация применяется не только к передаче по сети, но и для сохранения / загрузки в постоянное хранилище (например, на диск).

Теперь многие контейнеры сервлетов обычно разрешают (в зависимости от настроек) сохраняют объекты Session на диске, чтобы они могли выдержать перезапуск сервера приложений.Для этого сценария необходимо иметь возможность сериализации объектов сеанса.

В любом случае, реализация интерфейса Serializable - это хорошая вещь для каждого Java-бина, и обычно это просто.

1 голос
/ 06 февраля 2011

По определению, правильно сформированный Java Bean реализует Serializable (что в любом случае просто интерфейс тега ) или Externalizable (начиная с 1.4). Так что, если ваш класс bean не, это не правильно сформировано.

Однако, настолько много, что реализует реализует Serializable, вы часто можете обойтись без него, если у бина есть хорошо известный родительский класс.

...