从MySQL数据库中检索数据并使用java在html中显示它

时间:2012-01-26 19:38:11

标签: java mysql html servlets

我有一个MySQL数据库,我正在尝试搜索它并在一个表中显示结果,该表的列与网页上的HTML相同。我正在使用JAVA作为servlet,我让网页使用JavaScript将搜索字符串发送到servlet。我知道如何:

  1. 连接数据库
  2. 查询数据库并在结果集中检索适当的数据
  3. 我无法从结果集中发送并将其发送回并在表格中的网页上显示。

4 个答案:

答案 0 :(得分:1)

这是一个非常好的教程(如果现在有点老了)。它包括从数据库中获取数据,使用MVC类型体系结构,java bean和带有Expression语言的JSP。

http://pdf.coreservlets.com/

看看第17章。

答案 1 :(得分:0)

您可以使用ResultSetMetaData在HTML表格中显示数据。我假设'rs'是查询结果集的变量。以下内容适用于您

int rowCount = 0;
PrintWriter out = response.getWriter();

 out.println("<P ALIGN='center'><TABLE BORDER=1>");
 ResultSetMetaData rsmd = rs.getMetaData();
 int columnCount = rsmd.getColumnCount();
 // table header
 out.println("<TR>");
 for (int i = 0; i < columnCount; i++) {
   out.println("<TH>" + rsmd.getColumnLabel(i + 1) + "</TH>");
   }
 out.println("</TR>");
 // the data
 while (rs.next()) {
  rowCount++;
  out.println("<TR>");
  for (int i = 0; i < columnCount; i++) {
    out.println("<TD>" + rs.getString(i + 1) + "</TD>");
    }
  out.println("</TR>");
  }
 out.println("</TABLE></P>");
 return rowCount;
}

您可以查看此tutorial了解详细信息。

答案 2 :(得分:0)

您是说您无法遍历ResultSet对象并在servlet中生成HTML?

if (rs.next()) {

    out.print("<table><tr><th>column1</th><th>column2</th>...</tr>");

    do {

        out.print("<tr>");
        out.print(new StringBuilder("<td>").append(rs.getObject("column1"))append("</td>").toString());
        out.print(new StringBuilder("<td>").append(rs.getObject("column2"))append("</td>").toString());
        ...
        out.print("</tr>");
    } while (rs.next());

    out.print("</table>");
}

答案 3 :(得分:0)

步骤
1)假设您从数据库中获取了一个列表 2)将此列表设置为http-request属性。
(使用setAttribute函数)
3)从httpRequest获取RequestDispatcher 4)关于jsp使用以下

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<Table>
<Tr>
     <td>col1</td> 
     <td>col2</td>
</tr>
<c:forEach var="i" items="${listName}">
  <tr>
      <td>
        <c:out value="${i['col1']}"/>
      </td>          
      <td>
        <c:out value="${i['col1']}"/>
      </td>
  <tr>
</c:forEach>
</table>