如何从多个图像中获取图像ID以使用它来获取有关图像的整个数据,并在点击图像

时间:2017-05-05 21:34:13

标签: java html mysql jsp servlets

我的代码用于显示多个图片并尝试获取其ID [currency.jsp]

<div class="container-1" style="background-color:white">
<div style="color:Red;font-size:1.1em;font-weight:bolder;">${err}</div>
<%
try
{
    DBConnector obj2=new DBConnector();
    obj2.createConn();
    Statement st=null;
    st=obj2.getStatement();
    ResultSet rs=null;
    String query="select itemid,itemname,itemprice from currency";
    rs=st.executeQuery(query);
    int i=0;
    %>
    <table>
    <%    
    while(rs.next())
    {
       int price=Integer.parseInt(rs.getString("itemprice"));
       int id=Integer.parseInt(rs.getString("itemid"));
       String name=rs.getString("itemname");
       if(i==0)
       {
       %>
       <tr>
       <%
       }
       %>   
       <td style="width:220px;height:250px">
       <form id="formimgid" action="Getdetailinfo" method="post">
       <input type="hidden" name="getimgid" value="<%=id%>">
       <a href="#" onclick="document.getElementById('formimgid').submit()">
       <div class="cont">
       <img src="Getimage.jsp?id=<%=id%>" width="220" height="150">
       <div><%=name%></div><br>
       <div>Price = <%=price%></div>
       </div>
       </a>
       </form>
       </td>
       <%
       if(i==3)
       {
           i=0;
       %>
       </tr>
       <%
       }
       else
       {
       i++;
       }
       }
       %>
    </table>
   <%
    rs.close();
    st.close();
    obj2.closeConn();
}
    catch(SQLException e)
        {
           System.out.println(e);

        }

%>
</div>    
</div>

Getimage.jsp的代码

<%
   try
   {
    DBConnector obj1=new DBConnector();

    obj1.createConn();
    Statement st=obj1.getStatement();
    ResultSet rs=null;
    int id=Integer.parseInt(request.getParameter("id"));
    String filename="image"+id+".jpg";
    String query="select img from currency where itemid='"+id+"'";
    { 
    rs=st.executeQuery(query);
     String imglen="";
    if(rs.next())
    {   
        imglen=rs.getString("img");    
    }
    rs=st.executeQuery(query);
    if(rs.next())
    {
        int len=imglen.length();
        byte rb[]=new byte[len];
        InputStream readimg=rs.getBinaryStream("img");
        int index=readimg.read(rb,0, len);
        rs.close();
        st.close();
        obj1.closeConn();
        response.setContentType("image/jpg");
        response.setHeader("Content-disposition","attachment; filename=" +filename);
        response.getOutputStream().write(rb,0,len);
        response.getOutputStream().flush();
    }
   }
   }
   catch(SQLException e)
   {
       System.out.println(e);
   }
%> 

我能够获取并显示我现在想要的多个图像当我点击图像时它会打开一个新页面,其中包含有关该图像的信息,我无法从任何地方得到任何帮助。我用过货币的表格标签.jsp是无用的,它只存储第一个图像的id。我试图在用户点击它时获取图像id,然后使用该id从数据库中获取数据并在另一个页面上丢失它。任何帮助或替代赞赏谢谢..

我使用Mysql作为databse和Jsp servlet作为前端。

1 个答案:

答案 0 :(得分:0)

如果我已正确理解您想在用户点击图片,名称或价格时将图片ID传递到下一页。

所以在你的currency.jsp页面用这个

替换你的td标签
<td style="width:220px;height:250px">
    <a href="Getdetailinfo.jsp?id=<%=id%>">
        <div class="cont">
            <img src="Getimage.jsp?id=<%=id%>" width="220" height="150">
            <div><%=name%></div><br>
            <div>Price = <%=price%></div>
        </div>
    </a>
</td>

在我的代码中,我假设具有图像细节的页面被称为 Getdetailinfo.jsp ,如果不是,则在a标签的href属性中更改它。

在Getdetailinfo.jsp页面中,您可以使用

获取图片ID
 <%
 int image_id = Integer.parseInt(request.getParameter("id"));
 out.println(image_id);
 %>

我没有jsp的经验,但我假设你可以在getimage.jsp页面中从querystring中获取id。