带有resultSet的jsp页面上的异常

时间:2013-01-20 15:42:26

标签: java jsp resultset

我正在尝试检查用户是否已使用此方法投票。我使用与登录相同的方法,登录工作完美。 ResultSet执行查询部分中发生错误。这是为了检查用户是否已经投票。

public boolean checkVote(int userId) throws ClassNotFoundException, SQLException{        
    String query = "SELECT * FROM polls WHERE User='"+ userId +"''";        
    connect();        
    PreparedStatement ps = (PreparedStatement) dbConnection.prepareStatement(query);
    ResultSet results = (ResultSet)ps.executeQuery();

    while(results.next())
    {
         return true;
    }
    disconnect();
    return false;

}

堆栈追踪:

     org.apache.jasper.JasperException: An exception occurred processing JSP page     /    Gadgets.jsp at line 40

 37:                 <%db.DBConnection db = new  db.DBConnection(); 
 38:                 ArrayList<Product> myProducts =db.getAllProducts();
 39:                 User u = db.getUser(session.getAttribute("Username").toString());
 40:                 boolean checkVote = db.checkVote(u.getId());
 41:                 if(checkVote == true)
 42:                                        { %>
 43:                                          <form id="Gadgets" action="Gadgets.jsp"      method="post">    

1 个答案:

答案 0 :(得分:0)

不是关于你的例外情况,而是对你的代码有评论。由于您未使用语句参数(通过?传递),因此您不需要PreparedStatement,因此您可以使用简单的Statement并通过connection.createStatement获取它。或者更好的方法是继续使用PreparedStatement并通过参数传递userId

有关此here

的更多信息

现在关于你的例外。似乎checkVote方法是您的servlet方法,而不是db对象的方法。但您正试图致电db's checkVote。这是JasperException的原因。