我有一个MySQL数据库,我正在尝试搜索它并在一个表中显示结果,该表的列与网页上的HTML相同。我正在使用JAVA作为servlet,我让网页使用JavaScript将搜索字符串发送到servlet。我知道如何:
我无法从结果集中发送并将其发送回并在表格中的网页上显示。
答案 0 :(得分:1)
这是一个非常好的教程(如果现在有点老了)。它包括从数据库中获取数据,使用MVC类型体系结构,java bean和带有Expression语言的JSP。
看看第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>