0

私の image.jsp では、Facebook の写真が表示されます。たとえば、「画像を暗くする」などの機能をクリックできます。

<form name="frmImage" action="image" method="post">
    <input type="hidden" name="source" value="${param.source}" />
    <input type="submit" value="Darken" name="darken" />
</form>

ImageServlet 内で、画像を暗くするための画像処理を行います。BufferedImage を利用しました。

@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
        throws ServletException, IOException{

    String source= req.getParameter("source");
    BufferedImage img = null;
    URL url = new URL(source);
    img = ImageIO.read(url);

    if(req.getParameter("darken") != null){
        //do the processing
        this.darkenImage(img);
    }    
    getServletConfig().getServletContext().getRequestDispatcher("/image.jsp").forward(req, resp);
}

ここで問題が発生します。処理された画像を jsp ページに戻すにはどうすればよいでしょうか。

4

1 に答える 1

0

ステップのチェーンを逆にします。

  • サーブレットの場合: darken/url などで処理サーブレットを呼び出す「画像 URL」を用意するだけです。
  • JSP では、<img src="imageprocess?param1=...&param2=...">.
  • 画像処理サーブレットではImageIO.write(response.getOutputStream()).

最初のサーブレットを使用するかどうかは、ユーザーが決定します。忘れないでくださいresponse.setContentType("image/jpeg");

于 2013-09-26T12:51:34.087 に答える