JSP从数据库中取数据,结果取出来的都是最后一条的重复数据,这是怎么回事
我在JSP上写了下面这些代码从数据库中取出数据并显示,可是结果是,假如我数据库中有50条信息,它给我显示出来的50条信息都是重复最后一条数据的,下面这个代码应该怎么改写呢,我看不大懂for循环是做什么的,麻烦帮我解释下呀
<%			List<ReportProcess> rp=new ArrayList<ReportProcess>();
			ReportProcess rps=new ReportProcess();
			String id=(String)session.getAttribute("id");
			ResultSet rs=null;
			Connection con=null;
			DBConnection dbcon=new DBConnection();
			try{
				con=dbcon.getConnection();
				dbcon.setSql("rprocess");
				prst=con.prepareStatement(dbcon.getSql());
				prst.setString(1,id);
				rs=prst.executeQuery();
				while(rs.next()){
					rps.initFormRs(rs);
					rp.add(rps);
				}
			}
			catch (
SQLException e)
			{}finally{
				dbcon.closedb(rs,con);
			}
			for(Iterator<ReportProcess> it = rp.iterator();it.hasNext(); ){
		    rps = it.next();
%>
	<tr>
	<td><input type="text" name="xuehao" value="<%=rps.getId()%>"></td>
	<td><input type="text" name="riqi" value="<%=rps.getRdate()%>"></td>
	<td><input type="text" name="xuesheng" value="<%=rps.getSname()%>"></td>
	<th><input type="text" name="jiaoshi" value="<%=rps.getTname()%>"></td>
	<td><input type="text" name="jidu" size=100 value="<%=rps.getPosition()%>"></td>
	</tr>
<%
}%>
------解决方案--------------------rps.initFormRs(rs); 和 sql 发出来看看
------解决方案--------------------for(ReportProcess r:rp){
r = it.next();
%>
<tr>
<td><input type="text" name="xuehao" value="<%=r.getId()%>"></td>
<td><input type="text" name="riqi" value="<%=r.getRdate()%>"></td>
<td><input type="text" name="xuesheng" value="<%=r.getSname()%>"></td>
<th><input type="text" name="jiaoshi" value="<%=r.getTname()%>"></td>
<td><input type="text" name="jidu" size=100 value="<%=r.getPosition()%>"></td>
</tr>
<%
}%>  
你把你的for循环换成这个看行不行。
------解决方案--------------------你的rps实例在while(rs.next())循环外面也就是说只会rps所引用的实例只会是最后一个。
建议:
while(rs.next()){
 ReportProcess rps=new ReportProcess();
 rps.initFormRs(rs);
 rp.add(rps);
}