网站首页
JSP空间
动态资讯
开源项目
技术文档
资源下载
J2EE资源
客户论坛
在线支付
 
  技术文档>>JAVA>>新手入门>>基础入门>查看文档  
  从数据库中读出图片并显示的示例代码     
  文章作者:未知  文章来源:水木森林  
  查看:103次  录入:管理员--2007-11-17  
 
  !-- -- -- -- -- -- -- -- -- -- -- -- -- --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 = ""; //定义查询语句 public string m_eorrmenage = ""; //定义错误信息变量 private inputstream in = null; //定义输入流 private int len = 10 * 1024 * 1024; //定义字符数组长度 //initialize global variables public void init() throws servletexception { /** * 连接数据库 */ 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>"); } /***************************************************** * 执行查询语句 *****************************************************/ 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(); //强制清出缓冲区 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>

注:此程序对于从数据库读取图片后写入文件请参考代码者留意
 
 
上一篇: [java技术] java常用术语解释    下一篇: 从网络上获取声音
  相关文档
在较量中携手前行——写给java 1.5和.net 2.0 11-17
jboss4.0数据源配置大全 11-16
课程介绍(10): sl-315 java server pages技术 11-17
教你一招:优化j2me程序大小的方法 11-17
java认证常见问题 11-17
negative_infinity 属性 11-16
j2ee运行环境性能大优化艺术之一 11-20
jboss:有状态会话bean及其多种调用方法 11-17
java的class文件转为exe文件的八种方法 11-16
java基础:java日期加减法 11-17
java究竟是什么? 11-17
高手为你解读j2ee开发过程中的异常处理 03-27
exec 方法 11-16
如何使用preparedstatement减少开发时间 11-16
按屏幕比例重新设定窗口的大小 11-17
创建通过 wdo访问数据的 jsf 应用程序(5) 11-17
eclipse快速上手指南之使用cvs(1) 11-17
面向对象思想之--理解类和对象 11-17
ajax和java快速开发平台thinkcap jx 11-17
苹果为os x 10.5/10.4升级java 增强兼容性 09-27
返回首页 | 关于我们 | J网章程 | JSP空间合租 | 客服中心 | 免责声明 | 常见问题 | 参观机房
本站主机空间代理至厦门市华众网络科技有限公司
《中华人民共和国增值电信业务经营许可证》
编号:闽B2-20050079
@2005-2008福建JSP技术网 版权所有 闽ICP备05000928号
技术电话:13616026886
邮箱:admin@fjjsp.com 站长QQ,点击这里给我发消息