5 07, 2007
´ÓÊý¾Ý¿âÖжÁÈ¡²¢Éú³ÉͼƬµÄServlet(ת)
1£©´´½¨ServletOutputStream¶ÔÏóout,ÓÃÓÚÒÔ×Ö½ÚÁ÷µÄ·½Ê½Êä³öͼÏñ
2£©²éѯÊý¾Ý¿â£¬ÓÃgetBinaryStream·½·¨·µ»ØInputStream¶ÔÏóin
3£©´´½¨byteÊý×éÓÃ×÷»º³å£¬½«in¶ÁÈëbuf[],ÔÙÓÉoutÊä³ö
×¢£ºÏÂÃæµÄÀý³ÌÖÐÊý¾Ý¿âÁ¬½ÓÓÃÁËConnectionPool,ÒÔ¼°²ÎÊýµÄ»ñµÃ½øÐÐÁËÔ¤´¦Àí
package net.seasky.music;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
import java.sql.*;
import net.seasky.util.*;
import net.seasky.database.DbConnectionManager;
public class CoverServlet extends HttpServlet {
private static final String CONTENT_TYPE = "image/gif";
public void init(ServletConfig config) throws ServletException {
super.init(config);
}
public void doGet(HttpServletRequest request, HttpServletResponse response
) throws ServletException, IOException {
response.setContentType(CONTENT_TYPE);
int albumID;
ServletOutputStream out = response.getOutputStream();
try {
albumID = ParamManager.getIntParameter(request,"albumID",0);
}
catch (Exception e) {
response.sendRedirect("../ErroePage.jsp");
return;
}
try {
InputStream in=this.getCover(albumID);
int len;
byte buf[]=new byte[1024];
while ((len=in.read(buf,0,1024))!=-1) {
out.write(buf,0,len);
}
}
catch (IOException ioe) {
ioe.printStackTrace() ;
}
}
private InputStream getCover(int albumID) {
InputStream in=null;
Connection cn = null;
PreparedStatement pst = null;
try {
cn=DbConnectionManager.getConnection();
cn.setCatalog("music");
pst=cn.prepareStatement("SELECT img FROM cover where ID =?");
pst.setInt(1,albumID);
ResultSet rs=pst.executeQuery();
rs.next() ;
in=rs.getBinaryStream("img");
}
catch (SQLException sqle) {
System.err.println("Error in CoverServlet : getCover()-" + sqle);
sqle.printStackTrace() ;
}
finally {
try {
pst.close() ;
cn.close() ;
}
catch (Exception e) {
e.printStackTrace();
}
}
return in;
}
public void destroy() {
}
} ¡¡
×îлظ´
·¢±íÆÀÂÛ