转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 数据库 >> ORACLE >> 正文
servlet实现从oracle数据库的blob字段中读出文件并显示         ★★★★

servlet实现从oracle数据库的blob字段中读出文件并显示

作者:闵涛 文章来源:闵涛的学习笔记 点击数:934 更新时间:2009/4/22 21:58:34

/*
 * ReadFile.java
 *
 * Created on 2004年11月17日, 下午3:41
 */

package jgwl.app;

import java.io.*;
import java.net.*;

import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;
import jgwl.base.DataBaseConnection;
import java.io.*;
import oracle.sql.*;

/**
 *
 * @author  Roy Chen 
 * @version
 */
public class ReadFile extends HttpServlet {
   
    /** Initializes the servlet.
     */
    public void init(ServletConfig config) throws ServletException {
        super.init(config);
       
    }
   
    /** Destroys the servlet.
     */
    public void destroy() {
       
    }
   
    /** Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
     * @param request servlet request
     * @param response servlet response
     */
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
       
        byte[] buf=new byte[4096];
        try{
            Statement stmt=new DataBaseConnection().getStatement();
            ResultSet rs=stmt.executeQuery("select * from demo where id=23");
            response.reset();
            //response.setHeader("Content-Disposition", "attachement;filename=ss.doc;");
            //**如要浏览器直接另存为就不屏蔽上行,filename 为文件名
            response.setContentType("application/msword;charset=GBK");
            //**此处为文件的mime类型,可以在网上搜到,本例为word
            //application/vnd.ms-excel;charset=GBK  表示excel文件类型
           //application/vnd.pdf;charset=GBK           表示pdf文件类型

            ServletOutputStream out=response.getOutputStream();
           InputStream in;
           if(rs.next())
             in = blob.getBinaryStream();
            while(in.read(buf)!=-1){
                out.write(buf);
            }
           
            out.flush();
            out.close();
           //**以下为网上看到的写如文件的样例
           //==================
            // while(rs.next()) {
            //ServletOutputStream sout = response.getOutputStream();
            //InputStream in = rs.getBinaryStream(1);
            //byte b[] = new byte[0x7a120];
            //for(int i = in.read(b); i != -1;){
            // sout.write(b);
            //  in.read(b);
            // }
            // sout.flush();
            // sout.close();
            //}
           
            //====================
            //FileOutputStream file_out=new FileOutputStream("f:\\filename");
           
            //InputStream blob_in=blob.getBinaryStream();
            //int temp;
            // while((temp=blob_in.read())!=-1){
            // file_out.write(temp);}
            // blob_in.close();
            // file_out.close();
            //out.write(blob.getBinaryStream().);
            //out.flush();
            stmt.close();
        }catch (SQLException e){
            e.printStackTrace();
        }
        //PrintWriter out = response.getWriter();
        /* TODO output your page here
        out.println("<html>");
        out.println("<head>");
        out.println("<title>Servlet</title>");
        out.println("</head>");
        out.println("<body>");
        
        out.println("</body>");
        out.println("</html>");
         */
        //out.close();
    }
   
    /** Handles the HTTP <code>GET</code> method.
     * @param request servlet request
     * @param response servlet response
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        processRequest(request, response);
    }
   
    /** Handles the HTTP <code>POST</code> method.
     * @param request servlet request
     * @param response servlet response
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        processRequest(request, response);
    }
   
    /** Returns a short description of the servlet.
     */
    public String getServletInfo() {
        return "Short description";
    }
   
}



[系统软件]EXP-00008: ORACLE error 904 encountered的解决方…  [常用软件]PB7 连接 Oracle 的配置方法
[Web开发]oracle Export and Import 简介  [Web开发]ADO访问Oracle结果集的心得
[JAVA开发]JDBC+Hibernate将Blob数据写入Oracle  [JAVA开发]J2EE应用中与Oracle数据库的连接
[JAVA开发]Oracle Application Serve_  [其他]HP-UXrx2600B.11.22Uia64安装oracle9i9.2foria64手…
[其他]在RedhatEnterpriseserver3上安装oracle9iR2的注意…  [其他]PROC++批量导入导出ORACLE数据库表
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · Sql Server  · MySql
    · Access  · ORACLE
    · SyBase  · 其他
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台