2

サーブレットを使用してJFreeChartを使用してグラフを動的に生成し、続いてimgタグを使用してその画像をJSPに含める例をいくつか見てきました。例えば:

<img src="/MyChartServlet" width="400" height="300" border="0" alt="" />

JFreeChartを使用して画像を生成するサーブレットはうまく機能し、次のようにブラウザで直接呼び出すと画像を表示できます。

http:/myurl/MyChartServlet?id=274

問題は、JSPが画像を表示しないことです。実際、JSPはサーブレットを呼び出していません。サーブレットが呼び出されたときに表示されるデバッグエントリがログに表示されないため、これを知っています。

サーブレットでは、JFreeChartChartUtilities.writeChartAsJPEG()メソッドを使用して、応答の出力ストリームに画像を書き込みます。これは、画像をディスクに書き込みたくないためです。前述のように、サーブレットは直接呼び出されたときに正常に機能します。

私は何が欠けていますか?それとも、これを行うためのより良い方法はありますか?たぶん、単純な古いオブジェクトでグラフを生成でき、それをJSPに含めることができますか?どんな助けでもいただければ幸いです。

4

1 に答える 1

1

あなたはそれについて正しい方法で進んでいます。現在のコンテキストから何らかの相対パスの問題が発生している可能性があります。試してください。

<img src="http://<full path to your servlet>" ...

また、例には ?id=274 がありますが、img src にはありません。それが必要な場合は、それも入れてください。

サーブレットコードを投稿した場合、それは役立つかもしれませんが、サーブレットでコンテンツタイプが適切に設定されていることも確認してください

response.setContentType("image/jpeg");  
于 2012-09-10T15:30:08.787 に答える