这是public void demand(HttpServletRequest req, HttpServletResponse resp,Connection conn) throws IOException{
String sql="select * from message";
message mes=new message();
List<message> mess=new ArrayList<message>();
ResultSet rs = DB.executeQuery(conn, sql);
try {
while(rs.next()){
mes.initFromRs(rs);
System.out.println(mes.getTitle());
mess.add(mes);
}
req.setAttribute("mes", mess);
} catch (SQLException e) {

e.printStackTrace();
}
try{req.getRequestDispatcher("message.jsp").forward(req,resp);}
catch (ServletException e) {
e.printStackTrace();
} catch (IOException e) { e.printStackTrace();
}

}
跳转到JSP后里面的值全部一样<%List mess= (ArrayList)request.getAttribute("mes");%>
<%for(int i=0;i<mess.size();i++  ){
message mes=(message)mess.get(i);
System.out.println(mes.getTitle()+"0000000000");
 %>
<tr>
  <td width="34" height="29"></td>
    <td width="157"><STRONG><%=mes.getName() %></STRONG></td>
    <td width="141"><STRONG><%=mes.getTitle() %></STRONG></td>
    <td width="141"><STRONG><%=mes.getMegDate() %></STRONG></td>
    <td width="143"><STRONG><%=mes.getRecive() %></STRONG></td>
    <td width="144"><STRONG><a href="" taget="self">回复</a></STRONG></td>

</tr>
<%} %>结果是:                                                怎么改,,帮帮
值全部一样....
留言人 标题 留言时间 是否回复 操作 
 神的传说 如此爱你 2009-04-03 未回复 回复 
 神的传说 如此爱你 2009-04-03 未回复 回复 
 神的传说 如此爱你 2009-04-03 未回复 回复 
 神的传说 如此爱你 2009-04-03 未回复 回复 
 神的传说 如此爱你 2009-04-03 未回复 回复 
 神的传说 如此爱你 2009-04-03 未回复 回复 
 神的传说 如此爱你 2009-04-03 未回复 回复 
 神的传说 如此爱你 2009-04-03 未回复 回复 
 神的传说 如此爱你 2009-04-03 未回复 回复 
 神的传说 如此爱你 2009-04-03 未回复 回复 
 神的传说 如此爱你 2009-04-03 未回复 回复 
 神的传说 如此爱你 2009-04-03 未回复 回复 
 神的传说 如此爱你 2009-04-03 未回复 回复 
 神的传说 如此爱你 2009-04-03 未回复 回复 
 神的传说 如此爱你 2009-04-03 未回复 回复 
 神的传说 如此爱你 2009-04-03 未回复 回复 
 神的传说 如此爱你 2009-04-03 未回复 回复 
 神的传说 如此爱你 2009-04-03 未回复 回复 
 神的传说 如此爱你 2009-04-03 未回复 回复 
 神的传说 如此爱你 2009-04-03 未回复 回复 

解决方案 »

  1.   

    message mes=new message();
    List <message> mess=new ArrayList <message>();
    ResultSet rs = DB.executeQuery(conn, sql);
    try {
    while(rs.next()){
    mes.initFromRs(rs);
    System.out.println(mes.getTitle());
    mess.add(mes);

    这段代码换换顺序List <message> mess=new ArrayList <message>();
    ResultSet rs = DB.executeQuery(conn, sql);
    try {
    while(rs.next()){
    message mes=new message();
    mes.initFromRs(rs);
    System.out.println(mes.getTitle());
    mess.add(mes);

    因为mes是循环外定义的对象,所以每次更新mes是,mess中前面放进去的也对应会更新
      

  2.   


    public void demand(HttpServletRequest req, HttpServletResponse resp,Connection conn) throws IOException{ 
    String sql="select * from message"; 
    message mes=new message();//1
    List <message> mess=new ArrayList <message>(); 
    ResultSet rs = DB.executeQuery(conn, sql); 
    try { 
    while(rs.next()){
    //2
    mes.initFromRs(rs); 
    System.out.println(mes.getTitle()); 
    mess.add(mes); 

    req.setAttribute("mes", mess); 
    } catch (SQLException e) { 
    e.printStackTrace(); 

    try {
    req.getRequestDispatcher("message.jsp").forward(req,resp);
    } catch (ServletException e) { 
    e.printStackTrace(); 
    } catch (IOException e) { 
    e.printStackTrace(); 
    }

    将1放到2那个地方
      

  3.   

    你没有新建对象只是把第一行循环并add()到mess中