JSP显示服务器图片

下面这段话是从别的地方看来的,很有用。
开发人员都知道标签,只要src指定相应路径就能够显示图片,但是这里有一个限制条件:如果项目被部署在服务器上(比如Java web项目部署在tomcat下)运行时,src路径只能指定项目中的图片。比如<img src="/common/java.jpg">表示显示该项目下common目录下的名为java.jpg的图片。而如果你希望显示服务器某个盘符下的指定图片,比如,即使该目录下有指定图片,这样写也是找不到该图片的,因为出于安全性考虑不能读取当前项目以外的数据。

所以如果要显示的话有两种办法。
1.把要引用的文件移到项目中,通过相对路径获取。
比如图片和jsp在同一个目录下。那么就直接写

<img src="pic.jpg"/>

就好了。

2.可以通过流的形式传入。img标签的src不是图片路径,而是一个servlet请求,该servlet通过java代码读取图片并以流的形式将图片数据打印到页面。

显示window.jsp页面:

<html>
    <body>
        <img src="show.jsp"/>
    </body>
</html>

输出图片show.jsp页面:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@page import="java.io.*"%> 
<%
    String filedownload = (String)request.getSession().getServletContext().getRealPath("\\")+"pic.jpg";
    FileInputStream ini = new FileInputStream(filedownload); // 以byte流的方式打开文件
    int i=ini.available(); //得到文件大小   
    byte data[]=new byte[i];   
    ini.read(data);  //读数据   
    response.setContentType("image/*"); //设置返回的文件类型   
    OutputStream outi=response.getOutputStream(); //得到向客户端输出二进制数据的对象   
    outi.write(data);  //输出数据   

    outi.flush();  
    outi.close();   
    ini.close();    
%>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值