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
");
} 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 著作权归作者所有。请勿转载和采集!