当前位置:  技术问答>java相关

谁能告诉我怎么将数据库中的图片(blob数据类型),在jsp页面显示出来?? 100相赠!!!

    来源: 互联网  发布时间:2017-04-23

    本文导语:  网上给出的都是servlet的代码,但servlet怎么和数据库交互没有解决呀? 比如说我要显示id=007的图片(id是动态的),这个参数肯定是要传给servlet,是吧? 这个servlet怎么写?另外在jsp中是怎么调用的? 请给出详细的代...

网上给出的都是servlet的代码,但servlet怎么和数据库交互没有解决呀?
比如说我要显示id=007的图片(id是动态的),这个参数肯定是要传给servlet,是吧?
这个servlet怎么写?另外在jsp中是怎么调用的?
请给出详细的代码好么,谢谢!!

|
[转贴]
从数据库中读取并生成图片的Servlet 
(文/邵望)
大体思路 
1)创建ServletOutputStream对象out,用于以字节流的方式输出图像 
2)查询数据库,用getBinaryStream方法返回InputStream对象in 
3)创建byte数组用作缓冲,将in读入buf[],再由out输出 

注:下面的例程中数据库连接用了ConnectionPool,以及参数的获得进行了预处理 

package net.seasky.music; 

import javax.servlet.*; 
import javax.servlet.http.*; 
import java.io.*; 
import java.util.*; 
import java.sql.*; 
import net.seasky.util.*; 
import net.seasky.database.DbConnectionManager; 

public class CoverServlet extends HttpServlet { 
private static final String CONTENT_TYPE = "image/gif"; 
public void init(ServletConfig config) throws ServletException { 
super.init(config); 


public void doGet(HttpServletRequest request, HttpServletResponse response 
) throws ServletException, IOException { 
response.setContentType(CONTENT_TYPE); 
int albumID; 
ServletOutputStream out = response.getOutputStream(); 
try { 
albumID = ParamManager.getIntParameter(request,"albumID",0); 

catch (Exception e) { 
response.sendRedirect("../ErroePage.jsp"); 
return; 

try { 
InputStream in=this.getCover(albumID); 
int len; 
byte buf[]=new byte[1024]; 
while ((len=in.read(buf,0,1024))!=-1) { 
out.write(buf,0,len); 


catch (IOException ioe) { 
ioe.printStackTrace() ; 



private InputStream getCover(int albumID) { 
InputStream in=null; 
Connection cn = null; 
PreparedStatement pst = null; 
try { 
cn=DbConnectionManager.getConnection(); 
cn.setCatalog("music"); 
pst=cn.prepareStatement("SELECT img FROM cover where ID =?"); 
pst.setInt(1,albumID); 
ResultSet rs=pst.executeQuery(); 
rs.next() ; 
in=rs.getBinaryStream("img"); 

catch (SQLException sqle) { 
System.err.println("Error in CoverServlet : getCover()-" + sqle); 
sqle.printStackTrace() ; 

finally { 
try { 
pst.close() ; 
cn.close() ; 

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


return in; 


public void destroy() { 



附:
http://www.code-labs.com/project/projectinfo.php?id=44
http://www.yesky.com/20000927/118356.shtml

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 我的做好的APPLET中有SWING的组件,我在IE中不能显示出来,请告诉我在哪里下载插件?
  • 谁能告诉我哪儿有 j2sdk-1_3_1-win.exe 下载,最好告诉我url
  • 我的是red hat linux9,那位好心人告诉我如何在这个系统下搭建lamp平台,按照网上装了半天,总是出错,希望有人能告诉我一个可用的方法,详细点的,谢谢
  • 谁能告诉我类和库有什么区别,送分???????
  • 那里有IBM的WEBSPHERE下载,能告诉我下载的网址吗?
  • 请告诉我websphere4的详细安装步骤
  • 推荐一本电子版的xml与java编程的书,告诉我下载地址。
  • 谁能告诉我pop3邮件操作命令列表?
  • 50分相送,告诉我gcc地址
  • 请告诉一下,下载的.iso文件怎么用?见笑见笑
  • 谁能告诉我JSP中怎样使用类??先谢谢了
  • 有谁能告诉我如何在Solaris下播放音乐CD呀?
  • linux进入界面需要login我不知道,谁能告诉我,谢谢
  • 各位大侠,谁告诉我怎么屏蔽?
  • 各位,能否告诉小弟那里有《thinking in java》可以下载啊!thx
  • 谁能告诉我SCJP考题的网址吗?
  • 快告诉我怎么选择所选文本好吗?
  • 有谁告诉我如何使用main中的args进行输入输出的操作?
  • 谁能告诉我回车的ascii码是多少?(10进制的)
  • 哪位大哥,大姐知道国内那个网站有jdk1.4的API下载,告诉小弟一下
  • 谁告诉我什么地方有基于java或jsp的聊天室代码下。


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3