上一篇:Servlet设计 >>
如何用jsp输出存在于oracle数据库Blob字段中的…
关键字:jsp,Blob
在web-oa系统中,档案管理好象不可或缺。其中员工照片常常做成这样:用户通过浏览器上传员工相片,服务端程序接收图片文件,保存到数据库中的某个表的Blob字段里(关于文件上传和blob字段的更新,请参考http://www.javaresearch.org/article/showarticle.jsp?column=106&thread=11003和http://forum.hibernate.org.cn/viewtopic.php?t=254)。通过(jdbc/jdo)和(jsp/servlet),服务器再把保存在Blob字段中的图片文件展现给用户。我这里给出一个关于展现的简单例子。
1.在数据库中建表,并且表要包含Blob字段。
2.用plsql developer这种客户端数据库工具,修改某条记录的Blob字段,存入一个jpg文件。
3.用jdbc或者hibernate获取某条记录的Blob字段数据。(请参考参考资料2)
4.写一个jsp文件,来输出图片。如下所示
//////////////////////cwry_pic.jsp/////////////////////////
<%@page import="java.io.*"%>
<%@page import="com.jagie.business.profile.*" %>
<%@page import="java.sql.Blob"%>
<%
response.reset();
//这个设置很重要,否则客户端浏览器不能识别输出内容,导致弹出下载的对话框。
response.setContentType("image/jpeg");
ServletOutputStream sos = response.getOutputStream();
//这里是用hibernate来根据id装载对象,你可以用别的方式如jdbc来组装对象,附文中有
//BaseInfo这个javabean的示意性代码.
BaseInfo bif= ProFileOperator.loadProFile(Long.valueOf("1"));
//输出图片
if(bif!=null&&bif.getPic()!=null){
Blob blob=(Blob)bif.getPic();
InputStream pi = blob.getBinaryStream();
int blobsize = (int)blob.length();
byte[] blobbytes = new byte[blobsize];
int bytesRead = 0;
while ((bytesRead = pi.read(blobbytes)) != -1) {
sos.write(blobbytes, 0, bytesRead);
}
pi.close();
sos.flush();
}
%>
发布这个jsp到你的web服务器,再用浏览器访问这个jsp页面,你就可以看到保存在Blob字段中的图片了。
附文:
///////////////////BaseInfo.java示意性代码///////////////////////
package com.jagie.business.profile;
public class BaseInfo{
//pk
private Long id;
//相片
private java.sql.Blob pic;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public java.sql.Blob getPic() {
return pic;
}
public void setPic(java.sql.Blob pic) {
this.pic = pic;
}
}
最后,希望这篇文章能对你有所启发,如有错误,敬请批评指正!
参考资料:
1:http://www-900.ibm.com/developerWorks/cn/java/l-imgtxt/index.shtml
2:http://forum.hibernate.org.cn/viewtopic.php?t=254
下一篇:关于JAVA的分页查询操作技术 >>
相关文章:
- · FTP的建立与维护
- · 用SSL加密增强FTP服务器安全性
- · 教你如何巧妙设定匿名FTP的安全
- · 创建IIS6.0下用户隔离模式FTP站点
- · Secure FTP:安全的企业级FTP服务器
- · BulletProof FTP Server:物美价廉
- · ArGoSoft FTP服务器:架设只要一分钟
- · FTP服务器架设--管理篇
- · FTP服务器架设--架设篇
- · FTP服务器架设--安全篇
- · serv-U FTP软件的攻击防守
- · FTP服务器快速架设全功略
- · IIS建立FTP就真的那么弱吗
- · 关于ftp服务程序中不安全因素研究
- · FTP服务器安全
- · FTP服务器端软件Serv-U教程(6)
- · FTP服务器端软件Serv-U教程(2)
- · FTP服务器端软件Serv-U教程(5)
- · FTP服务器端软件Serv-U教程(3)
- · FTP服务器端软件Serv-U教程(1)
- · FTP服务中允许上传权限存在的问题
- · 内网FTP服务器架设不完全解析
- · Linux下FTP的配置与应用
- · wingate FAQ大全
- · SyGate安装前奏
- · Leapftp的安全问题
- · FTP命令详解
- · 站点FTP参数设置
- · Linux服务器设置指南-代理接入服务器(2)4
- · Linux服务器设置指南-代理接入服务器(1)2
- · Linux下安PHP,APACHE,MYSQL,PERL方法3
- · 在Linux下建立强大的FTP搜索引擎3
- · 国产FTP助手--网络传神2
- · ISA下FTP的解决办法(4)
- · Linux服务器设置指南-代理接入服务器(2)1
- · MS Proxy用法(二)2
- · vsftpd服务器设置单用户登陆!!!!!
- · postfix + vm-pop3 + openmail 构造与系统用户…
