从数据库中读出图片并显示的示例代码
<!--------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 zhangfan * @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" alt=从数据库中读出图片并显示的示例代码 src="http://192.168.1.50:8100/ShowImage?photoid=<%=i%>"> </td> </tr> <% i++; } %> </table> </body> </html>
相关推荐
Ajax无刷新加载新闻列表,新闻列表由ASP从Access数据库中读出,当前页面中,当鼠标滑向某链接时,会激活Ajax动作,读取对应的文章列表,本示例是学习Ajax技术的基础 ,对于Asp编程者应用ajax技术很有帮助作用。
证明能够从数据库读出对应的数据 private void buttonCheck_Click(object sender, EventArgs e) { OracleConnection connection = new OracleConnection(); connection.ConnectionString = "Data Source =
WPF的ListView简易操作示例,如何在代码中按需设置数据源、追加行或列。一个简单的示例说明,便于了解基本应用,供有需要的进行学习。
C# 读写二进制文件的一个示例,演示如何以二进制方式写入文件,以二进制方式读出文件,下方框主要用来显示读取出来的二进制文件。C#新手朋友朋友们可拿去研究文件操作,应该有用哦。
内容索引:脚本资源,Ajax/JavaScript,标签云,Tag jQuery标签云显示插件,Tag Cloud不能就是大家常说的标签云,它能将你网页上从数据库中读出的标签按字典排序,或者按照热门确定字体的大小和颜色。或是按你指定的...
一般来说,在网页程序中,尤其是涉及到数据库的读出过程中,往往最恼火的就是字符编码的问题,php4.0.6以上的版本提供了mb_convert_encoding 可以方便的转换编码。 具体如下: 复制代码 代码如下:<?php /* ...
4-05.aspx 读取传递的Session值并显示。 4-06.aspx 使用Response对象的Write()方法。 4-07.aspx 使用Response对象的End()方法。 4-08.html 以post方式提交数据到4-08.aspx的表单。 ...
在打上中文语言包,就可以帮您读出聊天中文内容。 客户端交互是使用WebService技术,WebService文件在源代码->Chat->PowerTalk-FetionInterFace.asmx,所以才配置PowerTalkClient.exe.config 本示例项目是单客服与多...
在打上中文语言包,就可以帮您读出聊天中文内容。 客户端交互是使用WebService技术,WebService文件在源代码->Chat->PowerTalk-FetionInterFace.asmx,所以才配置PowerTalkClient.exe.config 本示例项目是单客服与多...
在这里我要说明两点:1、我的示例文件总是有A和B分别是用C#和VB写的,演示的图片就用C#那一种的,都一样嘛,教程里面代码也是写两种用分割开,大家可以比较一下。2、我写教程的时候用的都是记事本来编写APS.NET大家...
在打上中文语言包,就可以帮您读出聊天中文内容。 客户端交互是使用WebService技术,WebService文件在源代码->Chat->PowerTalk-FetionInterFace.asmx,所以才配置PowerTalkClient.exe.config 本示例项目是单客服与...
需求是这样的,我有3张表,infor信息表,mconfig物料配置表,maaply物料申请表,要求是读出申请表中哪些人申请哪些物料 于是我先是这样写的: 代码如下: SELECT infor.name,infor.phone,infor.add, mconfig.mname,...
4-05.aspx 读取传递的Session值并显示。 4-06.aspx 使用Response对象的Write()方法。 4-07.aspx 使用Response对象的End()方法。 4-08.html 以post方式提交数据到4-08.aspx的表单。 4-08.aspx ...
在打上中文语言包,就可以帮您读出聊天中文内容。 客户端交互是使用WebService技术,WebService文件在源代码->Chat->PowerTalk-FetionInterFace.asmx,所以才配置PowerTalkClient.exe.config 本示例项目是单客服与多...