如何用session实现一个添加购车功能

一、得到购物车里面的数据

  1. 先得到一个session 对象
  2. 得到session对象里面的集合
  3. 遍历集合
  4. 从服务器把集合内容返回给浏览器
  5. 因为添加购物车的中有汉字显示,所以需要设置一下编码格式

二、用session实现一个加入购物车的功能

1. 获取商品的信息
2. 保存商品信息给session对象
3. 得到的信息设置到session中,(如果多个信息的话 后面的会覆盖前面的信息)
4. 如何保存多个信息呢,需要用到集合list,new一个ArrayList,把浏览器请求的key 都放进去
5. 但是这样只能实现 这一次加入购物车的记录,并不能把之前的购物车里面的记录一起结算‘
6,对一次访问的时候list是不存在的 需要做一个判断,并且创建一个ArrayList
7. 设置session的持久化 就是设置JSESSIONID的时间 ,然后返回给浏览器

得到购物车里面的数据部分的代码

@WebServlet(name = "GetCartServlet",urlPatterns = "/getcart")
public class GetCartServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        response.setContentType("text/html;charset=utf-8");

        HttpSession session= request.getSession();
        List<String> list= (List<String>) session.getAttribute("list");
        for (String s : list) {
            response.getWriter().write(s+"<br/>");
        }
    }
}

加入购物车的功能部分的代码

@WebServlet(name = "AddCartServlet",urlPatterns = "/addCart")
public class AddCartServlet extends HttpServlet {

    private HttpSession httpSession;

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

       String name= request.getParameter("name");
       HttpSession session = request.getSession();


       //这个是拿到之前加入购物车的商品,
        List list = (List) session.getAttribute("list");
       if(list==null){
           //如果之前没有商品就重新为其new一个ArraryList
           list = new ArrayList();
       }
        list.add(name);
        session.setAttribute("list",list);
        //持久化session的操作
        Cookie cookie= new Cookie("JSESSIONID",session.getId());
        cookie.setMaxAge(60*60);
        cookie.setPath("/hello");
        response.addCookie(cookie);
    }
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值