java.sql.SQLException:运行Tomcat时关闭ResultSet后不允许执行操作

java.sql.SQLException:运行Tomcat时关闭ResultSet后不允许执行操作,java,mysql,sql,servlets,Java,Mysql,Sql,Servlets,因此,我在tomcat服务器中得到了上述错误。web应用程序运行正常,但我遇到了这个错误,它导致我在java中的一个类中出现while循环。我看过其他类似的答案,但无法找出我做错了什么。我尝试了多种对我有意义的解决方案,但仍然是一样的 以下是错误指向的地方: while(rs.next()){ 完整代码: public void doGet(HttpServletRequest请求,HttpServletResponse响应)抛出IOException,ServletException{ Pr

因此,我在tomcat服务器中得到了上述错误。web应用程序运行正常,但我遇到了这个错误,它导致我在java中的一个类中出现while循环。我看过其他类似的答案,但无法找出我做错了什么。我尝试了多种对我有意义的解决方案,但仍然是一样的

以下是错误指向的地方:

while(rs.next()){
完整代码:

public void doGet(HttpServletRequest请求,HttpServletResponse响应)抛出IOException,ServletException{
PrintWriter out=response.getWriter();
字符串email=request.getParameter(“uname”);
字符串密码=request.getParameter(“psw”);
布尔值=假;
试一试{
connection=DriverManager.getConnection(“删除了文件的此路径”);
语句select=connection.createStatement();
ResultSet rs=select.executeQuery(“从用户选择*);
while(rs.next()){
if(email.equalsIgnoreCase(rs.getString(1))&&password.equalsIgnoreCase(rs.getString(2))){
connection.close();
val=真;
}
rs.close();
}
如果(!val)
connection.close();
}捕获(例外e){
e、 printStackTrace();
}
if(val){
sendRedirect(request.getContextPath()+“/calculate.jsp”);
}否则{
setAttribute(“名称”,“错误的用户名或密码!”);
getServletContext().getRequestDispatcher(“/index.jsp”).forward(请求,响应);
}
out.close();
}

请发送帮助!!关闭循环中的
结果集
。将其移出循环,它将正常工作!@csabinho在循环外关闭连接时,其te相同(如果电子邮件和密码匹配)在resultset关闭之前。我建议使用finally block关闭
rs
connection
@zforgo pefect!这很有效,谢谢!