servlet能够做到返回一个ResultSet对象到jsp页面吗?

时间:2021-06-01 11:53:15
我通过以下方法试过,好象不行

request.setAttribute("rs",rs);
RequestDispatcher requestDispatcher = this.getServletContext().getRequestDispatcher("/get_rs.jsp");
requestDispatcher.forward(request, response);

在jsp页面这样接收

<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>运输数量查询</title>
</head>

<body>
<p>运输数量查询:</p>
<table border=1>
<tr><td>card</td><td>times</td></tr>
<%
//ResultSet rs1=search_rs.get_rs("全部","全部");
ResultSet rs1=(ResultSet)request.getAttribute("rs");
while(rs1.next())
{
%>
    <tr><td><%=rs1.getString(1)%></td><td><%=rs1.getString(2)%></td></tr>
<%
}
rs1.close();
%>
</table>
</body>
</html>

9 个解决方案

#1


建议不要传递ResultSet
假如你建立的Connection已经关闭,那么去读这个ResultSet就会出错的!
你可以在servlet中先把ResultSet中的数据读到一个Collection中,然后将这个Collection传给JSP

#2


把这个ResultSet放到一个对象里面再传到jsp中

#3


能给出一段例子吗?我对Collection还不大熟的
谢谢

#4


用struts就很简单咯.要是不闲麻烦可以使用伪ajax技术就能达到目的.

#5


Collection<String[]> resultCollection = new ArrayList<String[]>();
while(rs.next())
{
String[] row = new String[2];
row[0] = rs.getString(1);
row[1] = rs.getString(2);
resultCollection.add(row);
}
request.setAttribute("result", resultCollection);

------------------------------------------------------------

<%
Collection<String[]> result = (Collection<String[]>)request.getAttribute("result");
for (String[] row : result)
{
%>
<tr><td><%=row[0]%></td><td><%=row[2]%></td></tr>
<%
}
%>

#6


请问
for (String[] row : result)

这句是什么意思啊

#7


5。0中的新特性
循环!

#8


for (String[] row : result){

==

for (Iterator iter = result.iterator(); iter.hasNext(); )
{
String[] row = (String[])iter.next();

#9


问题已解决,多谢,送分

#1


建议不要传递ResultSet
假如你建立的Connection已经关闭,那么去读这个ResultSet就会出错的!
你可以在servlet中先把ResultSet中的数据读到一个Collection中,然后将这个Collection传给JSP

#2


把这个ResultSet放到一个对象里面再传到jsp中

#3


能给出一段例子吗?我对Collection还不大熟的
谢谢

#4


用struts就很简单咯.要是不闲麻烦可以使用伪ajax技术就能达到目的.

#5


Collection<String[]> resultCollection = new ArrayList<String[]>();
while(rs.next())
{
String[] row = new String[2];
row[0] = rs.getString(1);
row[1] = rs.getString(2);
resultCollection.add(row);
}
request.setAttribute("result", resultCollection);

------------------------------------------------------------

<%
Collection<String[]> result = (Collection<String[]>)request.getAttribute("result");
for (String[] row : result)
{
%>
<tr><td><%=row[0]%></td><td><%=row[2]%></td></tr>
<%
}
%>

#6


请问
for (String[] row : result)

这句是什么意思啊

#7


5。0中的新特性
循环!

#8


for (String[] row : result){

==

for (Iterator iter = result.iterator(); iter.hasNext(); )
{
String[] row = (String[])iter.next();

#9


问题已解决,多谢,送分