Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 请告诉我遗漏了什么_Java_Jsp - Fatal编程技术网

Java 请告诉我遗漏了什么

Java 请告诉我遗漏了什么,java,jsp,Java,Jsp,我正在创建我的第一个java web应用程序。。 实际上,我面临的问题是管理所有学生。从数据库中检索后,应显示学生信息列表 我正在使用下面的代码,但它没有显示信息或从数据库中检索信息 请告诉我我错过了什么。这是我的代码: <% try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); String url = "jdbc:odbc:stdProjectDataDSN"; Conn

我正在创建我的第一个java web应用程序。。 实际上,我面临的问题是管理所有学生。从数据库中检索后,应显示学生信息列表

我正在使用下面的代码,但它没有显示信息或从数据库中检索信息

请告诉我我错过了什么。这是我的代码:

 <% try {
          Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
          String url =  "jdbc:odbc:stdProjectDataDSN";
          Connection c = DriverManager.getConnection(url);
          String sql = "Select * from students ORDER BY ID DESC";
          PreparedStatement pStmt = c.prepareStatement(sql);  
          ResultSet rs = pStmt.executeQuery(sql);

          while (rs.next()) {
 %>
           <tr height="40">   
               <th> <%=rs.getString("ID")%> </th>
               <th> <%=rs.getString("Name")%> </th>
               <th> <%=rs.getString("RollNumber")%> </th>
               <th> <%=rs.getString("PhoneNumber")%> </th>
               <th> <%=rs.getString("StudyProgram")%> </th>
               <th> <%=rs.getString("Status")%> </th>
               <th> <a href="ManageAllStudent.jsp">update</a> </th>
               <th> <a href="ManageAllStudent.jsp">delete</a> </th> 
           </tr>
 <%
         }
         rs.close();
         pStmt.close();
         c.close();
     }
     catch (Exception e) {
     }
 %>

没有理由调用
executeQuery(sql)
您已经在使用
PreparedStatement
。 问题可能就在这里。所以试着改变一下

其次,您必须在
finally
块中调用
close()
方法,因为如果它将崩溃,
catch
块将被调用,但您的
close()
方法否。

最后
将始终调用的块保证


更新:
您需要避免在JSP文件中编写原始java代码。检查。

我得到了我缺少的东西,我没有在控制面板->管理工具中配置我的数据库

因此,当我设置它时,它只会工作:)


特别感谢@hawaii.five-0给了我一个非常好和有用的建议

请正确格式化您的代码以便我们阅读。另外,如果您在控制台上有任何错误,请发布,我相信这是JSP,对吗?如果是这样的话,它应该被标记为这样。@mimisbrunr我希望现在你最好有一个空的catch子句。如果发生任何错误,您应该在catch子句中添加一条print语句。HTTP Status 500 type Exception report message description服务器遇到一个内部错误(),使其无法完成此请求。异常org.apache.jasper.JasperException:无法为JSP编译类:JSP文件:/build/web/ManageAllStudent.JSP rs的第104行出现错误无法解析101:字符串名称;102:字符串电话号码;103:104:while(rs.next()){105:%%>106:107:太长了,我不能发布上面提到的所有基本内容,所以你在JSP中编写原始java代码,你需要避免这种情况,请看我的答案,有一个链接。这意味着我必须单独编写类?是的,你应该有清晰的java类和只调用方法。所以fot ex您应该创建这个类似于返回列表的方法。
PreparedStatement pStmt = c.prepareStatement(sql);  
ResultSet rs = pStmt.executeQuery();