HTTP セッションを使用するときは、次の指針に従います。
セッションを作成しすぎないようにします。セッション作成には一定の負荷が伴います。不要な場合にはセッションを作成しないでください。
セッションが不要になった時点で、javax.servlet.http.HttpSession.invalidate() を使用してセッションを解放します。
応答時間を短縮するために、セッションのサイズを小さく保ちます。可能であれば、セッションサイズを 7K バイト未満に保ちます。
JSP ファイルで <%page session="false"%> 指令を使用して、セッションが必要でないときに Application Server が自動的にセッションを作成することを避ける。
HttpSession で大きなオブジェクトグラフを避けます。大きなオブジェクトグラフは直列化を強制し、計算のオーバーヘッドを増加させます。一般則として、サイズの大きいオブジェクトを HttpSession 変数として格納しないでください。
HttpSession にトランザクションデータをキャッシュしないでください。HttpSession 内のデータへのアクセスはトランザクション方式ではありません。このオブジェクトをトランザクションデータのキャッシュとして使用しないでください。トランザクションデータはデータベースに保持し、エンティティー Beans を使用してアクセスするほうが適切です。トランザクションは失敗時に元の状態にロールバックされます。ただし、古くなっていて正しくないデータが HttpSession オブジェクトに残る場合があります。Application Server では、読み取り専用データへのキャッシュを使用したアクセスのために、「読み取り専用」の Bean 管理による持続性エンティティー Beans が用意されています。