2016-07-13 11 views
1

I have seen answers jpgをレスポンスとして書き込む方法。 htmljpgの両方を書きたいと思います。Javaサーブレット:同じ応答でhtmlテキストとjpgを出力するように書き込みます。

は、私が今持っているもの:私は私がやって画像をフェッチすることはできません知っている

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
    response.setContentType("text/html"); 
    PrintWriter out = response.getWriter(); 
    out.println("<h1 style='text-align:center;'> Welcome to our BookStore </h1>"); 
    out.println("<p style='text-align:center;'><img src='book_store_image.jpg' alt='books img' style='width:304px;height:228px;'></p>"); 
    out.println("<form style='text-align:center;'>" + 
    "<a href='" + request.getContextPath() + "/books'>Buy books</a><br/><br/>" + 
    "<a href="+ request.getContextPath() + "/sellerPage'>Sell books</a>" + 
    "</form>"); 
} 

<img src='book_store_image.jpg'

質問:

が、私はそれのためにいくつかの出力ストリームを開く必要があります。setContentType("text/html");用と1つはimg

+1

"私は' ManoDestra

+0

あなたは1つの質問をしているようですが、実際には別の質問への回答を望んでいます。はい、あなたは 'data:image/...'メソッドを使うことができますが、あなたが本当に望むのは、サーバーからどこにURLを表示するかを決めることです。 – JayC

答えて

3

imgタグのsrc属性にbase64エンコードされた画像を転送し、data:image/...;base64を使用します。

<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUA 
 
AAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO 
 
9TXL0Y4OHwAAAABJRU5ErkJggg==" alt="Red dot" />

すべての要求1つの答えについてData URI Scheme

1

を参照してください。

htmlを配信します。新しいHTMLに新しいイメージが含まれている場合は、イメージを生成するサーブレットのURLを指定します。

イメージが同じページの場合、リクエストはAJAX呼び出しであって、ページ上のイメージを変更するだけで、テキストである必要があります。

それが動画像のための第2の要求を持っているが面倒ことであろう場合は、書くことができ埋め込ま<img src=[BASE64 IMAGE DATA]> - それは非常に巨大である:Base64に120キロバイトは160キロバイトのテキストです。

関連する問題