大侠们,我把一个类设置好属性并放到了List中,并且放进了session,但是在JSP取出时,长度是对的,却都是最后一个对象,请问这是为什么??求解。谢谢~后台输出也是显示全部都是最后一个结果
public class MenuIndexHotServlet extends HttpServlet {
private Menu menu = new Menu();
public void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
DBConnect db=new DBConnect();
Connection con=db.getCon();
HttpSession session = request.getSession();
Statement stat = null;
ResultSet rs = null;
String sql = "select top 10 m_name,m_price,m_pic from menus order by m_sale desc";
List<Menu> list = new ArrayList();
try {
stat = con.createStatement();
rs=stat.executeQuery(sql);
while(rs.next()){
System.out.println(rs.getString("m_pic"));
System.out.println(rs.getString("m_name"));
System.out.println(rs.getString("m_price"));
menu.setName(rs.getString("m_name"));
menu.setPrice(Float.parseFloat(rs.getString("m_price")));
menu.setPic(rs.getString("m_pic"));
list.add(menu);
}
con.close();
session.setAttribute("menuindex",list);
list = (List)session.getAttribute("menuindex");
int i;
for(i=0;i<list.size();i++){
menu = (Menu)list.get(i);
System.out.println(menu.getPic());
System.out.println(menu.getName());
System.out.println(menu.getPrice());
}
//request.getRequestDispatcher("../index_menu.jsp").forward(request,response);
response.sendRedirect("../index_menu.jsp");
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
后台输出的结果:
120
炸馒头
30.0
110
香芋卷
20.0
120
土豆切片
30.0
110
青椒肉丝
20.0
120
黑椒鸡排
30.0
110
秘制鸡排
20.0
---------分隔符(下面是放进session后,取出的结果)----------
110
秘制鸡排
20.0
110
秘制鸡排
20.0
110
秘制鸡排
20.0
110
秘制鸡排
20.0
110
秘制鸡排
20.0
110
秘制鸡排
20.0