0

Good day all please ADO, I need help.After developing my jsp,the code work fine except that it displays image link from the database instead of the image itself.I tried manipulating the blob datatype by setting (Blob bl=resultset.getBlob(n))
but it returns an error.Secondly,assuming i want the size of that image to be width=200,height=200 on display,how do i achieve this.please any help rendered will be honoured. here is my code, help me fix it were it will be.thanks for your patience and time spent.

<HTML>
    <HEAD>
        <TITLE>Database Lookup</TITLE>
    </HEAD>
 
    <BODY>
        <H1>Database Lookup</H1>
        <FORM ACTION="basic.jsp" METHOD="POST">
            Please enter the ID of the publisher you want to find:
            <BR>
            <INPUT TYPE="TEXT" NAME="id">
            <BR>
            <INPUT TYPE="SUBMIT" value="Submit">
        </FORM>
    </BODY>
<HTML> 
 
basic.jsp
 
<%@ page import="java.sql.*" %>
<% Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); %>

<HTML>
    <HEAD>
        <TITLE>Fetching Data From a Database</TITLE>
    </HEAD>

    <BODY>
        <H1>Fetching Data From a Database</H1>

        <% 
            Connection connection = DriverManager.getConnection(
                "jdbc:odbc:data", "YourName", "password");

            Statement statement = connection.createStatement();

            String id = request.getParameter("id");  

            ResultSet resultset = 
                statement.executeQuery("select * from Publishers where pub_id = '" + id + "'") ; 

            if(!resultset.next()) {
                out.println("Sorry, could not find that publisher. ");
            } else {
        %>

        <TABLE BORDER="1">
            <TR>
               <TH>ID</TH>
               <TH>Name</TH>
               <TH>City</TH>
               <TH>State</TH>
               <TH>picture</TH>
           </TR>
           <TR>
               <TD> <%= resultset.getString(1) %> </TD>
               <TD> <%= resultset.getString(2) %> </TD>
               <TD> <%= resultset.getString(3) %> </TD>
               <TD> <%= resultset.getString(4) %> </TD>
               <TD> <%= resultset.getBlob(5) %> </TD>
           </TR>
       </TABLE>
       <BR>
       <% 
           } 
       %>
    </BODY>
</HTML>

Edited by ~s.o.s~: Moved from code snippet section to forums

5
Contributors
4
Replies
13
Views
7 Years
Discussion Span
Last Post by Shanti C
1

> I tried manipulating the blob datatype by setting..

The way you are going about to do this won't work. You can't render an image on your markup without using the IMG tag just by grabbing the binary content. You'd need to create a separate servlet mapping which would read the contents of the image from the database and write it out to the servlet output stream. You'd then use it like:

<img src="/yourWebApp/yourServletPath/grabImage?id=yourImgName" />
public class MyController extends HttpServlet {
  public void doGet(HttpServletRequest req, HttpServletResponse res) {
    // check if the path contains 'grabImage'
    String id = request.getParameter("id");
    // read the binary content using the code present in your JSP
    byte[] data = readImage();
    response.getOutputStream().write(data);
    // perform misc cleanup
  }
}

> assuming i want the size of that image to be width=200,height=200 on
> display,how do i achieve this

Use some image manipulation library to do the same. Google if your friend.

0

@fredrickme
<%= rs.getblob() %> is display the oracle.sql.BLOB@1381119 content only
what would i do to display the image

This question has already been answered. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.