2

画像をアップロードし、別のページでスライドショーとして取得できる小さなサーブレットを作成しようとしています。

それらを WebApp フォルダーの外に保存することはできますが、それらを取得するときに、画像以外の他のコンテンツを持つ JSP の一部にする必要があります。現在、BufferedImage および ImageIO クラスを使用して、一度に 1 つずつ画像をストリーミングしています。

BufferedImage image = ImageIO.read(new File("D:\\"+file.getName()));
ImageIO.write(image, "jpg", response.getOutputStream());

ファイルは、コードの前半で JPEG ファイル タイプであることがチェックされます。

4

2 に答える 2

1

他のコンテンツを持つ JSP の一部にする必要があります。

JSP でイメージタグを使用する

<image src="/context-root/YourServlet?param=value" alt="blah blah"/>
于 2012-06-13T10:53:46.593 に答える
1

HTTP と HTML がどのように機能するかを理解する必要があります。

  1. ブラウザーが HTML ページを要求します (最初の要求)
  2. <img src="..."/>サーバーは、3 つのタグを含む HTML (および HTML のみ) を返します。
  3. ブラウザーは、最初の画像のバイトを取得する要求を送信します (2 番目の要求)。
  4. サーバーは最初の画像のバイトを送り返します
  5. ブラウザーは、2 番目のイメージのバイトを取得する要求を送信します (3 番目の要求)。
  6. サーバーは 2 番目のイメージのバイトを送り返します。
  7. ブラウザーは、3 番目のイメージのバイトを取得する要求を送信します (4 番目の要求)。
  8. サーバーは 3 番目のイメージのバイトを送り返します。

したがって、すべての<img src="..."/>タグを含む HTML ページを生成するサーブレットまたは JSP が必要です。このタグはそれぞれ、次の形式にする必要があります。

<img src="imageServlet?imageId=564"/>

また、 にマップされた 2 番目のサーブレットが必要です。このサーブレットはimageServlet、パラメーター値によって識別されるイメージのバイトをimageIdファイル システムから読み取り、それらのバイトを応答出力ストリームに書き込みます。

于 2012-06-13T11:26:43.533 に答える