中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档 | 网通镜像
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 编程语言 > Java > 数据库
从数据库中读取并生成图片的Servlet
作者:oneworld 整理 时间:2006-09-26 10:32 出处:JAVA中文站 责编:月夜寒箫
              摘要:从数据库中读取并生成图片的Servlet

作者:邵望


日期:2000-12-24 21:44:55


大体思路


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() {


}


}

 

 

关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有