0
<%
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection con=DriverManager.getConnection("jdbc:oracle:thin:@VAIO:1521:XE","system","manager");
PreparedStatement stmt=con.prepareStatement("Select * from tasks");
ResultSet rset=stmt.executeQuery();
while(rset.next())
{
%>
<html>
<body>
<table>
<tr>
<td>
<a href=""><%out.print(rset.getString(2));%></a>
</td>
<td>
<%out.print(rset.getString(3));%>
</td>
</tr>
</table>
</body>
</html>
<%
}
%>

需要使用表的所有条目作为超链接在新页面上打开数据库中的其他详细信息。知道怎么做吗?

4

1 回答 1

0

创建一个指向某个详细 servlet 的链接,并带有一个指示要显示的行的 ID 的参数:

<a href="detailServlet?id=<%= rs.getLong(1) %>"><%out.print(rset.getString(2));%></a>

在 servlet 中,使用 request.getParameter("id") 获取链接发送的 ID。

也就是说,你不应该

  • 从 JSP 执行数据库访问代码。JSP 应该只生成 HTML,使用控制器 servlet 存储在请求中的 Java Bean
  • 使用小脚本。学习使用 JSP EL、JSTL 和自定义标签。

10 多年来,使用 scriptlet 和从 JSP 访问数据库被认为是不好的做法。我真的不明白如何仍然教新手这样做。好的代码看起来像:

<c:forEach var="row" items="${rows}">
    <tr>
        <td>
            <a href="<c:url value="/detailServlet">
                         <c:param name="id" value="${row.id}"/
                     </c:url>"<c:out value="${row.name}"/></a>
        </td>
        <td>
            <c:out value="${row.description}"/>
        </td>
    </tr>
</c:forEach>
于 2013-07-14T10:02:42.377 回答