2009-08-09 12 views

答えて

3

サーブレット2.2はセキュリティ上の理由からこれを特に推奨していませんので、これを行うための正式な方法はありません。お勧めしませんが、Tomcatを使用している場合はManager.findSession()を使用することができます。

私は自分のアプリケーションからHttpSessionを削除しました。多くのサーバーが稼動しているときにセッションを同期させておくことは本当に難しいです。私たちは自分のマネージャーを書くことでそれを微調整しようとしましたが、それを正しく動作させることはできません。最後に、約500行のコードで独自のセッション実装を書いたので、はるかに優れています。

6

これを既に行っているメソッドは非推奨です。 しかし、HttpSessionListenerを使ってアイデアを実装することができます。新しいセッションが作成されたときにセッションIDをキーとしてHashMapに格納し、オブジェクトは実際のHttpSessionObjectになります。これで参照を得ることができます。

+0

はい私はそれを行うことができます。 しかし、何百万人ものユーザーがいる大きなWebサイトのアプリケーションを作成しています。これらのID /セッションをマップに格納することは賢明ではありません。 私はコンテナ自体からセッションを取得する必要があります。コンテナは、セッションを格納する方法について詳しく知っています。 –

+0

オブジェクトを格納すると、実際のオブジェクトを格納しないことを意味します。参照のみが格納されています。したがって、ストレージは最小限に抑えられます。 – Niger

+0

私は理解します。しかし、コンテナがあまり頻繁に使用されないセッションをDB /ファイルシステムにシリアル化するとどうなりますか? WebLogicがどのようにこれらのセッションを処理するのか分かりません。 コンテナからセッションを直接取り出すことができない場合は、このソリューションを最後に使用します。 –

関連する問題