Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.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 jsp编码问题_Java_Jsp_Jdbc - Fatal编程技术网

Java jsp编码问题

Java jsp编码问题,java,jsp,jdbc,Java,Jsp,Jdbc,我是一名程序员,不熟悉jsp,试图编写一些代码 我写得很好 <% int i=1; String connectionURL = "jdbc:mysql://localhost:3306/registration"; Connection connection = null; Statement stmt = null; ResultSet rset = null; Statement s

我是一名程序员,不熟悉jsp,试图编写一些代码

我写得很好

    <%
            int i=1;

    String connectionURL = "jdbc:mysql://localhost:3306/registration";

     Connection connection = null;
        Statement stmt = null;
        ResultSet rset = null;
        Statement stmt1 = null;
        ResultSet rset1 = null;
    Class.forName("com.mysql.jdbc.Driver").newInstance();
    int updateQuery = 0;
    try {
    connection = DBUtil.createConnection();//DriverManager.getConnection(connectionURL, "root", "root");
    String queryString = "select * from course";
    System.out.println("select all from course table");
     stmt = connection.createStatement();
    System.out.println("Statment object "+ stmt );
    rset = stmt.executeQuery(queryString);
    System.out.println("Result set " + rset );
    while (rset.next()) {
                    System.out.println("  Results...");
                    String s1 = rset.getString(1);
                    Double amount = rset.getDouble("amount");
                    String loginid = rset.getString("loginid");

    String queryString1 = "select * from users where loginid = '"+ loginid +"'";
    System.out.println("select user details from users table");
    System.out.println(queryString1);
     stmt1 = connection.createStatement();
    System.out.println("Statment object "+ stmt1 );
    rset1 = stmt1.executeQuery(queryString1);
    System.out.println("Result set " + rset1 );

             System.out.println("      name -> " + rset1.getString(2));
     %>
        <tr class="subtext1">
<td align="left"><%=i%> </td>
<td align="left"><%=rset.getString("name")%></td>
<td align="left"><%=rset.getString("loginid")%></td>
<td align="left"><%=rset.getString("name")%></td>
<td align="left"><%=rset.getString("email")%></td>
<td align="left"><%=rset.getString("iimbtrack")%></td>
<td align="left"><%=rset.getString("result")%></td>
<td align="left">CourseFee/<%=rset.getString("product")%></td>
<td align="left"><%=amount%></td>
<td align="left"><%=rset.getString("fdate")%></td>
</tr>
它起作用了。我哪里做错了

这就是我得到的错误

statment object com.mysql.jdbc.Statement@429be9
Result set com.mysql.jdbc.ResultSet@10a0d51
java.sql.SQLException: Before start of result set
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:910)
        at com.mysql.jdbc.ResultSet.checkRowPos(ResultSet.java:703)
        at com.mysql.jdbc.ResultSet.getStringInternal(ResultSet.java:5653)
        at com.mysql.jdbc.ResultSet.getString(ResultSet.java:5597)
        at org.apache.jsp.WEB_002dINF.jsp.secure.transaction.feesreports_jsp._jspService(feesreports_jsp.java:235)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
        at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:679)
        at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:461)
        at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:399)
        at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
        at org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1056)
        at org.apache.struts.tiles.TilesRequestProcessor.doForward(TilesRequestProcessor.java:261)
        at org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:388)
        at org.apache.struts.tiles.TilesRequestProcessor.processForwardConfig(TilesRequestProcessor.java:316)
        at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:231)
        at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1158)
        at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:397)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:627)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:875)
        at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
        at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
        at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
您需要调用以将光标移动到下一行,否则无法访问该行中的任何数据。如果需要多行,请在
while
循环中执行此操作:

while (rset1.next()) {
    System.out.println(" name -> " + rset1.getString(2));
}
或者,如果只需要一行,则在
if
语句中执行此操作:

if (rset1.next()) {
    System.out.println(" name -> " + rset1.getString(2));
}
另见:

也就是说,老实说,这段代码不是实现在HTML表中显示DB数据的功能需求的正确方法。这个数据库交互任务不应该在JSP文件中完成,而应该在真正的Java类中完成。JSP页面应该保持scriptlet自由

另见:
您需要调用以将光标移动到下一行,否则无法访问该行中的任何数据。如果需要多行,请在
while
循环中执行此操作:

while (rset1.next()) {
    System.out.println(" name -> " + rset1.getString(2));
}
或者,如果只需要一行,则在
if
语句中执行此操作:

if (rset1.next()) {
    System.out.println(" name -> " + rset1.getString(2));
}
另见:

也就是说,老实说,这段代码不是实现在HTML表中显示DB数据的功能需求的正确方法。这个数据库交互任务不应该在JSP文件中完成,而应该在真正的Java类中完成。JSP页面应该保持scriptlet自由

另见:

    • 您得到的确切错误是什么?我的怀疑是,当您请求第二列数据时,“users”表中只有一列。或者,如果没有数据,“rset1”将为
      null


      我强烈建议您寻找MVC模式。

      您得到的确切错误是什么?我的怀疑是,当您请求第二列数据时,“users”表中只有一列。或者,如果没有数据,“rset1”将为
      null


      我强烈建议您寻找MVC模式。

      您应该明确列出您请求的列,而不是使用通配符。否则,无法保证结果集中列的顺序。考虑一下如果有人在表中间添加了一列(如果是,确实发生了)会发生什么。

      你应该明确地列出你所请求的列,而不是使用通配符。否则,无法保证结果集中列的顺序。考虑如果有人在表中间添加一列(如果是,确实发生了)会发生什么。

      现在您已经发布了堆栈跟踪。解决方案是按照“BalusC”<代码>建议的。RESUTSETS/<代码>永远、永远、<代码> null < /代码>。如果没有数据,则
      ResultSet#next()
      只会返回
      false
      。或者,如果在获取数据过程中出现故障,则只会抛出一个
      SQLException
      。还可以看到返回:you's right的条目……因为javadoc上有一个快速的galnace,我把“never null”和“null”混淆了,因为您已经发布了堆栈跟踪。解决方案是由“BalusC”
      ResultSet
      建议的,它是never,never,
      null
      。如果没有数据,则
      ResultSet#next()
      只会返回
      false
      。或者,如果在获取数据过程中出现故障,则只会抛出一个
      SQLException
      。还可以看到返回:you's right的条目……由于javadoc上的快速计算,我把“never null”和“null”混淆了,您应该在第二个查询中使用PreparedStatement,因为(1)它在每个循环迭代中调用一次,(2)它有一个参数。在while循环外部创建对象,然后在while循环内部设置参数
      PreparedStatement ps=conn.PreparedStatement(“从loginid=?”的用户中选择*”;ps.setString(1,loginId)您应该为第二个查询使用PreparedStatement,因为(1)它对于每个循环迭代调用一次,(2)它有一个参数。在while循环外部创建对象,然后在while循环内部设置参数
      PreparedStatement ps=conn.PreparedStatement(“从loginid=?”的用户中选择*”;ps.setString(1,loginId)