package cnitcastsessionServlet;import cnitcastsessionentityCake;import javaxservletServletException;import javaxservletannotationWebServlet;import javaxservlethttpHttpServlet;import javaxservlethttpHt

如下:

package cn.itcast.session.Servlet; import cn.itcast.session.entity.Cake; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import java.io.IOException; import java.io.PrintWriter; import java.util.ArrayList; import java.util.List; @WebServlet(name = "CartServlet",urlPatterns="/CartServlet") public class CartServlet extends HttpServlet { public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { resp.setContentType("text/html;charset=utf-8"); PrintWriter out = resp.getWriter(); // 变量cart引用用户的购物车 List cart=null; // 变量purFlag标记用户是否买过商品 boolean purFlag = true; // 获得用户的session HttpSession session = req.getSession(false); // 如果session为null,则purFlag置为false if (session == null) { purFlag=false; } else { // 获得用户购物车 cart = (List) session.getAttribute("cart"); // 如果用的购物车为null,则purFlag置为false if (cart == null) { purFlag = false; } } if (!purFlag) { out.write("对不起!您还没有购买任何商品!
"); } else { // 否则显示用户购买蛋糕的信息 out.write("您购买的蛋糕有:
"); double price = 0; for (Cake cake : cart) { out.write(cake.getName() + "
"); price += cake.getPrice(); } out.write("总价为:" + price + "元"); } }

public void doPost(HttpServletRequest req, HttpServletResponse resp)
        throws ServletException, IOException {
    // 设置请求的编码格式
    req.setCharacterEncoding("utf-8");
    // 获取请求参数
    String name = req.getParameter("name");
    double price = Double.parseDouble(req.getParameter("price"));
    // 创建蛋糕对象
    Cake cake = new Cake(name, price);
    // 获取用户的session
    HttpSession session = req.getSession();
    // 获取用户的购物车
    List<Cake> cart = (List) session.getAttribute("cart");
    // 如果购物车为null,则创建一个购物车
    if (cart == null) {
        cart = new ArrayList<Cake>();
        session.setAttribute("cart", cart);
    }
    // 将蛋糕对象加入购物车中
    cart.add(cake);
    // 提示用户添加成功
    resp.setContentType("text/html;charset=utf-8");
    PrintWriter out = resp.getWriter();
    out.write("添加成功!<br>");
    out.write("<a href='/CartServlet'>查看购物车</a>");
}

}

修改后的代码增加了一个doPost方法,用于将用户购买的蛋糕添加到购物车中。同时,在doGet方法中,当有购买记录时,增加了显示购物车总价的功能

标签: 社会


原文地址: https://gggwd.com/t/topic/fI1Z 著作权归作者所有。请勿转载和采集!