出现的错误是:
exception javax.servlet.ServletException: [Microsoft][SQLServer 2000 Driver for JDBC]Object has been closed.
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:867)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:800)
org.apache.jsp.admin.deleteclass_jsp._jspService(deleteclass_jsp.java:130)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:133)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:311)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
root cause java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Object has been closed.
com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)
com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
com.microsoft.jdbc.base.BaseResultSet.validateClosedState(Unknown Source)
com.microsoft.jdbc.base.BaseResultSet.commonFetchInitialize(Unknown Source)
com.microsoft.jdbc.base.BaseResultSet.next(Unknown Source)
org.apache.commons.dbcp.DelegatingResultSet.next(DelegatingResultSet.java:196)
org.apache.jsp.admin.deleteclass_jsp._jspService(deleteclass_jsp.java:99)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:133)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:311)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
exception javax.servlet.ServletException: [Microsoft][SQLServer 2000 Driver for JDBC]Object has been closed.
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:867)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:800)
org.apache.jsp.admin.deleteclass_jsp._jspService(deleteclass_jsp.java:130)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:133)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:311)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
root cause java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Object has been closed.
com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)
com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
com.microsoft.jdbc.base.BaseResultSet.validateClosedState(Unknown Source)
com.microsoft.jdbc.base.BaseResultSet.commonFetchInitialize(Unknown Source)
com.microsoft.jdbc.base.BaseResultSet.next(Unknown Source)
org.apache.commons.dbcp.DelegatingResultSet.next(DelegatingResultSet.java:196)
org.apache.jsp.admin.deleteclass_jsp._jspService(deleteclass_jsp.java:99)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:133)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:311)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
String username=rs.getString("username");
String sql1="select * from files where username='"+username+"'";
ResultSet rs1=stmt.executeQuery(sql1); // 1:这时 rs 记录集已不可用。
while(rs1.next()){
.....
}
.......
}执行1处的代码时,stmt已经被关闭并重新打开关联rs1, 此时rs不能再用了。你的代码太乱,效率也及其低下。
哪有在循环中执行数据库操作的,还是多重循环!!
Statement stmt1 = conn.createStatement();
ResultSet rs1=stmt1.executeQuery(sql1);