チュートリアルでは、Bean に Serializable オブジェクトを実装させる場合とそうでない場合があるのはなぜですか? オブジェクトをネットワーク経由で送信する場合は、オブジェクトをシリアル化する必要があることを知っています。したがって、セッションで使用される各 Bean はシリアル化可能なオブジェクトを実装する必要があり、JSP ページで定義された Bean は HTTP 要求セットを使用して転送されないため、実装しないでください。
2 に答える
ネットワーク経由でオブジェクトを送信する場合は、オブジェクトをシリアル化する必要があることを知っているので、セッションで使用される各 Bean が Serializable を実装する必要があることを証明します
セッション内のオブジェクトが HTTP 転送でクライアントに送信されると信じているようですか? それは確かにそうではありません。転送されるのは、セッション ID (通常は Cookie 内) のみです。サーブレット コンテナー (Tomcat など) は、セッション ID によってインデックス付けされたセッション オブジェクト (Bean かどうかに関係なく) をメモリに保持するだけです。
さらに、シリアル化はネットワーク転送に適用されるだけでなく、永続ストレージ (ディスクなど) への保存/ロードにも適用されます。
現在、多くのサーブレット コンテナーでは通常、(設定に応じて) セッション オブジェクトをディスクに永続化できるため、アプリケーション サーバーの再起動後も存続できます。そのシナリオでは、セッション オブジェクトをシリアライズ可能にする必要があります。
とにかく、Serializable インターフェースを実装することは、すべての Java Bean にとって良いことであり、通常は簡単です。
定義上、整形式の Java Beanは(とにかく単なるタグ インターフェイスです) または(1.4 以降) を実装します。Serializable
Externalizable
ただし、 Serializable を実装するものは非常に多いため、Bean に既知の親クラスがある場合は、多くの場合それを回避できます。