使用 while 循环在 jsp 上动态创建行

Create rows dynamically on jsp using while loop

我正在尝试从 hsqldb 检索数据并以 table 的形式向用户显示。我正在使用 while 循环查看是否有更多数据要显示,但是 jsp 页面在有 while! 的行上抛出编译器错误!请帮忙

以下是我的jsp代码是:

<%
Connection con = JDBCHelper.getConnection();
PreparedStatement ps_sel = null;
HttpSession s = request.getSession(false);
ResultSet rs = null;
String username = (String)s.getAttribute("username");
String string = (String)request.getAttribute("string");
try {
    ps_sel = con.prepareStatement("select * from tasks where username = ? and (tname like ? or tasks like ?)");
    ps_sel.setString(1, username);
    ps_sel.setString(2, "%"+string+"%");
    ps_sel.setString(3, "%"+string+"%");
    ps_sel.execute();
    rs = ps_sel.getResultSet();
} catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}
    rs = ps_sel.getResultSet();
    while(rs.next())
    {
        %>
            <tr>
                 <td><%= rs.getString(1)%></td> 
                 <td><%= rs.getString(2)%></td>
                 <td><%= rs.getString(3)%></td>
                 <td><%= rs.getString(4)%></td>
                 <td><%= rs.getString(5)%></td>
                 <td><%= rs.getString(6)%></td>                                   
            </tr>
        <% 
    }
%>
</table>

</body>
</html>
  <%@ page import="java.sql.*" %>
    <% Class.forName("org.hsqldb.jdbcDriver"); %>

    <HTML>
        <HEAD>
            <TITLE>Fetching Data From a Database</TITLE>
        </HEAD>

        <BODY>
            <H1>Fetching Data From a Database</H1>
    <TABLE BORDER="1">
                <TR>
                   <TH>ID</TH>
                   <TH>Name</TH>
                   <TH>City</TH>
                   <TH>State</TH>
                   <TH>Country</TH>
               </TR>
            <% 
                Connection connection = DriverManager.getConnection(                                                       "Url", "YourName", "Password");

                Statement statement = connection.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
        ResultSet.CONCUR_UPDATABLE);
    HttpSession s = request.getSession(false);
ResultSet rs = null;
String username = (String)s.getAttribute("username");
String string = (String)request.getAttribute("string");
 try {
    ps_sel = con.prepareStatement("select * from tasks where username = ? and (tname like ? or tasks like ?)");
    ps_sel.setString(1, username);
    ps_sel.setString(2, "%"+string+"%");
    ps_sel.setString(3, "%"+string+"%");
    ps_sel.execute();
    rs = ps_sel.getResultSet();
} catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}
    rs = ps_sel.getResultSet();
    while(rs.next())
    {
        %>
               <TR>
                   <TD> <%= resultset.getString(1) %> </TD>
                   <TD> <%= resultset.getString(2) %> </TD>
                   <TD> <%= resultset.getString(3) %> </TD>
                   <TD> <%= resultset.getString(4) %> </TD>
                   <TD> <%= resultset.getString(5) %> </TD>
               </TR>
                 <% 
               } 
           %>
</TABLE>
        </BODY>
    </HTML>

jsp 文件中的准备语句在句法上是合法的。但避免使用它们。使用 POJO 编写 java 代码。可以将 jstl 用于相同的目的。如果你是初学者,那么这里使用jstl就是这里的重要学习内容。