CODE: 
#" \0r&U  --------------------------------------------------------------------------------
  PF{M,d  < !-- -- -- -- -- -- -- -- -- -- -- -- -- --servlet-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -->
 at)6` 4{~  package Photo;
 ;U(U^g|z  import javax.servlet.*;
 YY]n8%e  import javax.servlet.http.*;
 V<rUD >  import java.io.*;
 .]<Ksk9+_  import java.util.*;
 9=24T(bgF  import java.lang.*;
 Qy@tQb Z{)  import java.sql.*;
 pjh%7mL(  Ap!,2V:) 4  /**
 2A#SGjZ  * <p>Title: </p>
 G_T7Ths/XF  * <p>Description: </p>
 N1ML0v  * <p>Copyright: Copyright (c) 2002</p>
 l!D@: /  * <p>Company: </p>
 .?.*W1  * @author unascribed
 7*}o O<  * @version 1.0
 FEKrWSXs  */
 ^Mv^*gmr"  I'1uAX`vn  public class ShowImage extends HttpServlet {
 x6 xu#0E j    private static final String CONTENT_TYPE = "image/*";
 $ i0(boJ    /**
 Sx3_ Sw%m    * 定义数据库连接字符串,jdbc.odbc桥
 WD[Ig=K    */
 flx6{    private String driver_class = "oracle.jdbc.driver.OracleDriver";
 T2?~~2Jd    private String connect_string =
 Cr#{YAWL      "jdbc:oracle:thin:xxw/xxw@192.168.1.50:1521:ORCL";
 *K5*Y$ws    Connection conn = null;
 N!0 'Lu    ResultSet rs = null;
 l Fto^*    Statement stmt = null;
 N8UlS&)9    /********************************************
 C%pY6_Z    * 定义应用变量
 .V']k:2oQ    ******************************************/
 a\0t/zL2S    private String SQLString = ""; //定义查询语句
 \BhW3< ,    public String M_EorrMenage = ""; //定义错误信息变量
 J&M$M<8}    private InputStream in = null; //定义输入流
 5~?j-+)    private int len = 10 * 1024 * 1024; //定义字符数组长度
 W)Lvvt/8^  pWxm300&6    //Initialize global variables
 teVT= 5~D    public void init() throws ServletException {
 DWKKNB n*_      /**
 d%ev:|^c      * 连接数据库
 IcyrWV      */
 hSE N4_b      try {
 U D>C          Class.forName(driver_class);
 qjk)L      } catch (java.lang.ClassNotFoundException e) {
 x"P/4) \i          //异常
 3~*0QLc O          System.err.println("databean():" + e.getMessage());
 gi$_Z48"      }
 331uJbP    }
 B C.*a[3K    //Process the HTTP Get request
 ?oN7*Q$    public void doGet(HttpServletRequest request, HttpServletResponse response)
 SH8Z3z-a      throws ServletException, IOException {
 sY*QNs'      response.setContentType(CONTENT_TYPE);
 HB|R!M`7      PrintWriter out = response.getWriter();
 {WZ"8q -      //在数据库中的照片的ID
 ^KJ1t.]M      int PHOTOID = 0;
 Xn ' /      /*********************************************
 ehdT#e#4      * 接受上文传递的图片ID号
 _r;FK.X      * 上文传输文件名称为photoid
 7bkLr Ub9      *********************************************/
 j#HyX7      try {
 looq&|AFjJ  axArJ          PHOTOID = Integer.parseInt(request.getParameter("photoid"));
 h ,4\h0+$          SQLString = "select * from xxw_photo where p_id=" + PHOTOID;
 '%*hmGKV  {Jd_&?^      } catch (Exception e) {
 g*T.W[c 8          e.printStackTrace();
 >OwzI c          response.setContentType("text/html; charset=gb2312");
 BUX(VAg{          M_EorrMenage = "请输入图片ID号";
 8wt<w{U          M_EorrMenage =
 9|* l5"m@            new String(M_EorrMenage.getBytes("ISO8859_1"), "GBK");
 `pvezlZf^          out.println("<%@ page contentType='text/html; charset=gb2312' %>");
 ax_hcf9          out.println("<html>");
 Jm$EB0"          out.println("<head><title>id</title></head>");
 ]>>T [~          out.println("<body>");
 ep$vA}2          out.println("<p>" + M_EorrMenage + "</p>");
 F"^nV{/          out.println("</body></html>");
 g-.`QQ|Mc0  K\ c'\o}9      }
 m|`BX>m#'      /*****************************************************
 TK3AKa['      * 执行查询语句
 _+H-sFy>A      *****************************************************/
 V!}m%MU0|      try {
 0a - o          conn = DriverManager.getConnection(connect_string);
 ,>mf9|rkH          stmt = conn.createStatement();
 '(^4? .~          rs = stmt.executeQuery(SQLString);
 4`l!@DY      } //try
 i r!/      catch (SQLException ex) {
 Eg(N/uxQ1c          System.err.println("aq.executeUpdate:" + ex.getMessage());
 U/t3-;[gf          M_EorrMenage = "对不起,数据库无法完成此操作!";
 p}9qXVaJn          M_EorrMenage =
 $s3a!ff            new String(M_EorrMenage.getBytes("ISO8859_1"), "GBK");
 G[w#;q=          response.setContentType("text/html; charset=gb2312");
 l!vW~[6w          out.println("<html>");
 ,i!/:p          out.println("<head><title>no_database</title></head>");
 =uPApn>#          out.println("<body>");
 ~6+4!KJ1R          out.println("<p>" + M_EorrMenage + "</p>");
 \)'2H&8>          out.println("</body></html>");
 e (c[`3  pu2dX</      }
 +5s?3f<      /*********************************************
 d-$ <<y1.G      * 将图片流读入字符数组中,并显示到客户端
 'asnTTgIv      ********************************************/
 k^I2 PAgr      try {
 Hgrr^X          if (rs.next()) {
 KvW>U 2            in = rs.getBinaryStream("photo");
 {G2kg8e'V            response.reset(); //返回在流中被标记过的位置
 Wr p2JO!            response.setContentType("image/jpg"); //或gif等
 ,`!}Quz            // int len=in.available();//得到文件大小
 SH?jWs-            OutputStream toClient = response.getOutputStream();
 &H1i`Ptn            byte[] P_Buf = new byte[len];
 BMI(,aTE            int i;
 5/}qmm5a7            while ((i = in.read(P_Buf)) != -1) {
 EI4=J.N A              toClient.write(P_Buf, 0, i);
 q[\V bj            }
 eO#4n 3G(            in.close();
 )]Jc[znN            toClient.flush(); //强制清出缓冲区
 w-Gv)X&@            toClient.close();
 6{.L1PD{;3          } else {
 sE`3.'U            M_EorrMenage = "无此图片!";
 VxO MM            M_EorrMenage =
 ga26-z              new String(M_EorrMenage.getBytes("ISO8859_1"), "GBK");
 "w%A]Q            response.setContentType("text/html; charset=gb2312");
 4;9y3(//            out.println("<html>");
 %b4<H0            out.println(
 (j}}t)yU8k              "<head><title>this photo isn't have</title></head>");
 l\JO]pi-i            out.println("<body>");
 |JyQ1Hac            out.println("<p>" + M_EorrMenage + "</p>");
 ?m^Vr]A:G            out.println("</body></html>");
 <Y740]v}t          }
 'GU|*eU          rs.close();
 6.Ahaq      } catch (Exception e) {
 ^RKSa{.          e.printStackTrace();
 H Qf8D|          M_EorrMenage = "无法读取图片!";
 klbS{-N`xq          M_EorrMenage =
 4g#Y*G,P            new String(M_EorrMenage.getBytes("ISO8859_1"), "GBK");
 S_J_[-r82          response.setContentType("text/html; charset=gb2312");
 $+OFk:7jp          out.println("<%@ page contentType='text/html; charset=gb2312' %>");
 *cev<=EN          out.println("<html>");
 >H9(xLZ#g          out.println("<head><title>no photo</title></head>");
 }Az {@@          out.println("<body>");
 T]-j@[{)          out.println("<p>" + M_EorrMenage + "</p>");
 +%k)J5g          out.println("</body></html>");
 k)2QRVuR      }
 f [<Zyrq    }
 Uh!=.aAVX  DhI_"gk"    //Clean up resources
 Mv%csS]6m    public void destroy() {
 Md' y~IK      try {
 -pc Tvm          conn.close();
 %9Dny"(HO]      } catch (SQLException e) {
 $ UNj~sQ~          System.err.println("aq.executeUpdate:" + e.getMessage());
 D>8)?Yu          M_EorrMenage = "对不起,数据库无法完成此操作!";
 "Y*6Xku+b      }
 Okp* !h]w*    }
 V/[mC!tF%$  }
 &U$yq3]<\  --------------------------------------------------------------------------------
 %}B2}oe*  d%fm\yA  <!---------------------------显示---------------------------------------------->
 7| zCDe$  <html>
 1.-c0  <head>
 ``=r:HfZq  <title>Untitled Document</title>
 \*CP4J"?  </head>
 PXs)=zun~  <body bgcolor="#FFFFFF" text="#000000">
 cK >M6iV$X  <table>
 V$F&cnE"  <%
 `Ylaj  int i=1;
 [SZLF%9!q  while(i<3){
 ~a<4OcO:  %>
 {S4$C8w  <tr> 
kNen0i  <td colspan="3"> <img border="1" src="
http://192.168.1.50:8100/ShowImage?photoid=<%=i%>"></td>
 WZ-&bZO1  </tr>
 Z <[=xyk  <%
 ,e&g6t]   i++;
 )qb7X5fs)  }
 zk{Zg< y`  %>
 ?r(8*:l$O  </table>
 JK|k[Eer  </body>
 CiJANeYis:  </html>