用servlet写一个购物车
时间: 2024-05-05 20:14:55 浏览: 104
应用Servlet实现购物车
好的,购物车是一个常见的电子商务功能,一般需要实现以下几个功能:
1. 加入商品到购物车
2. 从购物车中删除商品
3. 修改购物车中商品的数量
4. 查看购物车中的商品列表
以下是一个简单的使用 Servlet 实现购物车的示例代码:
```
@WebServlet("/shoppingCart")
public class ShoppingCartServlet extends HttpServlet {
private Map<String, Integer> cart = new HashMap<>(); // 购物车数据存储在 Map 中
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String action = req.getParameter("action");
switch (action) {
case "add":
addItem(req);
break;
case "remove":
removeItem(req);
break;
case "update":
updateItem(req);
break;
case "show":
showCart(req, resp);
break;
default:
resp.getWriter().println("Unknown action: " + action);
}
}
private void addItem(HttpServletRequest req) {
String itemId = req.getParameter("itemId");
Integer count = cart.get(itemId);
if (count == null) {
cart.put(itemId, 1);
} else {
cart.put(itemId, count + 1);
}
}
private void removeItem(HttpServletRequest req) {
String itemId = req.getParameter("itemId");
cart.remove(itemId);
}
private void updateItem(HttpServletRequest req) {
String itemId = req.getParameter("itemId");
String countString = req.getParameter("count");
Integer count = Integer.parseInt(countString);
if (count <= 0) {
cart.remove(itemId);
} else {
cart.put(itemId, count);
}
}
private void showCart(HttpServletRequest req, HttpServletResponse resp) throws IOException {
resp.setContentType("text/html;charset=UTF-8");
PrintWriter out = resp.getWriter();
out.println("<html><head><title>Shopping Cart</title></head><body>");
out.println("<h1>Shopping Cart</h1>");
out.println("<table><tr><th>Item Id</th><th>Count</th></tr>");
for (Map.Entry<String, Integer> entry : cart.entrySet()) {
out.println("<tr><td>" + entry.getKey() + "</td><td>" + entry.getValue() + "</td></tr>");
}
out.println("</table>");
out.println("<a href=\"/shoppingCart?action=add&itemId=item001\">Add item 1</a><br/>");
out.println("<a href=\"/shoppingCart?action=add&itemId=item002\">Add item 2</a><br/>");
out.println("<a href=\"/shoppingCart?action=add&itemId=item003\">Add item 3</a><br/>");
out.println("<a href=\"/shoppingCart?action=remove&itemId=item001\">Remove item 1</a><br/>");
out.println("<a href=\"/shoppingCart?action=update&itemId=item002&count=3\">Update item 2 to 3</a><br/>");
out.println("<form action=\"/shoppingCart?action=update\" method=\"post\">");
out.println("Item Id: <input type=\"text\" name=\"itemId\"><br/>");
out.println("Count: <input type=\"number\" name=\"count\"><br/>");
out.println("<input type=\"submit\" value=\"Update\"><br/>");
out.println("</form>");
out.println("<a href=\"/shoppingCart?action=show\">Show Cart</a>");
out.println("</body></html>");
out.close();
}
}
```
这段代码实现了四个功能,通过 URL 的参数 action 来区分。
添加商品到购物车的操作,URL 为 /shoppingCart?action=add&itemId=xxx。
从购物车中删除商品的操作,URL 为 /shoppingCart?action=remove&itemId=xxx。
修改购物车中商品的数量的操作,URL 为 /shoppingCart?action=update&itemId=xxx&count=yyy,同时还提供了一个表单用于修改数量。
查看购物车中的商品列表的操作,URL 为 /shoppingCart?action=show。这里直接输出 HTML,给出了一些修改购物车的操作的链接和表单,方便测试。
你可以根据自己的需要修改代码,例如修改购物车数据的存储方式,实现更复杂的业务逻辑,添加权限控制等。
阅读全文