jsp session购物车类型
HttpSessions=request.getSession();ArrayListal=(ArrayList)s.getAttribute("gouwuche");i...
HttpSession s = request.getSession();
ArrayList al = (ArrayList)s.getAttribute("gouwuche");
if(al == null)//第一次访问,还没有购物车
{
ArrayList aaa = new ArrayList();
aaa.add(item);//item货物信息
s.setAttribute("gouwuche",aaa);
}else
{
al.add(item);
}
//在JSP页面上gouwuche是这样取的
<%
ArrayList al = (ArrayList)session.getAttribute("gouwuche");
%>
<%for(int i=0;i<al.size();i++)
{
ItemVO p = (ItemVO)al.get(i);
}
%>
第一次访问没有购物车创建gouwuche<购物车吧>,但是为什么要创建了一个新的Arraylist集合类aaa添加item这个类,item这个类是封装商品信息的不应该被覆盖吧
第二次访问怎么又放到al这个集合类里面了,而且视频上说,第二次不用再添加到session里面了因为什么传值.
这个问题困扰好很长时间了,请帮我解答一下。 展开
ArrayList al = (ArrayList)s.getAttribute("gouwuche");
if(al == null)//第一次访问,还没有购物车
{
ArrayList aaa = new ArrayList();
aaa.add(item);//item货物信息
s.setAttribute("gouwuche",aaa);
}else
{
al.add(item);
}
//在JSP页面上gouwuche是这样取的
<%
ArrayList al = (ArrayList)session.getAttribute("gouwuche");
%>
<%for(int i=0;i<al.size();i++)
{
ItemVO p = (ItemVO)al.get(i);
}
%>
第一次访问没有购物车创建gouwuche<购物车吧>,但是为什么要创建了一个新的Arraylist集合类aaa添加item这个类,item这个类是封装商品信息的不应该被覆盖吧
第二次访问怎么又放到al这个集合类里面了,而且视频上说,第二次不用再添加到session里面了因为什么传值.
这个问题困扰好很长时间了,请帮我解答一下。 展开
1个回答
展开全部
首先,我们可以看到,程序中首先是获得
HttpSession s = request.getSession();
因为我们要把用户已经选择了的商品信息放到session里面,至于为什么放到
session里面,楼主可以看看关于session 的讲解内容,这里理解成session就是从用户进到网站来到退出,一直存在的东西,就像超市里的手推车一样
好,言归正传
我们在获得了session后,判断session中是否放入了商品信息
ArrayList al = (ArrayList)s.getAttribute("gouwuche");
if(al == null)//第一次访问,还没有购物车
像代码提示中所说,第一次应该是没有
那么执行if中的内容
ArrayList aaa = new ArrayList();
aaa.add(item);//item货物信息
s.setAttribute("gouwuche",aaa);
之所以new 一个 ArrayList是因为我们使用ArrayList来存放商品信息
因为用户不可能只买一个商品,所以需要用一个list去存放他们
这样在选择了第一件商品后,我们把它存放在list里面,让后把这个list放到session里面
当第二次进入方法的时候
还是先判断session里面是否有东西
因为之前放过了
所以这回有了
那么执行else里面的内容else
{
al.add(item);
}
直接进行添加
这样就实现了购物车的功能
另外楼主问道关于al的问题,也就ArrayList的问题
首先我们看到
ArrayList al = (ArrayList)s.getAttribute("gouwuche");
这一句类似于
获得ArrayList的对象
但是没有的情况下
(ArrayList)s.getAttribute("gouwuche");
就是null
那么
ArrayList al = (ArrayList)s.getAttribute("gouwuche");
类似于
ArrayList al = null;
所以
if(al == null)
的时候我们要去new一个
感觉挺详细的了
希望楼主能够看明白
HttpSession s = request.getSession();
因为我们要把用户已经选择了的商品信息放到session里面,至于为什么放到
session里面,楼主可以看看关于session 的讲解内容,这里理解成session就是从用户进到网站来到退出,一直存在的东西,就像超市里的手推车一样
好,言归正传
我们在获得了session后,判断session中是否放入了商品信息
ArrayList al = (ArrayList)s.getAttribute("gouwuche");
if(al == null)//第一次访问,还没有购物车
像代码提示中所说,第一次应该是没有
那么执行if中的内容
ArrayList aaa = new ArrayList();
aaa.add(item);//item货物信息
s.setAttribute("gouwuche",aaa);
之所以new 一个 ArrayList是因为我们使用ArrayList来存放商品信息
因为用户不可能只买一个商品,所以需要用一个list去存放他们
这样在选择了第一件商品后,我们把它存放在list里面,让后把这个list放到session里面
当第二次进入方法的时候
还是先判断session里面是否有东西
因为之前放过了
所以这回有了
那么执行else里面的内容else
{
al.add(item);
}
直接进行添加
这样就实现了购物车的功能
另外楼主问道关于al的问题,也就ArrayList的问题
首先我们看到
ArrayList al = (ArrayList)s.getAttribute("gouwuche");
这一句类似于
获得ArrayList的对象
但是没有的情况下
(ArrayList)s.getAttribute("gouwuche");
就是null
那么
ArrayList al = (ArrayList)s.getAttribute("gouwuche");
类似于
ArrayList al = null;
所以
if(al == null)
的时候我们要去new一个
感觉挺详细的了
希望楼主能够看明白
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询