用JSP+Servlet实现二进制图像的动态显示(节选)

public void doGet(HttpServletRequest request, HttpServletResponse response) 

throws ServletException, IOException { 
//在数据库中照片的ID 
String PHOTOID = null; 
try { 
PHOTOID = request.getParameter("photoid"); 

catch(Exception e) { 
e.printStackTrace(); 

//连接数据库,自定义的数据库连接池管理类 
DBConnectionManager connMgr; 
connMgr = DBConnectionManager.getInstance(); 
Connection conn = connMgr.getConnection("comdb"); //属性文件中定义 
//用来存储照片数据的缓冲区 
byte [] buf=null; 
//扩展名可以从数据库得到,这里直接指定为JPEG 
String photoname="jpeg"; 
try{ 
//根据ID查找照片 
String searchSql="select photo from employee where id ="+PHOTOID; 
Statement stmt = conn.createStatement(); 
ResultSet RS_photo = stmt.executeQuery(searchSql); 
//将图片数据读入缓冲区 
if (RS_photo.next()){ 
buf = RS_photo.getBytes(1); 
}else 

buf = new byte[0]; 

}catch (Exception e){ 
//throw e; 

finally { 
connMgr.freeConnection("comdb", conn); 

//response.setContentType(CONTENT_TYPE); 
//告诉浏览器输出的是图片 
response.setContentType("image/"+photoname); 
//图片输出的输出流 
OutputStream out = response.getOutputStream(); 
//将缓冲区的输入输出到页面 
out.write(buf); 
//输入完毕,清楚缓冲 
out.flush(); 

/**Clean up resources*/ 
public void destroy() { 


编译后的Servlet getphoto.class也会自动放置在工程文件的WEB-INF下的classes目录下。 
2.3 JSP实现数据库图文信息浏览 
成功建立好Servlet后,下一步要做的工作就是将原先的HTML标记: 
<img src="../image/"+RS_photo.getString(photo_fiield) width="100" height="80">加以修改,替换为Servlet标记。即可以将下面的标记写于HTML或JSP中页面中  
<img border="0" src="/servlet/getphoto?photoid=XXX&ts=AAAAA" >  
其中XXX是图片的ID,AAAAA是时间戳,用来防止图片不刷新。如果我们要浏览数据库中的所有图文信息,可以加入适当的循环控制。在本文的示例WEB应用程序中作者加入了简单的表格控制来修饰输出的图文信息。

转载于:https://www.cnblogs.com/ytfei/archive/2005/04/13/136713.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值