使用数据库条目作为链接在页面上显示db的详细信息

时间:2013-07-14 09:36:34

标签: html oracle jsp

<%
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>
<%
}
%>

需要使用表的所有条目作为超链接在新页面上打开,并在数据库中包含其他详细信息。任何想法怎么做?

1 个答案:

答案 0 :(得分:1)

创建指向某个细节servlet的链接,其中一个参数指示要显示的行的ID:

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

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

那就是说,你不应该

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

使用scriptlet并从JSP访问数据库超过10年被认为是不好的做法。我真的不明白新手们是如何做到这一点的。好的代码看起来像:

<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>