您现在的位置: 中国男护士网 >> 考试频道 >> 计算机等级 >> 二级辅导 >> JAVA >> 辅导 >> 正文    
  从数据库中读出图片并显示的示例代码 【注册男护士专用博客】          

从数据库中读出图片并显示的示例代码

www.nanhushi.com     佚名   不详 

  从数据库中读出图片并显示的示例代码

  < !-- -- -- --Servlet-- -- -- -- -->
  package Photo;
  import Javax.servlet.*;
  import javax.servlet.http.*;
  import java.io.*;
  import java.util.*;
  import java.lang.*;
  import java.sql.*;
  /**
  * <p>Title: </p>
  * <p>Description: </p>
  * <p>Copyright: Copyright (c) 2002</p>
  * <p>Company: </p>
  * @author unascribed
  * @version 1.0
  */

  public class ShowImage extends HttpServlet {
  private static final String CONTENT_TYPE = "image/*";
  /**
  * 定义数据库连接字符串,JDBC.odbc桥
  */
  private String driver_class = "Oracle.jdbc.driver.OracleDriver";
  private String connect_string =
  "jdbc:oracle:thin:xxw/xxw@192.168.1.50:1521:ORCL";
  Connection conn = null;
  ResultSet rs = null;
  Statement stmt = null;
  /********************************************
  * 定义应用变量
  ******************************************/
  private String SQLString = ""; //定义查询语句\\r
  public String M_EorrMenage = ""; //定义错误信息变量
  private InputStream in = null; //定义输入流\\r
  private int len = 10 * 1024 * 1024; //定义字符数组长度

  //Initialize global variables
  public void init() throws ServletException {
  /**
  * 连接数据库\\r
  */
  try {
  Class.forName(driver_class);
  } catch (java.lang.ClassNotFoundException e) {
  //异常
  System.err.println("databean():" + e.getMessage());
  }
  }
  //Process the HTTP Get request
  public void doGet(HttpServletRequest request, HttpServletResponse response)
  throws ServletException, IOException {
  response.setContentType(CONTENT_TYPE);
  PrintWriter out = response.getWriter();
  //在数据库中的照片的ID
  int PHOTOID = 0;
  /*********************************************
  * 接受上文传递的图片ID号
  * 上文传输文件名称为photoid
  *********************************************/
  try {

  PHOTOID = Integer.parseInt(request.getParameter("photoid"));
  SQLString = "select * from xxw_photo where p_id=" + PHOTOID;

  } catch (Exception e) {
  e.printStackTrace();
  response.setContentType("text/html; charset=gb2312");
  M_EorrMenage = "请输入图片ID号";
  M_EorrMenage =
  new String(M_EorrMenage.getBytes("ISO8859_1"), "GBK");
  out.println("<%@ page contentType=\'text/html; charset=gb2312\' %>");
  out.println("<html>");
  out.println("<head><title>id</title></head>");
  out.println("<body>");
  out.println("<p>" + M_EorrMenage + "</p>");
  out.println("</body></html>");

  }
  /*****************************************************
  * 执行查询语句\\r
  *****************************************************/

  try {
  conn = DriverManager.getConnection(connect_string);
  stmt = conn.createStatement();
  rs = stmt.executeQuery(SQLString);
  } //try
  catch (SQLException ex) {
  System.err.println("aq.executeUpdate:" + ex.getMessage());
  M_EorrMenage = "对不起,数据库无法完成此操作!";
  M_EorrMenage =
  new String(M_EorrMenage.getBytes("ISO8859_1"), "GBK");
  response.setContentType("text/html; charset=gb2312");
  out.println("<html>");
  out.println("<head><title>no_database</title></head>");
  out.println("<body>");
  out.println("<p>" + M_EorrMenage + "</p>");
  out.println("</body></html>");

  }
  /*********************************************
  * 将图片流读入字符数组中,并显示到客户端
  ********************************************/
  try {
  if (rs.next()) {
  in = rs.getBinaryStream("photo");
  response.reset(); //返回在流中被标记过的位置
  response.setContentType("image/jpg"); //或gif等
  // int len=in.available();//得到文件大小
  OutputStream toClient = response.getOutputStream();
  byte[] P_Buf = new byte[len];
  int i;
  while ((i = in.read(P_Buf)) != -1) {
  toClient.write(P_Buf, 0, i);
  }
  in.close();
  toClient.flush(); //强制清出缓冲区\\r
  toClient.close();
  } else {
  M_EorrMenage = "无此图片!";
  M_EorrMenage =
  new String(M_EorrMenage.getBytes("ISO8859_1"), "GBK");
  response.setContentType("text/html; charset=gb2312");
  out.println("<html>");
  out.println(
  "<head><title>this photo isn\'t have</title></head>");
  out.println("<body>");
  out.println("<p>" + M_EorrMenage + "</p>");
  out.println("</body></html>");
  }
  rs.close();
  } catch (Exception e) {
  e.printStackTrace();
  M_EorrMenage = "无法读取图片!";
  M_EorrMenage =
  new String(M_EorrMenage.getBytes("ISO8859_1"), "GBK");
  response.setContentType("text/html; charset=gb2312");
  out.println("<%@ page contentType=\'text/html; charset=gb2312\' %>");
  out.println("<html>");
  out.println("<head><title>no photo</title></head>");
  out.println("<body>");
  out.println("<p>" + M_EorrMenage + "</p>");
  out.println("</body></html>");
  }
  }

  //Clean up resources
  public void destroy() {
  try {
  conn.close();
  } catch (SQLException e) {
  System.err.println("aq.executeUpdate:" + e.getMessage());
  M_EorrMenage = "对不起,数据库无法完成此操作!";
  }
  }
  }

  <!---------------------------显示---------------------------------------------->
  <html>
  <head>
  <title>Untitled Document</title>
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
  <table>
  <%
  int i=1;
  while(i<3){
  %>
  <tr>
  <td colspan="3"> <img border="1" src="http://192.168.1.50:8100/ShowImage?photoid=<%=i%>"></td>
  </tr>
  <%
  i++;
  }
  %>
  </table>
  </body>
  </html>

  注:此程序对于从数据库读取图片后写入文件请参考代码者留意

 

文章录入:杜斌    责任编辑:杜斌 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
     

    联 系 信 息
    QQ:88236621
    电话:15853773350
    E-Mail:malenurse@163.com
    免费发布招聘信息
    做中国最专业男护士门户网站
    最 新 热 门
    最 新 推 荐
    相 关 文 章
    没有相关文章
    专 题 栏 目

      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)                            【进男护士社区逛逛】
    姓 名:
    * 游客填写  ·注册用户 ·忘记密码
    主 页:

    评 分:
    1分 2分 3分 4分 5分
    评论内容:
  • 请遵守《互联网电子公告服务管理规定》及中华人民共和国其他各项有关法律法规。
  • 严禁发表危害国家安全、损害国家利益、破坏民族团结、破坏国家宗教政策、破坏社会稳定、侮辱、诽谤、教唆、淫秽等内容的评论 。
  • 用户需对自己在使用本站服务过程中的行为承担法律责任(直接或间接导致的)。
  • 本站管理员有权保留或删除评论内容。
  • 评论内容只代表网友个人观点,与本网站立场无关。