把 if 换成 while, 
把 rs.close(); 和 } 交换位置。

解决方案 »

  1.   

    while(rs.next()){
       id=rs.getString("id");
       name=rs.getString("name");
       picture=rs.getString("picture");
    }
      

  2.   

    完整的:
    <jsp:useBean id="showmp3" scope="page" class="firm.firm"/>
      <%!String id,name,picture,sql;%>
    <table>
     <%
       sql="select * From user order by id desc";
       ResultSet rs=showmp3.executeQuery(sql);
       
       while(rs.next()){
       id=rs.getString("id");
       name=rs.getString("name");
       picture=rs.getString("picture");   %>
     <tr>
        <td height="476" valign="top">产品名称:<a href="showall.jsp?ID=<%=id%>"  onClick="return openw(this.href)"><%=name%></a></td>

      </tr><%}
      rs.close();
      %>
    </table>
    另外,你的变量如果只是希望在本页有效的话就不要放在<%!%>里声明,<%!%>里声明的是全局变量