问题描述:通常情况下,我们在jsp页面上要想显示图片,直接用html的<img>标签即可,但是img标签的src属性的值为图片存放的相对地址。如果图片文件没有存放在整个工程中,此时就需要访问图片文件的绝对路径,将图片直接展现在页面上。

解决方案:可以通过流的方式展现在页面上。过程如下:首先通过绝对路径地址找到文件,然后再将文件以流的方式直接展现在前台页面上。

实现代码:

try {
            File file = new File(path);//此处path是图片的绝对路径
            String filename = file.getName();
            InputStream fis = new BufferedInputStream(new FileInputStream(file));
            byte[] buffer = new byte[fis.available()];
            fis.read(buffer);
            fis.close();
            response.reset();
            // 设置response的Header           
            response.addHeader("Content-Length", "" + file.length());
            OutputStream toClient = new BufferedOutputStream(response.getOutputStream());
            response.setContentType("p_w_picpath/jpeg");
            toClient.write(buffer);
            toClient.flush();
            toClient.close();
        } catch (IOException ex) {
            ex.printStackTrace();
        }

举例:页面上可以用html的<a>标签,href属性值为servlet方法,然后创建一个servlet,获取绝对路径下的此文件,用上述代码实现,就会以流的形式将图片展现在页面<a>标签处。