这次我们来完善上次没完成的功能,前部分的功能可查看以下博客
servlet版购物车项目(上)_筱X的博客-CSDN博客servlet购物车项目(上)https://blog.csdn.net/weixin_67235801/article/details/124499606?spm=1001.2014.3001.5502
目录
一、补充:数据库建表语句
二、修改部分
购物车:car.jsp
过滤器:LoginFilter.java
三、新增部分
1.实体类
订单:Order.java
2.数据库访问层接口
订单:IOrderDao.java
订单项:IOrderItemDao.java
3.实现数据库访问层接口的类
订单:OrderDaoImpl.java
订单项:OrderItemDaoImpl.java
4.业务逻辑层接口
订单:IOrderBiz.java
订单项:IOrderItemBiz.java
5.实现业务逻辑层接口的类
订单:OrderBizImpl.java
订单项:OrderItemBizImpl.java
6.处理功能
订单结算:CalcServlet.java
订单的servlet:OrderServlet.java
订单项的servlet:ItemServlet.java
7.web界面
订单:order.jsp
订单项:item.jsp
一、补充:数据库建表语句
--用户表
create table car_user
(
id number primary key,
account varchar2(30) not null,
password varchar(32) not null
);
--商品表
create table car_goods
(
id number primary key,
name varchar2(20) not null,
describe varchar2(100) default '此商品暂时没有介绍藍' not null,
price number not null
);
--订单表
create table car_order
(
id number primary key,
user_id number not null,
total number not null
);
--订单项表
create table car_order_item
(
id number primary key,
order_id number not null,
goods_id number not null,
quantity number not null,
total number not null
);
二、修改部分
购物车:car.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
购物车界面
${user.account},您好, 这是购物车
继续购买
订单结算
查看订单
清空
购物车:car.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
购物车界面
${user.account},您好, 这是购物车
继续购买
订单结算
查看订单
清空
| 商品编号 | 商品名字 | 商品数量 | 商品总价 | 商品操作 |
|---|---|---|---|---|
| ${item.goods.id} | ${item.goods.name} | ${item.quantity} | ${item.total} | 删除 +1 -1 |
过滤器:LoginFilter.java
package com.xyz.filter;
import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
@WebFilter("
public class Order {
private Integer id;
private Integer userId;
private Integer total;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public Integer getUserId() {
return userId;
}
public void setUserId(Integer userId) {
this.userId = userId;
}
public Integer getTotal() {
return total;
}
public void setTotal(Integer total) {
this.total = total;
}
public Order() {
// TODO Auto-generated constructor stub
}
public Order(Integer id, Integer userId, Integer total) {
super();
this.id = id;
this.userId = userId;
this.total = total;
}
@Override
public String toString() {
return "Order [id=" + id + ", userId=" + userId + ", total=" + total + "]";
}
}
2.数据库访问层接口
订单:IOrderDao.java
package com.xyz.dao;
import com.xyz.pojo.Order;
import java.util.List;
public interface IOrderDao {
int maxPK();
int insert(Order order);
List list(int userId);
}
订单项:IOrderItemDao.java
package com.xyz.dao;
import com.xyz.pojo.OrderItem;
import java.util.List;
public interface IOrderItemDao {
int maxPK();
int insert(OrderItem item);
List list(Integer id);
}
3.实现数据库访问层接口的类
订单:OrderDaoImpl.java
package com.xyz.dao.impl;
import com.xyz.dao.IOrderDao;
import com.xyz.pojo.Goods;
import com.xyz.pojo.Order;
import com.xyz.util.DBHelper;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
public class OrderDaoImpl implements IOrderDao {
//定义资源
private Connection con;
private PreparedStatement ps;
private ResultSet rs;
@Override
public int maxPK() {
try {
con = DBHelper.getCon();
ps = con.prepareStatement("select nvl(max(id),0)+1 from car_order");
rs = ps.executeQuery();
if (rs.next()) {
return rs.getInt(1);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
DBHelper.close(con, ps, rs);
}
return 0;
}
@Override
public int insert(Order order) {
try {
con = DBHelper.getCon();
ps = con.prepareStatement("insert into car_order values(?,?,?)");
ps.setInt(1,order.getId());
ps.setInt(2,order.getUserId());
ps.setInt(3,order.getTotal());
return ps.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
} finally {
DBHelper.close(con, ps, rs);
}
return 0;
}
@Override
public List list(int userId) {
List list = new ArrayList<>();
try {
con = DBHelper.getCon();
ps = con.prepareStatement("select * from car_order where user_id=?");
ps.setInt(1,userId);
rs=ps.executeQuery();
while(rs.next()){
Order order=new Order();
order.setId(rs.getInt(1));
order.setUserId(rs.getInt(2));
order.setTotal(rs.getInt(3));
list.add(order);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
DBHelper.close(con, ps, rs);
}
return list;
}
}
订单项:OrderItemDaoImpl.java
package com.xyz.dao.impl;
import com.xyz.dao.IGoodsDao;
import com.xyz.dao.IOrderItemDao;
import com.xyz.pojo.Order;
import com.xyz.pojo.OrderItem;
import com.xyz.util.DBHelper;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
public class OrderItemDaoImpl implements IOrderItemDao {
private IGoodsDao goodsDao=new GoodsDaoImpl();
//定义资源
private Connection con;
private PreparedStatement ps;
private ResultSet rs;
@Override
public int maxPK() {
try {
con = DBHelper.getCon();
ps = con.prepareStatement("select nvl(max(id),0)+1 from car_order_item");
rs = ps.executeQuery();
if (rs.next()) {
return rs.getInt(1);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
DBHelper.close(con, ps, rs);
}
return 0;
}
@Override
public int insert(OrderItem item) {
try {
con = DBHelper.getCon();
ps = con.prepareStatement("insert into car_order_item values(?,?,?,?,?)");
ps.setInt(1, item.getId());
ps.setInt(2, item.getOrderId());
ps.setInt(3, item.getGoods().getId());
ps.setInt(4, item.getQuantity());
ps.setInt(5, item.getTotal());
return ps.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
} finally {
DBHelper.close(con, ps, rs);
}
return 0;
}
@Override
public List list(Integer orderId) {
List list = new ArrayList<>();
try {
con = DBHelper.getCon();
ps = con.prepareStatement("select * from car_order_item where order_id=?");
ps.setInt(1,orderId);
rs=ps.executeQuery();
while(rs.next()){
OrderItem item=new OrderItem();
item.setId(rs.getInt(1));
item.setOrderId(rs.getInt(2));
item.setGoods(goodsDao.one(rs.getInt(3)));
item.setQuantity(rs.getInt(4));
item.setTotal(rs.getInt(5));
list.add(item);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
DBHelper.close(con, ps, rs);
}
return list;
}
}
4.业务逻辑层接口
订单:IOrderBiz.java
package com.xyz.biz;
import com.xyz.pojo.Order;
import java.util.List;
public interface IOrderBiz {
int maxPK();
int insert(Order order);
List list(int userId);
}
订单项:IOrderItemBiz.java
package com.xyz.biz;
import com.xyz.pojo.OrderItem;
import java.util.List;
public interface IOrderItemBiz {
int maxPK();
int insert(OrderItem item);
List list(Integer id);
}
5.实现业务逻辑层接口的类
订单:OrderBizImpl.java
package com.xyz.biz.impl;
import com.xyz.biz.IOrderBiz;
import com.xyz.dao.IOrderDao;
import com.xyz.dao.impl.OrderDaoImpl;
import com.xyz.pojo.Order;
import java.util.List;
public class OrderBizImpl implements IOrderBiz {
private IOrderDao orderDao=new OrderDaoImpl();
@Override
public int maxPK() {
return orderDao.maxPK();
}
@Override
public int insert(Order order) {
return orderDao.insert(order);
}
@Override
public List list(int userId) {
return orderDao.list(userId);
}
}
订单项:OrderItemBizImpl.java
package com.xyz.biz.impl;
import com.xyz.biz.IOrderItemBiz;
import com.xyz.dao.IOrderItemDao;
import com.xyz.dao.impl.OrderItemDaoImpl;
import com.xyz.pojo.OrderItem;
import java.util.List;
public class OrderItemBizImpl implements IOrderItemBiz {
private IOrderItemDao orderItemDao=new OrderItemDaoImpl();
@Override
public int maxPK() {
return orderItemDao.maxPK();
}
@Override
public int insert(OrderItem item) {
return orderItemDao.insert(item);
}
@Override
public List list(Integer id) {
return orderItemDao.list(id);
}
}
6.处理功能
订单结算:CalcServlet.java
package com.xyz.servlet;
import com.xyz.biz.IOrderBiz;
import com.xyz.biz.IOrderItemBiz;
import com.xyz.biz.impl.OrderBizImpl;
import com.xyz.biz.impl.OrderItemBizImpl;
import com.xyz.pojo.Order;
import com.xyz.pojo.OrderItem;
import com.xyz.pojo.User;
import org.apache.commons.codec.binary.StringUtils;
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;
@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");
}
}
订单的servlet:OrderServlet.java
package com.xyz.servlet;
import com.xyz.biz.IOrderBiz;
import com.xyz.biz.IOrderItemBiz;
import com.xyz.biz.impl.OrderBizImpl;
import com.xyz.biz.impl.OrderItemBizImpl;
import com.xyz.pojo.Order;
import com.xyz.pojo.OrderItem;
import com.xyz.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;
@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);
//返回order.jsp
req.getRequestDispatcher("order.jsp").forward(req,resp);
}
}
订单项的servlet:ItemServlet.java
package com.xyz.servlet;
import com.xyz.biz.IOrderBiz;
import com.xyz.biz.IOrderItemBiz;
import com.xyz.biz.impl.OrderBizImpl;
import com.xyz.biz.impl.OrderItemBizImpl;
import com.xyz.pojo.Order;
import com.xyz.pojo.OrderItem;
import com.xyz.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;
@WebServlet("/item.do")
public class ItemServlet extends HttpServlet {
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 {
//接受订单的id
Integer id = Integer.parseInt(req.getParameter("id"));
//根据订单id查询对应的订单项
List list = orderItemBiz.list(id);
//放到请求作用域中
req.setAttribute("list",list);
//返回order.jsp
req.getRequestDispatcher("item.jsp").forward(req,resp);
}
}
7.web界面
订单:order.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
我的订单
您好, 这是订单界面
继续购买
返回购物车
订单:IOrderDao.java
package com.xyz.dao;
import com.xyz.pojo.Order;
import java.util.List;
public interface IOrderDao {
int maxPK();
int insert(Order order);
List list(int userId);
}
订单项:IOrderItemDao.java
package com.xyz.dao;
import com.xyz.pojo.OrderItem;
import java.util.List;
public interface IOrderItemDao {
int maxPK();
int insert(OrderItem item);
List list(Integer id);
}
3.实现数据库访问层接口的类
订单:OrderDaoImpl.java
package com.xyz.dao.impl;
import com.xyz.dao.IOrderDao;
import com.xyz.pojo.Goods;
import com.xyz.pojo.Order;
import com.xyz.util.DBHelper;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
public class OrderDaoImpl implements IOrderDao {
//定义资源
private Connection con;
private PreparedStatement ps;
private ResultSet rs;
@Override
public int maxPK() {
try {
con = DBHelper.getCon();
ps = con.prepareStatement("select nvl(max(id),0)+1 from car_order");
rs = ps.executeQuery();
if (rs.next()) {
return rs.getInt(1);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
DBHelper.close(con, ps, rs);
}
return 0;
}
@Override
public int insert(Order order) {
try {
con = DBHelper.getCon();
ps = con.prepareStatement("insert into car_order values(?,?,?)");
ps.setInt(1,order.getId());
ps.setInt(2,order.getUserId());
ps.setInt(3,order.getTotal());
return ps.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
} finally {
DBHelper.close(con, ps, rs);
}
return 0;
}
@Override
public List list(int userId) {
List list = new ArrayList<>();
try {
con = DBHelper.getCon();
ps = con.prepareStatement("select * from car_order where user_id=?");
ps.setInt(1,userId);
rs=ps.executeQuery();
while(rs.next()){
Order order=new Order();
order.setId(rs.getInt(1));
order.setUserId(rs.getInt(2));
order.setTotal(rs.getInt(3));
list.add(order);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
DBHelper.close(con, ps, rs);
}
return list;
}
}
订单项:OrderItemDaoImpl.java
package com.xyz.dao.impl;
import com.xyz.dao.IGoodsDao;
import com.xyz.dao.IOrderItemDao;
import com.xyz.pojo.Order;
import com.xyz.pojo.OrderItem;
import com.xyz.util.DBHelper;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
public class OrderItemDaoImpl implements IOrderItemDao {
private IGoodsDao goodsDao=new GoodsDaoImpl();
//定义资源
private Connection con;
private PreparedStatement ps;
private ResultSet rs;
@Override
public int maxPK() {
try {
con = DBHelper.getCon();
ps = con.prepareStatement("select nvl(max(id),0)+1 from car_order_item");
rs = ps.executeQuery();
if (rs.next()) {
return rs.getInt(1);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
DBHelper.close(con, ps, rs);
}
return 0;
}
@Override
public int insert(OrderItem item) {
try {
con = DBHelper.getCon();
ps = con.prepareStatement("insert into car_order_item values(?,?,?,?,?)");
ps.setInt(1, item.getId());
ps.setInt(2, item.getOrderId());
ps.setInt(3, item.getGoods().getId());
ps.setInt(4, item.getQuantity());
ps.setInt(5, item.getTotal());
return ps.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
} finally {
DBHelper.close(con, ps, rs);
}
return 0;
}
@Override
public List list(Integer orderId) {
List list = new ArrayList<>();
try {
con = DBHelper.getCon();
ps = con.prepareStatement("select * from car_order_item where order_id=?");
ps.setInt(1,orderId);
rs=ps.executeQuery();
while(rs.next()){
OrderItem item=new OrderItem();
item.setId(rs.getInt(1));
item.setOrderId(rs.getInt(2));
item.setGoods(goodsDao.one(rs.getInt(3)));
item.setQuantity(rs.getInt(4));
item.setTotal(rs.getInt(5));
list.add(item);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
DBHelper.close(con, ps, rs);
}
return list;
}
}
4.业务逻辑层接口
订单:IOrderBiz.java
package com.xyz.biz;
import com.xyz.pojo.Order;
import java.util.List;
public interface IOrderBiz {
int maxPK();
int insert(Order order);
List list(int userId);
}
订单项:IOrderItemBiz.java
package com.xyz.biz;
import com.xyz.pojo.OrderItem;
import java.util.List;
public interface IOrderItemBiz {
int maxPK();
int insert(OrderItem item);
List list(Integer id);
}
5.实现业务逻辑层接口的类
订单:OrderBizImpl.java
package com.xyz.biz.impl;
import com.xyz.biz.IOrderBiz;
import com.xyz.dao.IOrderDao;
import com.xyz.dao.impl.OrderDaoImpl;
import com.xyz.pojo.Order;
import java.util.List;
public class OrderBizImpl implements IOrderBiz {
private IOrderDao orderDao=new OrderDaoImpl();
@Override
public int maxPK() {
return orderDao.maxPK();
}
@Override
public int insert(Order order) {
return orderDao.insert(order);
}
@Override
public List list(int userId) {
return orderDao.list(userId);
}
}
订单项:OrderItemBizImpl.java
package com.xyz.biz.impl;
import com.xyz.biz.IOrderItemBiz;
import com.xyz.dao.IOrderItemDao;
import com.xyz.dao.impl.OrderItemDaoImpl;
import com.xyz.pojo.OrderItem;
import java.util.List;
public class OrderItemBizImpl implements IOrderItemBiz {
private IOrderItemDao orderItemDao=new OrderItemDaoImpl();
@Override
public int maxPK() {
return orderItemDao.maxPK();
}
@Override
public int insert(OrderItem item) {
return orderItemDao.insert(item);
}
@Override
public List list(Integer id) {
return orderItemDao.list(id);
}
}
6.处理功能
订单结算:CalcServlet.java
package com.xyz.servlet;
import com.xyz.biz.IOrderBiz;
import com.xyz.biz.IOrderItemBiz;
import com.xyz.biz.impl.OrderBizImpl;
import com.xyz.biz.impl.OrderItemBizImpl;
import com.xyz.pojo.Order;
import com.xyz.pojo.OrderItem;
import com.xyz.pojo.User;
import org.apache.commons.codec.binary.StringUtils;
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;
@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");
}
}
订单的servlet:OrderServlet.java
package com.xyz.servlet;
import com.xyz.biz.IOrderBiz;
import com.xyz.biz.IOrderItemBiz;
import com.xyz.biz.impl.OrderBizImpl;
import com.xyz.biz.impl.OrderItemBizImpl;
import com.xyz.pojo.Order;
import com.xyz.pojo.OrderItem;
import com.xyz.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;
@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);
//返回order.jsp
req.getRequestDispatcher("order.jsp").forward(req,resp);
}
}
订单项的servlet:ItemServlet.java
package com.xyz.servlet;
import com.xyz.biz.IOrderBiz;
import com.xyz.biz.IOrderItemBiz;
import com.xyz.biz.impl.OrderBizImpl;
import com.xyz.biz.impl.OrderItemBizImpl;
import com.xyz.pojo.Order;
import com.xyz.pojo.OrderItem;
import com.xyz.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;
@WebServlet("/item.do")
public class ItemServlet extends HttpServlet {
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 {
//接受订单的id
Integer id = Integer.parseInt(req.getParameter("id"));
//根据订单id查询对应的订单项
List list = orderItemBiz.list(id);
//放到请求作用域中
req.setAttribute("list",list);
//返回order.jsp
req.getRequestDispatcher("item.jsp").forward(req,resp);
}
}
7.web界面
订单:order.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
我的订单
您好, 这是订单界面
继续购买
返回购物车
package com.xyz.dao;
import com.xyz.pojo.OrderItem;
import java.util.List;
public interface IOrderItemDao {
int maxPK();
int insert(OrderItem item);
List list(Integer id);
}
3.实现数据库访问层接口的类
订单:OrderDaoImpl.java
package com.xyz.dao.impl;
import com.xyz.dao.IOrderDao;
import com.xyz.pojo.Goods;
import com.xyz.pojo.Order;
import com.xyz.util.DBHelper;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
public class OrderDaoImpl implements IOrderDao {
//定义资源
private Connection con;
private PreparedStatement ps;
private ResultSet rs;
@Override
public int maxPK() {
try {
con = DBHelper.getCon();
ps = con.prepareStatement("select nvl(max(id),0)+1 from car_order");
rs = ps.executeQuery();
if (rs.next()) {
return rs.getInt(1);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
DBHelper.close(con, ps, rs);
}
return 0;
}
@Override
public int insert(Order order) {
try {
con = DBHelper.getCon();
ps = con.prepareStatement("insert into car_order values(?,?,?)");
ps.setInt(1,order.getId());
ps.setInt(2,order.getUserId());
ps.setInt(3,order.getTotal());
return ps.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
} finally {
DBHelper.close(con, ps, rs);
}
return 0;
}
@Override
public List list(int userId) {
List list = new ArrayList<>();
try {
con = DBHelper.getCon();
ps = con.prepareStatement("select * from car_order where user_id=?");
ps.setInt(1,userId);
rs=ps.executeQuery();
while(rs.next()){
Order order=new Order();
order.setId(rs.getInt(1));
order.setUserId(rs.getInt(2));
order.setTotal(rs.getInt(3));
list.add(order);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
DBHelper.close(con, ps, rs);
}
return list;
}
}
订单项:OrderItemDaoImpl.java
package com.xyz.dao.impl;
import com.xyz.dao.IGoodsDao;
import com.xyz.dao.IOrderItemDao;
import com.xyz.pojo.Order;
import com.xyz.pojo.OrderItem;
import com.xyz.util.DBHelper;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
public class OrderItemDaoImpl implements IOrderItemDao {
private IGoodsDao goodsDao=new GoodsDaoImpl();
//定义资源
private Connection con;
private PreparedStatement ps;
private ResultSet rs;
@Override
public int maxPK() {
try {
con = DBHelper.getCon();
ps = con.prepareStatement("select nvl(max(id),0)+1 from car_order_item");
rs = ps.executeQuery();
if (rs.next()) {
return rs.getInt(1);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
DBHelper.close(con, ps, rs);
}
return 0;
}
@Override
public int insert(OrderItem item) {
try {
con = DBHelper.getCon();
ps = con.prepareStatement("insert into car_order_item values(?,?,?,?,?)");
ps.setInt(1, item.getId());
ps.setInt(2, item.getOrderId());
ps.setInt(3, item.getGoods().getId());
ps.setInt(4, item.getQuantity());
ps.setInt(5, item.getTotal());
return ps.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
} finally {
DBHelper.close(con, ps, rs);
}
return 0;
}
@Override
public List list(Integer orderId) {
List list = new ArrayList<>();
try {
con = DBHelper.getCon();
ps = con.prepareStatement("select * from car_order_item where order_id=?");
ps.setInt(1,orderId);
rs=ps.executeQuery();
while(rs.next()){
OrderItem item=new OrderItem();
item.setId(rs.getInt(1));
item.setOrderId(rs.getInt(2));
item.setGoods(goodsDao.one(rs.getInt(3)));
item.setQuantity(rs.getInt(4));
item.setTotal(rs.getInt(5));
list.add(item);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
DBHelper.close(con, ps, rs);
}
return list;
}
}
4.业务逻辑层接口
订单:IOrderBiz.java
package com.xyz.biz;
import com.xyz.pojo.Order;
import java.util.List;
public interface IOrderBiz {
int maxPK();
int insert(Order order);
List list(int userId);
}
订单项:IOrderItemBiz.java
package com.xyz.biz;
import com.xyz.pojo.OrderItem;
import java.util.List;
public interface IOrderItemBiz {
int maxPK();
int insert(OrderItem item);
List list(Integer id);
}
5.实现业务逻辑层接口的类
订单:OrderBizImpl.java
package com.xyz.biz.impl;
import com.xyz.biz.IOrderBiz;
import com.xyz.dao.IOrderDao;
import com.xyz.dao.impl.OrderDaoImpl;
import com.xyz.pojo.Order;
import java.util.List;
public class OrderBizImpl implements IOrderBiz {
private IOrderDao orderDao=new OrderDaoImpl();
@Override
public int maxPK() {
return orderDao.maxPK();
}
@Override
public int insert(Order order) {
return orderDao.insert(order);
}
@Override
public List list(int userId) {
return orderDao.list(userId);
}
}
订单项:OrderItemBizImpl.java
package com.xyz.biz.impl;
import com.xyz.biz.IOrderItemBiz;
import com.xyz.dao.IOrderItemDao;
import com.xyz.dao.impl.OrderItemDaoImpl;
import com.xyz.pojo.OrderItem;
import java.util.List;
public class OrderItemBizImpl implements IOrderItemBiz {
private IOrderItemDao orderItemDao=new OrderItemDaoImpl();
@Override
public int maxPK() {
return orderItemDao.maxPK();
}
@Override
public int insert(OrderItem item) {
return orderItemDao.insert(item);
}
@Override
public List list(Integer id) {
return orderItemDao.list(id);
}
}
6.处理功能
订单结算:CalcServlet.java
package com.xyz.servlet;
import com.xyz.biz.IOrderBiz;
import com.xyz.biz.IOrderItemBiz;
import com.xyz.biz.impl.OrderBizImpl;
import com.xyz.biz.impl.OrderItemBizImpl;
import com.xyz.pojo.Order;
import com.xyz.pojo.OrderItem;
import com.xyz.pojo.User;
import org.apache.commons.codec.binary.StringUtils;
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;
@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");
}
}
订单的servlet:OrderServlet.java
package com.xyz.servlet;
import com.xyz.biz.IOrderBiz;
import com.xyz.biz.IOrderItemBiz;
import com.xyz.biz.impl.OrderBizImpl;
import com.xyz.biz.impl.OrderItemBizImpl;
import com.xyz.pojo.Order;
import com.xyz.pojo.OrderItem;
import com.xyz.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;
@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);
//返回order.jsp
req.getRequestDispatcher("order.jsp").forward(req,resp);
}
}
订单项的servlet:ItemServlet.java
package com.xyz.servlet;
import com.xyz.biz.IOrderBiz;
import com.xyz.biz.IOrderItemBiz;
import com.xyz.biz.impl.OrderBizImpl;
import com.xyz.biz.impl.OrderItemBizImpl;
import com.xyz.pojo.Order;
import com.xyz.pojo.OrderItem;
import com.xyz.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;
@WebServlet("/item.do")
public class ItemServlet extends HttpServlet {
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 {
//接受订单的id
Integer id = Integer.parseInt(req.getParameter("id"));
//根据订单id查询对应的订单项
List list = orderItemBiz.list(id);
//放到请求作用域中
req.setAttribute("list",list);
//返回order.jsp
req.getRequestDispatcher("item.jsp").forward(req,resp);
}
}
7.web界面
订单:order.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
我的订单
您好, 这是订单界面
继续购买
返回购物车
package com.xyz.dao.impl;
import com.xyz.dao.IOrderDao;
import com.xyz.pojo.Goods;
import com.xyz.pojo.Order;
import com.xyz.util.DBHelper;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
public class OrderDaoImpl implements IOrderDao {
//定义资源
private Connection con;
private PreparedStatement ps;
private ResultSet rs;
@Override
public int maxPK() {
try {
con = DBHelper.getCon();
ps = con.prepareStatement("select nvl(max(id),0)+1 from car_order");
rs = ps.executeQuery();
if (rs.next()) {
return rs.getInt(1);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
DBHelper.close(con, ps, rs);
}
return 0;
}
@Override
public int insert(Order order) {
try {
con = DBHelper.getCon();
ps = con.prepareStatement("insert into car_order values(?,?,?)");
ps.setInt(1,order.getId());
ps.setInt(2,order.getUserId());
ps.setInt(3,order.getTotal());
return ps.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
} finally {
DBHelper.close(con, ps, rs);
}
return 0;
}
@Override
public List list(int userId) {
List list = new ArrayList<>();
try {
con = DBHelper.getCon();
ps = con.prepareStatement("select * from car_order where user_id=?");
ps.setInt(1,userId);
rs=ps.executeQuery();
while(rs.next()){
Order order=new Order();
order.setId(rs.getInt(1));
order.setUserId(rs.getInt(2));
order.setTotal(rs.getInt(3));
list.add(order);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
DBHelper.close(con, ps, rs);
}
return list;
}
}
订单项:OrderItemDaoImpl.java
package com.xyz.dao.impl;
import com.xyz.dao.IGoodsDao;
import com.xyz.dao.IOrderItemDao;
import com.xyz.pojo.Order;
import com.xyz.pojo.OrderItem;
import com.xyz.util.DBHelper;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
public class OrderItemDaoImpl implements IOrderItemDao {
private IGoodsDao goodsDao=new GoodsDaoImpl();
//定义资源
private Connection con;
private PreparedStatement ps;
private ResultSet rs;
@Override
public int maxPK() {
try {
con = DBHelper.getCon();
ps = con.prepareStatement("select nvl(max(id),0)+1 from car_order_item");
rs = ps.executeQuery();
if (rs.next()) {
return rs.getInt(1);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
DBHelper.close(con, ps, rs);
}
return 0;
}
@Override
public int insert(OrderItem item) {
try {
con = DBHelper.getCon();
ps = con.prepareStatement("insert into car_order_item values(?,?,?,?,?)");
ps.setInt(1, item.getId());
ps.setInt(2, item.getOrderId());
ps.setInt(3, item.getGoods().getId());
ps.setInt(4, item.getQuantity());
ps.setInt(5, item.getTotal());
return ps.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
} finally {
DBHelper.close(con, ps, rs);
}
return 0;
}
@Override
public List list(Integer orderId) {
List list = new ArrayList<>();
try {
con = DBHelper.getCon();
ps = con.prepareStatement("select * from car_order_item where order_id=?");
ps.setInt(1,orderId);
rs=ps.executeQuery();
while(rs.next()){
OrderItem item=new OrderItem();
item.setId(rs.getInt(1));
item.setOrderId(rs.getInt(2));
item.setGoods(goodsDao.one(rs.getInt(3)));
item.setQuantity(rs.getInt(4));
item.setTotal(rs.getInt(5));
list.add(item);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
DBHelper.close(con, ps, rs);
}
return list;
}
}
4.业务逻辑层接口
订单:IOrderBiz.java
package com.xyz.biz;
import com.xyz.pojo.Order;
import java.util.List;
public interface IOrderBiz {
int maxPK();
int insert(Order order);
List list(int userId);
}
订单项:IOrderItemBiz.java
package com.xyz.biz;
import com.xyz.pojo.OrderItem;
import java.util.List;
public interface IOrderItemBiz {
int maxPK();
int insert(OrderItem item);
List list(Integer id);
}
5.实现业务逻辑层接口的类
订单:OrderBizImpl.java
package com.xyz.biz.impl;
import com.xyz.biz.IOrderBiz;
import com.xyz.dao.IOrderDao;
import com.xyz.dao.impl.OrderDaoImpl;
import com.xyz.pojo.Order;
import java.util.List;
public class OrderBizImpl implements IOrderBiz {
private IOrderDao orderDao=new OrderDaoImpl();
@Override
public int maxPK() {
return orderDao.maxPK();
}
@Override
public int insert(Order order) {
return orderDao.insert(order);
}
@Override
public List list(int userId) {
return orderDao.list(userId);
}
}
订单项:OrderItemBizImpl.java
package com.xyz.biz.impl;
import com.xyz.biz.IOrderItemBiz;
import com.xyz.dao.IOrderItemDao;
import com.xyz.dao.impl.OrderItemDaoImpl;
import com.xyz.pojo.OrderItem;
import java.util.List;
public class OrderItemBizImpl implements IOrderItemBiz {
private IOrderItemDao orderItemDao=new OrderItemDaoImpl();
@Override
public int maxPK() {
return orderItemDao.maxPK();
}
@Override
public int insert(OrderItem item) {
return orderItemDao.insert(item);
}
@Override
public List list(Integer id) {
return orderItemDao.list(id);
}
}
6.处理功能
订单结算:CalcServlet.java
package com.xyz.servlet;
import com.xyz.biz.IOrderBiz;
import com.xyz.biz.IOrderItemBiz;
import com.xyz.biz.impl.OrderBizImpl;
import com.xyz.biz.impl.OrderItemBizImpl;
import com.xyz.pojo.Order;
import com.xyz.pojo.OrderItem;
import com.xyz.pojo.User;
import org.apache.commons.codec.binary.StringUtils;
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;
@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");
}
}
订单的servlet:OrderServlet.java
package com.xyz.servlet;
import com.xyz.biz.IOrderBiz;
import com.xyz.biz.IOrderItemBiz;
import com.xyz.biz.impl.OrderBizImpl;
import com.xyz.biz.impl.OrderItemBizImpl;
import com.xyz.pojo.Order;
import com.xyz.pojo.OrderItem;
import com.xyz.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;
@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);
//返回order.jsp
req.getRequestDispatcher("order.jsp").forward(req,resp);
}
}
订单项的servlet:ItemServlet.java
package com.xyz.servlet;
import com.xyz.biz.IOrderBiz;
import com.xyz.biz.IOrderItemBiz;
import com.xyz.biz.impl.OrderBizImpl;
import com.xyz.biz.impl.OrderItemBizImpl;
import com.xyz.pojo.Order;
import com.xyz.pojo.OrderItem;
import com.xyz.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;
@WebServlet("/item.do")
public class ItemServlet extends HttpServlet {
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 {
//接受订单的id
Integer id = Integer.parseInt(req.getParameter("id"));
//根据订单id查询对应的订单项
List list = orderItemBiz.list(id);
//放到请求作用域中
req.setAttribute("list",list);
//返回order.jsp
req.getRequestDispatcher("item.jsp").forward(req,resp);
}
}
7.web界面
订单:order.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
我的订单
您好, 这是订单界面
继续购买
返回购物车
订单:IOrderBiz.java
package com.xyz.biz;
import com.xyz.pojo.Order;
import java.util.List;
public interface IOrderBiz {
int maxPK();
int insert(Order order);
List list(int userId);
}
订单项:IOrderItemBiz.java
package com.xyz.biz;
import com.xyz.pojo.OrderItem;
import java.util.List;
public interface IOrderItemBiz {
int maxPK();
int insert(OrderItem item);
List list(Integer id);
}
5.实现业务逻辑层接口的类
订单:OrderBizImpl.java
package com.xyz.biz.impl;
import com.xyz.biz.IOrderBiz;
import com.xyz.dao.IOrderDao;
import com.xyz.dao.impl.OrderDaoImpl;
import com.xyz.pojo.Order;
import java.util.List;
public class OrderBizImpl implements IOrderBiz {
private IOrderDao orderDao=new OrderDaoImpl();
@Override
public int maxPK() {
return orderDao.maxPK();
}
@Override
public int insert(Order order) {
return orderDao.insert(order);
}
@Override
public List list(int userId) {
return orderDao.list(userId);
}
}
订单项:OrderItemBizImpl.java
package com.xyz.biz.impl;
import com.xyz.biz.IOrderItemBiz;
import com.xyz.dao.IOrderItemDao;
import com.xyz.dao.impl.OrderItemDaoImpl;
import com.xyz.pojo.OrderItem;
import java.util.List;
public class OrderItemBizImpl implements IOrderItemBiz {
private IOrderItemDao orderItemDao=new OrderItemDaoImpl();
@Override
public int maxPK() {
return orderItemDao.maxPK();
}
@Override
public int insert(OrderItem item) {
return orderItemDao.insert(item);
}
@Override
public List list(Integer id) {
return orderItemDao.list(id);
}
}
6.处理功能
订单结算:CalcServlet.java
package com.xyz.servlet;
import com.xyz.biz.IOrderBiz;
import com.xyz.biz.IOrderItemBiz;
import com.xyz.biz.impl.OrderBizImpl;
import com.xyz.biz.impl.OrderItemBizImpl;
import com.xyz.pojo.Order;
import com.xyz.pojo.OrderItem;
import com.xyz.pojo.User;
import org.apache.commons.codec.binary.StringUtils;
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;
@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");
}
}
订单的servlet:OrderServlet.java
package com.xyz.servlet;
import com.xyz.biz.IOrderBiz;
import com.xyz.biz.IOrderItemBiz;
import com.xyz.biz.impl.OrderBizImpl;
import com.xyz.biz.impl.OrderItemBizImpl;
import com.xyz.pojo.Order;
import com.xyz.pojo.OrderItem;
import com.xyz.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;
@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);
//返回order.jsp
req.getRequestDispatcher("order.jsp").forward(req,resp);
}
}
订单项的servlet:ItemServlet.java
package com.xyz.servlet;
import com.xyz.biz.IOrderBiz;
import com.xyz.biz.IOrderItemBiz;
import com.xyz.biz.impl.OrderBizImpl;
import com.xyz.biz.impl.OrderItemBizImpl;
import com.xyz.pojo.Order;
import com.xyz.pojo.OrderItem;
import com.xyz.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;
@WebServlet("/item.do")
public class ItemServlet extends HttpServlet {
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 {
//接受订单的id
Integer id = Integer.parseInt(req.getParameter("id"));
//根据订单id查询对应的订单项
List list = orderItemBiz.list(id);
//放到请求作用域中
req.setAttribute("list",list);
//返回order.jsp
req.getRequestDispatcher("item.jsp").forward(req,resp);
}
}
7.web界面
订单:order.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
我的订单
您好, 这是订单界面
继续购买
返回购物车
package com.xyz.biz;
import com.xyz.pojo.OrderItem;
import java.util.List;
public interface IOrderItemBiz {
int maxPK();
int insert(OrderItem item);
List list(Integer id);
}
5.实现业务逻辑层接口的类
订单:OrderBizImpl.java
package com.xyz.biz.impl;
import com.xyz.biz.IOrderBiz;
import com.xyz.dao.IOrderDao;
import com.xyz.dao.impl.OrderDaoImpl;
import com.xyz.pojo.Order;
import java.util.List;
public class OrderBizImpl implements IOrderBiz {
private IOrderDao orderDao=new OrderDaoImpl();
@Override
public int maxPK() {
return orderDao.maxPK();
}
@Override
public int insert(Order order) {
return orderDao.insert(order);
}
@Override
public List list(int userId) {
return orderDao.list(userId);
}
}
订单项:OrderItemBizImpl.java
package com.xyz.biz.impl;
import com.xyz.biz.IOrderItemBiz;
import com.xyz.dao.IOrderItemDao;
import com.xyz.dao.impl.OrderItemDaoImpl;
import com.xyz.pojo.OrderItem;
import java.util.List;
public class OrderItemBizImpl implements IOrderItemBiz {
private IOrderItemDao orderItemDao=new OrderItemDaoImpl();
@Override
public int maxPK() {
return orderItemDao.maxPK();
}
@Override
public int insert(OrderItem item) {
return orderItemDao.insert(item);
}
@Override
public List list(Integer id) {
return orderItemDao.list(id);
}
}
6.处理功能
订单结算:CalcServlet.java
package com.xyz.servlet;
import com.xyz.biz.IOrderBiz;
import com.xyz.biz.IOrderItemBiz;
import com.xyz.biz.impl.OrderBizImpl;
import com.xyz.biz.impl.OrderItemBizImpl;
import com.xyz.pojo.Order;
import com.xyz.pojo.OrderItem;
import com.xyz.pojo.User;
import org.apache.commons.codec.binary.StringUtils;
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;
@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");
}
}
订单的servlet:OrderServlet.java
package com.xyz.servlet;
import com.xyz.biz.IOrderBiz;
import com.xyz.biz.IOrderItemBiz;
import com.xyz.biz.impl.OrderBizImpl;
import com.xyz.biz.impl.OrderItemBizImpl;
import com.xyz.pojo.Order;
import com.xyz.pojo.OrderItem;
import com.xyz.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;
@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);
//返回order.jsp
req.getRequestDispatcher("order.jsp").forward(req,resp);
}
}
订单项的servlet:ItemServlet.java
package com.xyz.servlet;
import com.xyz.biz.IOrderBiz;
import com.xyz.biz.IOrderItemBiz;
import com.xyz.biz.impl.OrderBizImpl;
import com.xyz.biz.impl.OrderItemBizImpl;
import com.xyz.pojo.Order;
import com.xyz.pojo.OrderItem;
import com.xyz.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;
@WebServlet("/item.do")
public class ItemServlet extends HttpServlet {
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 {
//接受订单的id
Integer id = Integer.parseInt(req.getParameter("id"));
//根据订单id查询对应的订单项
List list = orderItemBiz.list(id);
//放到请求作用域中
req.setAttribute("list",list);
//返回order.jsp
req.getRequestDispatcher("item.jsp").forward(req,resp);
}
}
7.web界面
订单:order.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
我的订单
您好, 这是订单界面
继续购买
返回购物车
package com.xyz.biz.impl;
import com.xyz.biz.IOrderBiz;
import com.xyz.dao.IOrderDao;
import com.xyz.dao.impl.OrderDaoImpl;
import com.xyz.pojo.Order;
import java.util.List;
public class OrderBizImpl implements IOrderBiz {
private IOrderDao orderDao=new OrderDaoImpl();
@Override
public int maxPK() {
return orderDao.maxPK();
}
@Override
public int insert(Order order) {
return orderDao.insert(order);
}
@Override
public List list(int userId) {
return orderDao.list(userId);
}
}
订单项:OrderItemBizImpl.java
package com.xyz.biz.impl;
import com.xyz.biz.IOrderItemBiz;
import com.xyz.dao.IOrderItemDao;
import com.xyz.dao.impl.OrderItemDaoImpl;
import com.xyz.pojo.OrderItem;
import java.util.List;
public class OrderItemBizImpl implements IOrderItemBiz {
private IOrderItemDao orderItemDao=new OrderItemDaoImpl();
@Override
public int maxPK() {
return orderItemDao.maxPK();
}
@Override
public int insert(OrderItem item) {
return orderItemDao.insert(item);
}
@Override
public List list(Integer id) {
return orderItemDao.list(id);
}
}
6.处理功能
订单结算:CalcServlet.java
package com.xyz.servlet;
import com.xyz.biz.IOrderBiz;
import com.xyz.biz.IOrderItemBiz;
import com.xyz.biz.impl.OrderBizImpl;
import com.xyz.biz.impl.OrderItemBizImpl;
import com.xyz.pojo.Order;
import com.xyz.pojo.OrderItem;
import com.xyz.pojo.User;
import org.apache.commons.codec.binary.StringUtils;
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;
@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");
}
}
订单的servlet:OrderServlet.java
package com.xyz.servlet;
import com.xyz.biz.IOrderBiz;
import com.xyz.biz.IOrderItemBiz;
import com.xyz.biz.impl.OrderBizImpl;
import com.xyz.biz.impl.OrderItemBizImpl;
import com.xyz.pojo.Order;
import com.xyz.pojo.OrderItem;
import com.xyz.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;
@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);
//返回order.jsp
req.getRequestDispatcher("order.jsp").forward(req,resp);
}
}
订单项的servlet:ItemServlet.java
package com.xyz.servlet;
import com.xyz.biz.IOrderBiz;
import com.xyz.biz.IOrderItemBiz;
import com.xyz.biz.impl.OrderBizImpl;
import com.xyz.biz.impl.OrderItemBizImpl;
import com.xyz.pojo.Order;
import com.xyz.pojo.OrderItem;
import com.xyz.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;
@WebServlet("/item.do")
public class ItemServlet extends HttpServlet {
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 {
//接受订单的id
Integer id = Integer.parseInt(req.getParameter("id"));
//根据订单id查询对应的订单项
List list = orderItemBiz.list(id);
//放到请求作用域中
req.setAttribute("list",list);
//返回order.jsp
req.getRequestDispatcher("item.jsp").forward(req,resp);
}
}
7.web界面
订单:order.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
我的订单
您好, 这是订单界面
继续购买
返回购物车
订单结算:CalcServlet.java
package com.xyz.servlet;
import com.xyz.biz.IOrderBiz;
import com.xyz.biz.IOrderItemBiz;
import com.xyz.biz.impl.OrderBizImpl;
import com.xyz.biz.impl.OrderItemBizImpl;
import com.xyz.pojo.Order;
import com.xyz.pojo.OrderItem;
import com.xyz.pojo.User;
import org.apache.commons.codec.binary.StringUtils;
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;
@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");
}
}
订单的servlet:OrderServlet.java
package com.xyz.servlet;
import com.xyz.biz.IOrderBiz;
import com.xyz.biz.IOrderItemBiz;
import com.xyz.biz.impl.OrderBizImpl;
import com.xyz.biz.impl.OrderItemBizImpl;
import com.xyz.pojo.Order;
import com.xyz.pojo.OrderItem;
import com.xyz.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;
@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);
//返回order.jsp
req.getRequestDispatcher("order.jsp").forward(req,resp);
}
}
订单项的servlet:ItemServlet.java
package com.xyz.servlet;
import com.xyz.biz.IOrderBiz;
import com.xyz.biz.IOrderItemBiz;
import com.xyz.biz.impl.OrderBizImpl;
import com.xyz.biz.impl.OrderItemBizImpl;
import com.xyz.pojo.Order;
import com.xyz.pojo.OrderItem;
import com.xyz.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;
@WebServlet("/item.do")
public class ItemServlet extends HttpServlet {
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 {
//接受订单的id
Integer id = Integer.parseInt(req.getParameter("id"));
//根据订单id查询对应的订单项
List list = orderItemBiz.list(id);
//放到请求作用域中
req.setAttribute("list",list);
//返回order.jsp
req.getRequestDispatcher("item.jsp").forward(req,resp);
}
}
7.web界面
订单:order.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
我的订单
您好, 这是订单界面
继续购买
返回购物车
package com.xyz.servlet;
import com.xyz.biz.IOrderBiz;
import com.xyz.biz.IOrderItemBiz;
import com.xyz.biz.impl.OrderBizImpl;
import com.xyz.biz.impl.OrderItemBizImpl;
import com.xyz.pojo.Order;
import com.xyz.pojo.OrderItem;
import com.xyz.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;
@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);
//返回order.jsp
req.getRequestDispatcher("order.jsp").forward(req,resp);
}
}
订单项的servlet:ItemServlet.java
package com.xyz.servlet;
import com.xyz.biz.IOrderBiz;
import com.xyz.biz.IOrderItemBiz;
import com.xyz.biz.impl.OrderBizImpl;
import com.xyz.biz.impl.OrderItemBizImpl;
import com.xyz.pojo.Order;
import com.xyz.pojo.OrderItem;
import com.xyz.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;
@WebServlet("/item.do")
public class ItemServlet extends HttpServlet {
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 {
//接受订单的id
Integer id = Integer.parseInt(req.getParameter("id"));
//根据订单id查询对应的订单项
List list = orderItemBiz.list(id);
//放到请求作用域中
req.setAttribute("list",list);
//返回order.jsp
req.getRequestDispatcher("item.jsp").forward(req,resp);
}
}
7.web界面
订单:order.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
我的订单
您好, 这是订单界面
继续购买
返回购物车
订单:order.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
我的订单
您好, 这是订单界面
继续购买
返回购物车
| 订单编号 | 订单总价 | 订单操作 |
|---|---|---|
| ${order.id} | ${order.total} | 查看详情 |
点击查看详情可跳转订单项界面。
订单项:item.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
我的订单项
您好, 这是订单项界面
继续购买
返回购物车
| 订单项编号 | 订单项商品名称 | 订单项商品单价 | 订单项下单数量 | 订单项下单总价 |
|---|---|---|---|---|
| ${item.id} | ${item.goods.name} | ${item.goods.price} | ${item.quantity} | ${item.total} |
购物车项目到此结束,感谢大家的观看



