最近做项目,HTML页面通过image标签带ID的方式向server端请求图片资源。
server端从数据库获得请求图片的二进制流,然后将该二进制流response到请求页面,该请求页的HTML image能够自动将二进制流在页面上显示成图片。
这不是什么技术难题,而是以前没有这么用过,现记录下我的测试Demo,以便日后参考。
1. 发起请求页面 //ImageClient.jsp
<%@ page language="java" pageEncoding="ISO-8859-1"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>ImageRequest</TITLE>
</HEAD>
<BODY>
<img src="http://127.0.0.1:8080/ImageServer.jsp"/>
</BODY>
</HTML>
2. 接受请求并返回结果页 //ImageServer.jsp
<%@ page language="java" pageEncoding="ISO-8859-1"%>
<%@ page import="java.io.*"%>
<%
System.out.print("enter...");
String filePath = "C:/Program Files/Tomcat/Tomcat-7.0.4/webapps/ROOT/ericsson.gif";
File file = new File(filePath);
InputStream fis;
try {
fis = new FileInputStream(file);
byte[] buf=new byte[(int)fis.available()];
fis.read(buf);
response.setContentType("application/binary;charset=ISO8859_1");
OutputStream outs = response.getOutputStream();
outs.write(buf);
outs.flush();
out.clear();
out = pageContext.pushBody();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
%>
3. 测试结果
![](http://hi.csdn.net/attachment/201012/31/0_1293763314d2B2.gif)