下面这段话是从别的地方看来的,很有用。
开发人员都知道标签,只要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();
%>

1037

被折叠的 条评论
为什么被折叠?



