购物网站是如何一个个放入SESSION,又是如何一个个取出

FEIFEI12345678 2008-09-17 10:23:51
//提交后转入SERVLET
String shangp=request.getParameter("shangp");
String price=request.getParameter("price");
ArrayList <Shop_items> list=new ArrayList <Shop_items>();
Shop_items shitem=new Shop_items();
shitem.setShangp(shangp);
shitem.setPrice(price);
if(list.isEmpty()==true){
list.add(shitem);

}else{
list.addAll(list);
}

if(list==null||list.size() <=0){
response.sendRedirect("../fun/image_info.jsp");
}else{

HttpSession session=request.getSession();
session.setAttribute("list", list);
response.sendRedirect("../fun/shopping.jsp");

}
//JSP取出,取出来只有一个,是不是放入SESSION的问题,请高手指点下
<%
try{
ArrayList <Shop_items> list2=new ArrayList <Shop_items>();
list2=(ArrayList)session.getAttribute("list");

if(list2!=null){
for(int i=0;i <list2.size();i++){

%>
<TR>
<td align="center"> <%=list2.get(i).getShangp()%> </td> <td > <%=list2.get(i).getPrice()%> </td>
</TR>
<%} }}catch(Exception e){}%>
...全文
201 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
ZXEOC 2008-09-17
  • 打赏
  • 举报
回复
2楼的意思是,你每次添加商品,你都new了一个list,然后把当前商品添加进去了,然后你setAttribute的时候把这个list替换掉原来的list了,这样原来list里的信息都没有了,你应该先从session里把原来的list取出来,把它放在另一个变量里,然后add到新的list里再替换。
iiitom 2008-09-17
  • 打赏
  • 举报
回复
问题是?
详细点?
FEIFEI12345678 2008-09-17
  • 打赏
  • 举报
回复
能否写详细点吗
ee4456 2008-09-17
  • 打赏
  • 举报
回复
if(list.isEmpty()==true){
list.add(shitem);

}else{
list.addAll(list);
}

??
你这当然list里永远只有一个元素了???
你new 的list,if(list.isEmpty()==true这个条件当然成立了...你应该从session里获得list再往里边加元素
ee4456 2008-09-17
  • 打赏
  • 举报
回复
session中放一个map or set,每次操作map或者set集合就是了
FEIFEI12345678 2008-09-17
  • 打赏
  • 举报
回复
大家还有没有什么好的方法,都说来听听

在此特别谢谢9、10楼的朋友
FEIFEI12345678 2008-09-17
  • 打赏
  • 举报
回复
哦,终于实现了,谢谢了各位
ZXEOC 2008-09-17
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 ldxfsh 的回复:]
ArrayList <Shop_items> list=new ArrayList <Shop_items>(); 把这个改成下面就好了
Java codeArrayList<Shop_items>list=(ArrayList<Shop_items>) session.getAttribute("list");if(null==list)
list=newArrayList<Shop_items>();
[/Quote]
这样不行,他第一次要new这个list,否则session里没有list,要么楼主,你在声明session的时候直接丢个空的list进去也行,那样就可以用这个代码了
ldxfsh 2008-09-17
  • 打赏
  • 举报
回复
ArrayList <Shop_items> list=new ArrayList <Shop_items>(); 把这个改成下面就好了

ArrayList <Shop_items> list = (ArrayList <Shop_items>) session.getAttribute("list");
if(null == list)
list=new ArrayList <Shop_items>();
FEIFEI12345678 2008-09-17
  • 打赏
  • 举报
回复
明白,但不知怎么写,能麻烦写下一点 提示吗,谢谢
ee4456 2008-09-17
  • 打赏
  • 举报
回复
已经很详细了,就是你每次放的list里都是从新给的直,而每次给的一个直,当然只能取到一个了???还没明白吗?
FEIFEI12345678 2008-09-17
  • 打赏
  • 举报
回复
哦,用两个变量

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧