【问题标题】:How to display data from servlet obtained using ResultSet in JSP [duplicate]如何在 JSP 中显示使用 ResultSet 获得的 servlet 中的数据 [重复]
【发布时间】:2016-03-01 13:29:06
【问题描述】:

我不明白如何将值传递和显示到使用ResultSet 在servlet 中获得的jsp。我看到了很多例子。我不明白foreach 循环。为什么有两个变量?没有人使用jsp:useBean 了吗?

如何传递和显示数据。我尝试使用 bean 类,但 ResultSet 中的数据是一个表,我不知道如何设置和获取所有行的值。 请帮忙。

这是 servlet:

protected void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    response.setContentType("text/html");
    PrintWriter out = response.getWriter();

    Connection connection = null;
    Statement stmt = null;



    try {
        StringBuffer data = null;
        try {
            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
        } catch (ClassNotFoundException ex) {
            Logger.getLogger(NewServlet.class.getName()).log(Level.SEVERE, null, ex);
        }
        connection = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=DesktopScreen","sa","sa123");
        stmt = connection.createStatement();

        String query = "select * from ClientLogin";
        ResultSet rs = stmt.executeQuery(query);
        while (rs.next()) {
            String UniqueId,ClientId,RequestedDateTime,ConnectionStatus;
            UniqueId = rs.getString("UniqueID");
            ClientId = rs.getString("ClientId");
            RequestedDateTime = rs.getString("RequestDateTime");
            ConnectionStatus = rs.getString("ConnectionStatus");
            BeanClass beanClass = new BeanClass();
            beanClass.setUniqueId(UniqueId);
            beanClass.setClientId(ClientId);
            beanClass.setConnectionStatus(ConnectionStatus);
            beanClass.setRequestDateTime(RequestedDateTime);

            data = new StringBuffer();
            data.append(UniqueId);
            data.append(ClientId);
            data.append(RequestedDateTime);
            data.append(ConnectionStatus);


        }
        request.setAttribute("data", data);
        request.getRequestDispatcher("Display.jsp").forward(request, response);
    }
    catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    finally
    {

        out.println("</center>");
        out.print("</table>");
        out.println("</body>");
        out.println("</html>");
        out.close();
        try {
            connection.close();
        } catch (SQLException ex) {
            Logger.getLogger(NewServlet.class.getName()).log(Level.SEVERE, null, ex);
        }

    }



}

}

【问题讨论】:

标签: jsp servlets jstl


【解决方案1】:

您可以将resultSet 放在一个列表中并将其传递到您的页面并在 JSP 中提取此列表

小服务程序:-

List <BeanClass> myList = new ArrayList<>();
while (rs.next()) {
            String UniqueId,ClientId,RequestedDateTime,ConnectionStatus;
            UniqueId = rs.getString("UniqueID");
            ClientId = rs.getString("ClientId");
            RequestedDateTime = rs.getString("RequestDateTime");
            ConnectionStatus = rs.getString("ConnectionStatus");
            BeanClass beanVar= new BeanClass();
            beanVar.setUniqueId(UniqueId);
            beanVar.setClientId(ClientId);
            beanVar.setConnectionStatus(ConnectionStatus);
            beanVar.setRequestDateTime(RequestedDateTime);
            myList.add(beanVar);
}
request.setAttribute("list", list);
request.getRequestDispatcher("Display.jsp").forward(request, response);

在jsp中:-

使用这个标签

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

使用forEach访问列表

<table>
    <c:forEach items="${list}" var="item">
        <tr>
            <td>${item.getUniqueId()}</td>
            <td>${item.getClientId()}</td>
            <td>${item.getConnectionStatus()}</td>
            <td>${item.getRequestDateTime()}</td>
        </tr>
    </c:forEach>
</table>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-07-11
    • 2018-01-17
    • 2012-08-27
    • 2016-05-02
    • 1970-01-01
    • 2011-06-19
    • 1970-01-01
    • 2016-10-28
    相关资源
    最近更新 更多