1

OK、これが私が抱えている問題です。HDDに保存したくないイメージ(パラメーターに基づかない)を動的に作成するサーブレットがあります。

その画像を表示したいHTMLテンプレート(JSP)もあります。

次のように画像を作成します。

protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    PieDataset dataset = createDataset();
    JFreeChart chart = createChart(dataset, "OS Usage");

    resp.setContentType("image/png");
    ChartUtilities.writeChartAsPNG(resp.getOutputStream(), chart, 500, 400);

    req.getRequestDispatcher("report.jsp").forward(req, resp);
}

私のJSPは次のよ​​うになります。

<body>
    <h1>OS usage</h1>
    <p>Here are the results of OS usage in survey that we completed.<br>
    <p><img alt="OS usage" src="/reportImage">
</body>

そのコードを実行すると、コードを記述した方法から、HTMLを含まない画像のみで、期待どおりの結果が得られます。

私の質問は、HTMLもレンダリングするようにそれを行う方法です。

どうも。

4

2 に答える 2

3

次の 2 つのサーブレットが必要です。

  • (JSP に転送することによって) HTML ページを生成するための 1 つ。この生成されたページには が含まれています<img src="/reportImage" .../>。ブラウザがこのタグを認識すると、2 番目のリクエストを URL に送信します/reportImage
  • /reportImageURLにマップされた画像を生成するためのもの。このサーブレットは、イメージのバイトのみを応答出力ストリームに送信する必要があります。JSP に転送してはなりません。
于 2012-05-29T11:03:43.350 に答える
0

サーブレットでカウント = 0 を宣言します。画像を取得した場合、カウント値をインクリメントします。現在、値は 1 です。jsp コードに条件を 1 つ入力します。

鬼ごっこ

于 2012-05-29T11:21:39.880 に答える