Mega Code Archive

 
Categories / Java / Servlets
 

Display Blob Servlet

import java.io.IOException; import java.io.InputStream; import java.sql.Blob; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import javax.servlet.ServletException; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class DisplayBlobServlet extends HttpServlet {   public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException,       ServletException {     Blob photo = null;     Connection conn = null;     Statement stmt = null;     ResultSet rs = null;     String query = "select photo from MyPictures where  id = '001'";     ServletOutputStream out = response.getOutputStream();     try {       conn = getHSQLConnection();     } catch (Exception e) {       response.setContentType("text/html");       out.println("<html><head><title>Person Photo</title></head>");       out.println("<body><h1>Database Connection Problem.</h1></body></html>");       return;     }     try {       stmt = conn.createStatement();       rs = stmt.executeQuery(query);       if (rs.next()) {         photo = rs.getBlob(1);       } else {         response.setContentType("text/html");         out.println("<html><head><title>Person Photo</title></head>");         out.println("<body><h1>No photo found for id= 001 </h1></body></html>");         return;       }       response.setContentType("image/gif");       InputStream in = photo.getBinaryStream();       int length = (int) photo.length();       int bufferSize = 1024;       byte[] buffer = new byte[bufferSize];       while ((length = in.read(buffer)) != -1) {         System.out.println("writing " + length + " bytes");         out.write(buffer, 0, length);       }       in.close();       out.flush();     } catch (SQLException e) {       response.setContentType("text/html");       out.println("<html><head><title>Error: Person Photo</title></head>");       out.println("<body><h1>Error=" + e.getMessage() + "</h1></body></html>");       return;     } finally {       try {         rs.close();         stmt.close();         conn.close();       } catch (SQLException e) {         e.printStackTrace();       }     }   }   private static Connection getHSQLConnection() throws Exception {     Class.forName("org.hsqldb.jdbcDriver");     System.out.println("Driver Loaded.");     String url = "jdbc:hsqldb:data/tutorial";     return DriverManager.getConnection(url, "sa", "");   }   public static Connection getMySqlConnection() throws Exception {     String driver = "org.gjt.mm.mysql.Driver";     String url = "jdbc:mysql://localhost/demo2s";     String username = "oost";     String password = "oost";     Class.forName(driver);     Connection conn = DriverManager.getConnection(url, username, password);     return conn;   }   public static Connection getOracleConnection() throws Exception {     String driver = "oracle.jdbc.driver.OracleDriver";     String url = "jdbc:oracle:thin:@localhost:1521:databaseName";     String username = "username";     String password = "password";     Class.forName(driver); // load Oracle driver     Connection conn = DriverManager.getConnection(url, username, password);     return conn;   } }