jsp session购物车类型
发布网友
发布时间:2022-05-10 14:39
我来回答
共1个回答
热心网友
时间:2023-10-12 02:35
首先,我们可以看到,程序中首先是获得
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一个
感觉挺详细的了
希望楼主能够看明白