0

DBに保存されているユーザーアバターをユーザーパーソナルページ(JSP)に表示しようとしています

1-ログイン要求を処理するサーブレットがあり、ユーザー Bean オブジェクトを生成します。(バイト配列としてのユーザーアバター、異なるページや場所に複数回表示される可能性があるため、DBから毎回読み取るよりもセッション属性を好む理由です)

2- User Bean は属性としてセッションに格納されます。

3-このバイト配列アバターをいつでも画像として表示するために、別のJSPまたはサーブレットが必要です。

4-このサーブレットを他のアイコン画像に再利用できるようにしたいのですが、そのため、セッション属性に依存してバイト配列を渡すことはできないと思いますか? (これについてはよくわかりません)

私が望むものを達成するためのデザインはありますか?または、単にセッション属性を使用してデータを渡す必要がありますか?

ありがとう

4

2 に答える 2

2

JSPで画像を表示するにはどうすればよいですか?

HTML<img>要素の使用。


私が望むものを達成するためのデザインはありますか?

そのためのスタンドアロンのサーブレットを作成するだけです。doGet()メソッド内のコードはわずか 2 ~ 3 行です。確かに、このサーブレットは DB から直接画像をストリーミングするために再利用できるわけではありませんが、別のサーブレットを作成することはできます。それは大きな問題ではありません。


または、単にセッション属性を使用してデータを渡す必要がありますか?

それが実際にセッション全体のデータを表し、パフォーマンス測定に基づいて、ユーザーのアバターをセッションに維持する方が DB から毎回ストリーミングするよりも高速であることが確認されている場合のみ。セッション スコープ内のデータはサーバーのメモリを蓄積するため、これらの画像が特定のファイル サイズを超えないようにしてください。

于 2012-06-27T00:54:45.293 に答える
0

アバターが非常に秘密ではない場合は、useridパラメーターを受け取り、DBから画像データを取得するサーブレットを作成します。埋め込みは次のようになります。

<img src="/avatarservlet?userid=XXX"/>

これにより、パフォーマンスの問題を除いて、ほとんどすべてが解決されます。セッションで画像データを渡す代わりに(baaaaaadのアイデア)、2つのオプションがあります。

  1. サーブレットにexpires/cacheヘッダーを追加して、ブラウザがキャッシュを実行するようにします。
  2. サーブレットはステートレスになるため、メソッドキャッシングの理想的な候補です。http://ehcache.org/documentation/recipes/spring-annotationsを参照してください
于 2012-06-27T06:23:04.830 に答える