2

使用此代码,我可以从 servlet 呈现图像,但我的业务说。我需要添加一个链接说“www.google.com”。如果我单击此图像。有什么方法可以访问图像带有链接。我需要直接从 servlet 中刷新它,不应该使用 jsp。任何人都可以帮助我。

    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>

顺便说一句,这sc.getRealPath()表明您的图像文件已经在公共 webcontent 文件夹中。为什么不直接使用<img src="image.JPG">呢?还是 servlet 过于简单化了?

于 2012-05-24T13:55:57.507 回答
0

如果我不正确,您可以返回带有图像链接的 html:

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

因此,您将拥有一个呈现 html 的 servlet 和第二个呈现图像的 servlet。为了防止浏览器中的图像缓冲,您可以添加随机参数 id = (new Random()).nextInt():

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

简而言之,您要添加一个链接,例如 google.com,然后单击它会显示图像。

首先,您不需要发送图像作为响应,而是需要锚链接并在该链接上添加 javascript 函数 onclick。

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 回答