2

With this code i am able to render a image from a servlet ,But my business says.I need to add a link say"www.google.com".If i click this image.Is there any way that i can access a image with the link on.I need to flush it directly from the servlet should not use jsp.Can any one please help me out.

    public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException {

        ServletContext sc = getServletContext();
        String filename = sc.getRealPath("image.JPG");

        resp.setContentType("image/jpeg");

        // Set content size
        File file = new File(filename);
        resp.setContentLength((int)file.length());

        // Open the file and output streams
        FileInputStream in = new FileInputStream(file);
        OutputStream out = resp.getOutputStream();

        // Copy the contents of the file to the output stream
        byte[] buf = new byte[1024];
        int count = 0;
        while ((count = in.read(buf)) >= 0) {
            out.write(buf, 0, count);

        }
        in.close();
        out.close();
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request , response);
        // TODO Auto-generated method stub
    }

}
4

3 に答える 3

1

<a>マークアップの要素の周りに要素を配置する必要があります<img>

<a href="http://www.google.com">
    <img src="imageServlet" />
</a>

ところで、あなたの画像ファイルは既にpublic webcontent フォルダーにあるsc.getRealPath()ことが示唆されています。代わりに使用しないのはなぜですか?それとも、サーブレットが大幅に単純化されていますか?<img src="image.JPG">

于 2012-05-24T13:55:57.507 に答える
0

要するに、あなたはgoogle.comと言うリンクを追加したいのですが、それをクリックすると画像が表示されます。

まず、応答として画像を送信する必要はありません。リンクを固定し、そのリンクをクリックしてjavascript関数を追加する必要があります。

out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 " +
                                        "Transitional//EN\">\n" +
                "<HTML>\n" +
                "<HEAD><TITLE>Hello WWW</TITLE></HEAD>\n" +
                "<BODY>\n" +
                "<a href='www.google.com'><img src='imagePath' /></a>\n" +
                "</BODY></HTML>");
于 2012-05-24T14:02:33.797 に答える
0

私が正しく理解できなかった場合は、画像にリンクを含む html を返すことができます。

<a href="http://www.google.com"><img src="yourImageRenderingServletPath"></a>

したがって、html をレンダリングする 1 つのサーブレットと、イメージをレンダリングする 2 番目のサーブレットがあります。ブラウザで画像がバッファリングされないようにするには、random param id = (new Random()).nextInt() を追加します。

<a href="http://www.google.com"><img src="yourImageRenderingServletPath?id=124"></a>
于 2012-05-24T14:00:09.223 に答える