0

オブジェクトを に設定しましたHttpSession。このオブジェクトは class のインスタンスですUser。次に、別のクラスで次のようなことをしようとしています:

User user = session.getAttribute("userObject");

について読んだSerializableが、それがどのように機能するのか理解できない。これを行うための直接的で簡単な方法はありますか?

4

4 に答える 4

4

セッションを単純な type-unsafe と想像してくださいMap。期待するタイプを知っていれば、何でも入れることができ、取り出すことができます。したがって、Userオブジェクトを配置した場合は、次を使用します。

User user = (User) session.getAttribute("userObject");

Long(userId)を入れた場合

Long id = (Long) session.getAttribute("userObject");
User user = getUserById(id);
于 2012-07-04T21:11:42.703 に答える
1

あなたのコードは問題ないようです。必要なのはキャストだけです:

User user = (User) session.getAttribute("userObject");
于 2012-07-04T21:05:58.433 に答える
1

シリアライゼーションでこれを読んでください:

Java Web アプリケーションでシリアル化が使用される理由と方法は?

他の場所でこれを行っていると想定しています。

session.setAttribute("userObject", user);  
于 2012-07-04T21:07:48.943 に答える
0

クラスター化されたセッション環境で実行しようとしている場合にのみ、ここでシリアライズ可能が本当に重要になります。その場合、アプリ コンテナー (Tomcat など) は、セッションをレプリケートするために、セッション内のすべてのオブジェクトを他のサーバーにストリーミングできるバイト データに変換する必要があります。この場合、すべてのセッション値は Serializable を実装する必要があり、それ自体が Serializable を実装するプロパティのみを含む必要があります。

于 2012-07-04T23:35:34.997 に答える