| |
!-- -- -- -- -- -- -- -- -- -- -- -- -- --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>
注:此程序对于从数据库读取图片后写入文件请参考代码者留意
|
|