Java Reference
In-Depth Information
The servlet of Listing 14-8 shows how you can retrieve an image from a DBMS as a Blob and write it as
a byte array to the ServletOutputStream. The servlet also retrieves text as a Clob.
Caution
It is important when downloading non-html data to set the correct content type in the
response object. Some browsers are more sensitive to this than others.
Listing 14-8: A servlet that retrieves large objects
package JavaDatabaseBible.ch14;
import java.io.*;
import java.sql.*;
import javax.sql.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class LobServlet extends HttpServlet{
private String dbUserName = "sa";
private String dbPassword = "dba";
protected void doGet(HttpServletRequest request,HttpServletResponse
response)
throws ServletException, IOException
{
ServletOutputStream out = response.getOutputStream();
String dataType = request.getParameter("type");
int memberID = Integer.parseInt(request.getParameter("id"));
if(dataType.equalsIgnoreCase("blob")){
response.setContentType("image/jpeg");
out.write(getBlob(memberID));
}else if(dataType.equalsIgnoreCase("clob")){
response.setContentType("text/html");
out.write(getClob(memberID));
}
out.flush();
out.close();
}
public byte[] getBlob(int memberID){
String query = "SELECT Image FROM Photos WHERE MemberID = ?";
Blob blob = null;
byte[] bytes = null;
String description = "";
try {
Class.forName("com.inet.pool.PoolDriver");
com.inet.tds.TdsDataSource tds = new com.inet.tds.TdsDataSource();
tds.setServerName( "JUPITER" );
Search WWH ::




Custom Search