HTTPSessionオブジェクトがあり、その中にユーザー情報を保存したいと思います。
私には2つの選択肢があります
- ユーザーの電子メールを文字列として保存し、ユーザーをデータベースから取り出して、毎回フィールドを使用します。
- Userオブジェクトをセッションに保存し、JSTLサポートを取得します。たとえば、${User.firstName}を実行できます。
どちらがより良い解決策ですか?ベストプラクティス?
HTTPSessionオブジェクトがあり、その中にユーザー情報を保存したいと思います。
私には2つの選択肢があります
どちらがより良い解決策ですか?ベストプラクティス?
オブジェクトとして保存する方が良いと思います...
セッションの存続期間中にユーザー情報が変更されると予想されるかどうかによって、すべてが異なります。
変更されない場合、または古い値を表示しても構わない場合は、ユーザーをセッションに保存しても問題ありません。そうしないと、データベースから毎回最新のユーザー情報を取得する必要があります。
ただし、有効期限が切れて変更される可能性があるため、メールアドレスでユーザーを特定することは避けます。テクニカル ユーザー ID を使用し、その電子メールをユーザーのその他の情報として保存します。
パフォーマンスのボトルネックになる可能性があるため、セッションに大きなオブジェクトを格納する場合は注意が必要です。完全なオブジェクトの方が快適なソリューションかもしれませんが、格納しているオブジェクトが大きい場合、オブジェクトはシリアル化および逆シリアル化されるため、メモリとパフォーマンスの問題が発生する可能性があります。これは、シリアル化可能なオブジェクトのみをセッションに格納できることも意味します(つまり、シリアル化可能なインターフェイスを実装する必要があります)。
私は常にセッションでできるだけ少なく保存しようとします。あなたの場合、識別子を保存し、後でユーザーオブジェクトを検索します。たとえば、ユーティリティメソッドを使用します。