- 订单结算
- 查看订单
- 清空购物车
⭐结算:
package com.ljq.servlet;
import java.io.IOException;
import java.util.List;
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 com.ljq.biz.IOrderBiz;
import com.ljq.biz.IOrderItemBiz;
import com.ljq.biz.impl.OrderBizImpl;
import com.ljq.biz.impl.OrderItemBizImpl;
import com.ljq.pojo.Order;
import com.ljq.pojo.OrderItem;
import com.ljq.pojo.User;
@SuppressWarnings("all")
@WebServlet("/calc.do")
public class CalcServlet extends HttpServlet {
private IOrderBiz orderBiz = new OrderBizImpl();
private IOrderItemBiz orderItemBiz = new OrderItemBizImpl();
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// 购物车在哪里?
List car = (List) req.getSession().getAttribute("car");
// 获得用户
User user = (User) req.getSession().getAttribute("user");
// 什么是结算? 将数据放到【订单】【订单项】
if (car.isEmpty()) {
// 返回购物车
resp.sendRedirect("car.jsp");
return;
}
// 计算总和
int sum = 0;
for (OrderItem item : car) {
sum += item.getTotal();
}
// 优先结算订单
Order order = new Order();
order.setId(orderBiz.maxPK());
order.setUserId(user.getId());
order.setTotal(sum);
// 将订单放到数据库
int i = orderBiz.insert(order);
if (i > 0) {
// 如果订单插入成功了,则插入订单项
for (OrderItem item : car) {
// item没有id
item.setId(orderItemBiz.maxPK());
// 也没有订单编号
item.setOrderId(order.getId());
orderItemBiz.insert(item);
}
// 结算完毕
car.clear();
// 清空价格
req.getSession().setAttribute("total", 0);
}
// 返回购物车
resp.sendRedirect("car.jsp");
}
}
⭐⭐查看订单:
orderservlet.java(处理显示)
package com.ljq.servlet;
import com.ljq.biz.IOrderBiz;
import com.ljq.biz.IOrderItemBiz;
import com.ljq.biz.impl.OrderBizImpl;
import com.ljq.biz.impl.OrderItemBizImpl;
import com.ljq.pojo.Order;
import com.ljq.pojo.OrderItem;
import com.ljq.pojo.User;
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 java.io.IOException;
import java.util.List;
@SuppressWarnings("all")
@WebServlet("/order.do")
public class OrderServlet extends HttpServlet {
private IOrderBiz orderBiz = new OrderBizImpl();
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
User user = (User) req.getSession().getAttribute("user");
List list = orderBiz.list(user.getId());
req.setAttribute("list", list);
req.getRequestDispatcher("order.jsp").forward(req, resp);
}
}
order.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>我的订单 ${user.account},welcome toorder
| 订单编号 | 订单总价 | 订单操作 |
|---|---|---|
| 1 | 320.0 |
效果图:
⭐⭐清空购物车
clearServlet
package com.ljq.servlet;
import com.ljq.pojo.OrderItem;
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 java.io.IOException;
import java.util.List;
@SuppressWarnings("all")
@WebServlet("/clear.do")
public class ClearServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
List car = (List) req.getSession().getAttribute("car");
car.clear();
resp.sendRedirect("car.jsp");
}
}
这次的MVC购物车小项目就全部搞定了!



