javaweb之MVC购物车(加入购物车,订单,订单详情)

MVC(Model View Controller)是软件工程中的一种软件架构模式,它把软件系统分为模型、视图和控制器三个基本部分。用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。

用MVC写购物车的优点:
1. 耦合性低,方便维护,可以利于分工协作

2. 重用性高
 


1、index.jsp(主界面)

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <!--通过taglib引入JSTL标准标签库  -->
    <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<!--通过c标签判断是否在域对象中存在数据-->
	<c:if test="${empty listGoods }">
		<jsp:forward page="GoodsListServlet"></jsp:forward>
	</c:if>

	<h2 style="text-align:center">${users.username}购物首页</h2>
	<hr/>
	<p>欢迎您!大佬先生--${users.username}
	<button onclick="tc()">退出登录</button>
	</p>
	<table border="1" cellspacing="0" cellpadding="0" width="100%" >
		<tr>
			<th>商品编码</th>
			<th>商品名称</th>
			<th>商品价格</th>
			<th>操作</th>
		</tr>
		<!--通过c标签遍历数据  -->
		<c:forEach items="${listGoods}" var="goods">
			<tr>
				<td>${goods.gid}</td>
				<td>${goods.gname}</td>
				<td>${goods.gprice}</td>
				<td>
					<button onclick="addCart(${goods.gid})">加入购物车</button>
				</td>
			</tr>
		</c:forEach>
	</table>
	
	<script type="text/javascript">
	//加入购物车的点击事件
	function addCart(gid) {
		//alert(gid);
		window.location.href="AddCartServlet?gid="+gid;
	}
	
	function tc() {
		window.location.href="DownLoadServlt";
	}
	
	</script>
</body>
</html>

效果图:

 cart.jsp(我的购物车)

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<h1>我的购物车</h1>
	<p><a href="index.jsp">返回首页</a></p>
	<hr/>
	<table border="1" cellspacing="0" cellpadding="0" width="100%" >
		<tr>
			<th>购物车编码</th>
			<th>商品名称</th>
			<th>商品单价</th>
			<th>商品数量</th>
			<th>商品总价</th>
			<th>操作</th>
		</tr>
		<!--通过c标签遍历数据  -->
		<c:forEach items="${listCarts}" var="cart">
			<tr>
				<td>${cart.cid}</td>
				<td>${cart.goods.gname}</td>
				<td>${cart.goods.gprice}</td>
				<td>${cart.count}</td>
				<td>${cart.ctotal}</td>
				<td>
					<button>删除</button><button>修改</button>
				</td>
			</tr>
		</c:forEach>
	</table>
	
	<p style="text-align: right" onclick="buy()">
		<button>结算</button>
	</p>
	
	<script type="text/javascript">
	
		function buy() {
			location.href="FindCartInfoServlet";
		}
	
	
	
	</script>
	
	
	
	
</body>
</html>

效果图:

 3.cartfirm.jsp(订单界面)

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<h3>确认订单</h3>
	<h6>确认收货地址</h6>
	<input id="oaddress" type="text" style="width: 100%;height: 40px"/>
	<br/><br/>
	<hr/>
	<h6>确认订单信息</h6>
	<p>
		商品总件数:${sessionScope.maps.sumCount }
	</p>
	
	<h6>商品信息</h6>
	<c:forEach items="${sessionScope.maps.cartByUsersid }" var="mycar">
		<p>
			<span>${mycar.goods.gname}</span>
		</p>
	</c:forEach>
	<hr/>
	<p>
		<h1>总金额:${sessionScope.maps.sumPrince}</h1>
	</p>
	<input type="button" value="支付" onclick="confirmorder()"/>
	<script type="text/javascript">
		function confirmorder() {
			var oaddress = document.getElementById("oaddress").value;
			if(!oaddress){
				alert("请输入地址在确认订单");
				return;
			}
			location.href="ConfirmOrderServlet?oaddress="+oaddress;
		}
	
	</script>
	
	
	
	
	
</body>
</html>

底层代码(dao方法)

GoodsDaoImpl.java

package com.zking.mvc.cart.dao.impl;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;

import com.zking.mvc.cart.dao.IGoodsDao;
import com.zking.mvc.cart.entity.Cart;
import com.zking.mvc.cart.entity.Goods;
import com.zking.mvc.cart.entity.OrderItem;
import com.zking.mvc.cart.entity.Users;
import com.zking.mvc.cart.utils.DBHelper;

public class GoodsDaoImpl implements IGoodsDao {

	@Override
	public List<Goods> queryGoodsAll() {
		
		//1.定义对应的三兄弟以及其他的相关变量
		Connection conn = null;
		PreparedStatement ps = null;
		ResultSet rs = null;
		String sql = "";
		Goods  goods = null;
		List<Goods> list = new ArrayList<Goods>();
		//2.给对应的对象以及变量赋值
		try {
			//获取连接
			conn = DBHelper.getCon();
			//sql
			sql = "select * from tb_goods";
			//执行SQL语句
			ps = conn.prepareStatement(sql);
			//返回结果集
			rs = ps.executeQuery();
			//遍历结果集
			while(rs.next()) {
				goods = new Goods();
				goods.setGid(rs.getInt(1));
				goods.setGname(rs.getString(2));
				goods.setGprice(rs.getInt(3));
				list.add(goods);
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		finally {
			DBHelper.myClo(conn, ps, rs);
		}
		//3.返回结果
		return list;
	}

	

	@Override
	public Goods getGoodsByGid(int gid) {
		//1.定义对应的三兄弟以及其他的相关变量
		Connection conn = null;
		PreparedStatement ps = null;
		ResultSet rs = null;
		String sql = "";
		Goods  goods = null;
		//2.给对应的对象以及变量赋值
		try {
			//获取连接
			conn = DBHelper.getCon();
			//sql
			sql = "select * from tb_goods where gid="+gid;
			//执行SQL语句
			ps = conn.prepareStatement(sql);
			//返回结果集
			rs = ps.executeQuery();
			//遍历结果集
			if(rs.next()) {
				goods = new Goods();
				goods.setGid(rs.getInt(1));
				goods.setGname(rs.getString(2));
				goods.setGprice(rs.getInt(3));
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		finally {
			DBHelper.myClo(conn, ps, rs);
		}
		//3.返回结果
		return goods;
	}



	@Override
	public int deleteGoods(int usersid) {
		// 1.定义对应的三兄弟以及其他的相关变量
				Connection conn = null;
				PreparedStatement ps = null;
				String sql = "";
				int n = 0;
				// 2.给对应的对象以及变量赋值
				try {
					// 获取连接
					conn = DBHelper.getCon();
					// sql
					sql = "delete tb_cart where userid="+usersid;
					// 执行SQL语句
					ps = conn.prepareStatement(sql);
					n = ps.executeUpdate();
				} catch (Exception e) {
					e.printStackTrace();
				} finally {
					DBHelper.myClo(conn, ps, null);
				}
				// 3.返回结果
				return n;
	}
	
	
	
	
	
}

CartDaoImpl.java

package com.zking.mvc.cart.dao.impl;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;

import com.zking.mvc.cart.dao.IcartDao;
import com.zking.mvc.cart.entity.Cart;
import com.zking.mvc.cart.entity.Goods;
import com.zking.mvc.cart.entity.Users;
import com.zking.mvc.cart.utils.DBHelper;

public class CartDaoImpl implements IcartDao {

	
	@Override
	public int addCart(Cart cart) {
		//1.定义对应的三兄弟以及其他的相关变量
		Connection conn = null;
		PreparedStatement ps = null;
		String sql = "";
		int n = 0;
		List<Goods> list = new ArrayList<Goods>();
		//2.给对应的对象以及变量赋值
		try {
			//获取连接
			conn = DBHelper.getCon();
			//sql
			sql ="insert into tb_cart " + " select nvl(max(cid),0)+1 ,?,?,?,? from tb_cart";
			//执行SQL语句
			ps = conn.prepareStatement(sql);
			ps.setInt(1, cart.getGoods().getGid());
			ps.setInt(2, cart.getUsers().getUserid());
			ps.setInt(3, cart.getCount());
			ps.setInt(4, cart.getCtotal());
			n=ps.executeUpdate();
		} catch (Exception e) {
			e.printStackTrace();
		}
		finally {
			DBHelper.myClo(conn, ps, null);
		}
		//3.返回结果
		return n;
	}

	@Override
	public List<Cart> getCartByUsersid(int userid) {
		//1.定义对应的三兄弟以及其他的相关变量
		Connection conn = null;
		PreparedStatement ps = null;
		String sql = "";
		Cart c = null;
		List<Cart> list =  new ArrayList<Cart>();
		ResultSet rs = null;
		//2.给对应的对象以及变量赋值
		try {
			//获取连接
			conn = DBHelper.getCon();
			//sql
			sql ="select * from tb_cart where userid = "+userid;
			ps = conn.prepareStatement(sql);
			//执行sql语句
			rs = ps.executeQuery();
			while(rs.next()) {
				c = new Cart();
				c.setCid(rs.getInt(1));
				c.setGoods(new GoodsDaoImpl().getGoodsByGid(rs.getInt(2)));
				//更新
				c.setUsers(new Users(rs.getInt(3),"zkingzz","123"));
				c.setCount(rs.getInt(4));
				c.setCtotal();
				list.add(c);
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		finally {
			DBHelper.myClo(conn, ps, null);
		}
		//3.返回结果
		return list;
	}

	@Override
	public int editCartByCidAndUserid(Cart cart) {
		//1.定义对应的三兄弟以及其他的相关变量
		Connection conn = null;
		PreparedStatement ps = null;
		String sql = "";
		int n = 0;
		List<Goods> list = new ArrayList<Goods>();
		//2.给对应的对象以及变量赋值
		try {
			//获取连接
			conn = DBHelper.getCon();
			//sql
			sql ="update tb_cart set ccount = ?,ctotal = ? where cid=? and userid = ?";
			//执行SQL语句
			ps = conn.prepareStatement(sql);
			ps.setInt(1, cart.getCount());
			ps.setInt(2, cart.getCtotal());
			ps.setInt(3, cart.getCid());
			ps.setInt(4, cart.getUsers().getUserid());
			n=ps.executeUpdate();
		} catch (Exception e) {
			e.printStackTrace();
		}
		finally {
			DBHelper.myClo(conn, ps, null);
		}
		//3.返回结果
		return n;
	}

	
}

OrderDao .java

package com.zking.mvc.cart.dao.impl;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;

import com.zking.mvc.cart.biz.IGoodsBiz;
import com.zking.mvc.cart.biz.impl.GoodsBizImpl;
import com.zking.mvc.cart.biz.impl.UserBizImpl;
import com.zking.mvc.cart.dao.IOrderDao;
import com.zking.mvc.cart.dao.IOrderItemDao;
import com.zking.mvc.cart.entity.Cart;
import com.zking.mvc.cart.entity.Order;
import com.zking.mvc.cart.entity.OrderItem;
import com.zking.mvc.cart.entity.Users;
import com.zking.mvc.cart.utils.DBHelper;

public class OrderDao implements IOrderDao {

	private IOrderItemDao iod = new OrderItemDaoItem();

	@Override
	public int add(Order o) {
		// 1.定义对应的三兄弟以及其他的相关变量
		Connection conn = null;
		PreparedStatement ps = null;
		String sql = "";
		int n = 0;
		// 2.给对应的对象以及变量赋值
		try {
			// 获取连接
			conn = DBHelper.getCon();
			// sql
			sql = "insert into orders " + " select nvl(max(id),0)+1 ,?,?,?,?,? from orders";
			// 执行SQL语句
			ps = conn.prepareStatement(sql);
			ps.setInt(1, o.getOrderid());
			ps.setInt(2, o.getUsers().getUserid());
			ps.setInt(3, o.getNum());
			ps.setInt(4, o.getPrice());
			ps.setInt(5, o.getOstate());

			n = ps.executeUpdate();
			if (n != 0) {
				if (o.getList() != null) {
					List<Cart> list = o.getList();
					for (Cart cart : list) {
						// 实例化
						OrderItem orderitem = new OrderItem();
						// 订单编号
						orderitem.setOrder(o);
						// 商品编号
						orderitem.setGood(cart.getGoods());
						// 商品数量
						orderitem.setNum(cart.getCount());
						// 单价
						orderitem.setPrice(cart.getCtotal());

						// 将这些商品保存到订单详情
						iod.addOrderItems(orderitem);

						// 生成订单的同时清空购物车
						IGoodsBiz ig = new GoodsBizImpl();

						ig.deleteGoods(cart.getUsers().getUserid());

					}
				}
			}
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			DBHelper.myClo(conn, ps, null);
		}
		// 3.返回结果
		return n;
	}

	@Override
	public Order getall(int orderid) {
		// 1.定义对应的三兄弟以及其他的相关变量
		Connection conn = null;
		PreparedStatement ps = null;
		ResultSet rs = null;
		String sql = "";
		Order o=null;
		// 2.给对应的对象以及变量赋值
		try {
			// 获取连接
			conn = DBHelper.getCon();
			// sql
			sql = "select * from orders where orderid="+orderid;
			// 执行SQL语句
			ps = conn.prepareStatement(sql);
			rs = ps.executeQuery();
			if(rs.next()) {
				o = new Order();
				o.setOrderid(rs.getInt(2));
				o.setUsers(new IUsersDaoImpl().getall(rs.getInt(3)));
				o.setNum(rs.getInt(4));
				o.setPrice(rs.getInt(5));
				o.setOstate(rs.getInt(6));
				o.setOaddress("浪琴湾");
			}
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			DBHelper.myClo(conn, ps, null);
		}
		// 3.返回结果
		return o;
	}

	
}

OrderItemDaoItem .java

package com.zking.mvc.cart.dao.impl;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;

import com.zking.mvc.cart.dao.IOrderItemDao;
import com.zking.mvc.cart.entity.Cart;
import com.zking.mvc.cart.entity.OrderItem;
import com.zking.mvc.cart.utils.DBHelper;

public class OrderItemDaoItem implements IOrderItemDao {

	@Override
	public int addOrderItems(OrderItem orderitem) {
		// 1.定义对应的三兄弟以及其他的相关变量
		Connection conn = null;
		PreparedStatement ps = null;
		String sql = "";
		int n = 0;
		// 2.给对应的对象以及变量赋值
		try {
			// 获取连接
			conn = DBHelper.getCon();
			// sql
			sql = "insert into ordersitem " + " select nvl(max(id),0)+1 ,?,?,?,? from ordersitem";
			// 执行SQL语句
			ps = conn.prepareStatement(sql);
			ps.setInt(1, orderitem.getOrder().getOrderid());
			ps.setInt(2,orderitem.getGood().getGid());
			ps.setInt(3, orderitem.getNum());
			ps.setInt(4, orderitem.getPrice());
			n = ps.executeUpdate();
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			DBHelper.myClo(conn, ps, null);
		}
		// 3.返回结果
		return n;
	}
	
	
	@Override
	public List<OrderItem> getAll() {
		// 1.定义对应的三兄弟以及其他的相关变量
		Connection conn = null;
		PreparedStatement ps = null;
		String sql = "";
		ResultSet rs = null;
		List<OrderItem> lo = new ArrayList<OrderItem>();
		// 2.给对应的对象以及变量赋值
		try {
			// 获取连接
			conn = DBHelper.getCon();
			// sql
			sql = "select * from ordersitem ";
			// 执行SQL语句
			ps = conn.prepareStatement(sql);
			rs=ps.executeQuery();
			while(rs.next()) {
				OrderItem o = new OrderItem();
				o.setId(rs.getInt(1));
				o.setOrder(new OrderDao().getall(rs.getInt(2)));
				o.setGood(new GoodsDaoImpl().getGoodsByGid(rs.getInt(3)));
				o.setNum(rs.getInt(4));
				o.setPrice(rs.getInt(5));
				lo.add(o);
			}
			
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			DBHelper.myClo(conn, ps, null);
		}
		// 3.返回结果
		return lo;
	}


}

servlet包

AddCartServlet .java

package com.zking.mvc.cart.servlet;

import java.io.IOException;
import java.util.ArrayList;
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 javax.servlet.http.HttpSession;

import com.zking.mvc.cart.biz.ICartBiz;
import com.zking.mvc.cart.biz.IGoodsBiz;
import com.zking.mvc.cart.biz.impl.CartBizImpl;
import com.zking.mvc.cart.biz.impl.GoodsBizImpl;
import com.zking.mvc.cart.entity.Cart;
import com.zking.mvc.cart.entity.Goods;
import com.zking.mvc.cart.entity.Users;

/**
 * Servlet implementation class AddCartServlet
 */
@WebServlet("/AddCartServlet")
public class AddCartServlet extends HttpServlet {
	
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doPost(request, response);
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		//jrebel  热部署插件
		//加入加购物车的servlet
		//System.out.println("进来了!");
		//1.设置字符集编码
		request.setCharacterEncoding("utf-8");
		response.setCharacterEncoding("utf-8");
		response.setContentType("text/html;charset=utf-8");
		
		//2.获取location带过来的gid
		String id = request.getParameter("gid");
		int gid = 0;
		if(null!=id) {
			gid = Integer.valueOf(id);
		}
		//数据封装
		Cart c = new Cart();
		//将gid Userid ccount ctotal 封装到cart实体对象中
		IGoodsBiz igb = new GoodsBizImpl();
		Goods goods = igb.getGoodsByGid(gid);
		
		//userid
		HttpSession session = request.getSession();
		Users users = (Users)session.getAttribute("users");
		
		c.setGoods(goods);
		c.setUsers(users);
		c.setCount(1);
		c.setCtotal();
		
		//System.out.println(c);
		
		//要想将封装好的购物车信息 保存到数据库中
		//先获取当前这个登录用户的购物车
		ICartBiz icb = new CartBizImpl();
		List<Cart> listCarts =  icb.getCartByUsersid(users.getUserid());
		//如果购物车List<Cart> listCarts = null;
		boolean flag = true;
		//如果该用户第一次进入 构建一个新的购物车 实例化
		if(null == listCarts ) {
			listCarts = new ArrayList<Cart>();
		}
		else {//非第一次
			//遍历所有的商品
			for (Cart cart : listCarts) {
				//判断当前加入的与购物车已有的进行匹配
				if(cart.getGoods().getGid() == c.getGoods().getGid()) {
					//不需要重复添加 修改数量和总价格
					cart.setCount(cart.getCount()+1);
					cart.setCtotal();
					//进行一个数据库的更新
					icb.editCartByCidAndUserid(cart);
					flag = false;
					break;
				}
			}
		}
		
		//问题:加入购物车 不是加入集合 而是加到数据库
		//listCarts.add(c);
		if(flag) {
			icb.addCart(c);
		}
		//加入后数据要继续更新
		listCarts =  icb.getCartByUsersid(users.getUserid());
		
		session.setAttribute("listCarts", listCarts);
		
		response.sendRedirect("cart.jsp");
		
	}

}

FindCartInfoServlet .java

package com.zking.mvc.cart.servlet;

import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

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 com.zking.mvc.cart.biz.ICartBiz;
import com.zking.mvc.cart.biz.impl.CartBizImpl;
import com.zking.mvc.cart.entity.Cart;
import com.zking.mvc.cart.entity.Users;

/**
 * Servlet implementation class FindCartInfoServlet
 */
@WebServlet("/FindCartInfoServlet")
public class FindCartInfoServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
   
	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doPost(request,response);
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		//1、设置字符集编码
		request.setCharacterEncoding("utf-8");
		response.setCharacterEncoding("utf-8");
		response.setContentType("text/html;charset=utf-8");
		
		//获取session
		HttpSession session = request.getSession();
		//用户
		Users users = (Users)session.getAttribute("users");
		
		//2、直接获取数据库
		ICartBiz icb = new CartBizImpl();
		List<Cart> cartByUsersid = icb.getCartByUsersid(users.getUserid());
		
		//总件数
		int sumCount = 0;
		int sumPrince = 0;
		//1.商品
		for (Cart cart : cartByUsersid) {
			sumCount +=cart.getCount();
			sumPrince +=cart.getCtotal();
		}
		
		Map<String, Object> maps = new HashMap<String,Object>();
		maps.put("cartByUsersid", cartByUsersid);
		maps.put("sumCount", sumCount);
		maps.put("sumPrince", sumPrince);
		
		session.setAttribute("maps", maps);
		
		response.sendRedirect("confirmOrder.jsp");
	}

}

GoodsListServlet .java

package com.zking.mvc.cart.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 javax.servlet.http.HttpSession;

import com.zking.mvc.cart.biz.IGoodsBiz;
import com.zking.mvc.cart.biz.impl.GoodsBizImpl;
import com.zking.mvc.cart.entity.Goods;
import com.zking.mvc.cart.entity.Users;

/**
 * Servlet implementation class GoodsListServlet
 */
@WebServlet("/GoodsListServlet")
public class GoodsListServlet extends HttpServlet {
	

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doPost(request, response);
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		//servlet作用:负责处理用户的请求以及响应
		//1.设置字符集编码
		request.setCharacterEncoding("utf-8");
		response.setCharacterEncoding("utf-8");
		response.setContentType("text/html;charset=utf-8");
		//2.获取参数
		//3.封装 调用biz判断
		IGoodsBiz igb =  new GoodsBizImpl();
		List<Goods> listGoods = igb.queryGoodsAll();
		//System.out.println(listGoods);
		
		//数据保存在域对象中
		//获取域对象 session
		HttpSession session =  request.getSession();
		session.setAttribute("listGoods", listGoods);
		
		//获取当前项目的绝对路径
		String path =  request.getServletContext().getContextPath();// /web_mvc_cart_t280
		//4.响应
		response.sendRedirect("index.jsp");
		
	}

}

ConfirmOrderServlet .java

package com.zking.mvc.cart.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 javax.servlet.http.HttpSession;

import com.zking.mvc.cart.biz.ICartBiz;
import com.zking.mvc.cart.biz.IOrderbiz;
import com.zking.mvc.cart.biz.impl.CartBizImpl;
import com.zking.mvc.cart.biz.impl.OrderbizImpl;
import com.zking.mvc.cart.entity.Cart;
import com.zking.mvc.cart.entity.Order;
import com.zking.mvc.cart.entity.Users;
import com.zking.mvc.cart.utils.BaseDao;

/**
 * Servlet implementation class ConfirmOrderServlet
 */
@WebServlet("/ConfirmOrderServlet")
public class ConfirmOrderServlet extends HttpServlet {
	
	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doPost(request, response);
		
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		//1、设置字符集编码
		request.setCharacterEncoding("utf-8");
		response.setCharacterEncoding("utf-8");
		response.setContentType("text/html;charset=utf-8");
				
	//获取
		String oaddress = request.getParameter("oaddress");
		/*System.out.println(oaddress);*/
		
		//获取session
		HttpSession session = request.getSession();
		//用户
		Users users = (Users)session.getAttribute("users");
				
		//2、直接获取数据库
		ICartBiz icb = new CartBizImpl();
		List<Cart> cartByUsersid = icb.getCartByUsersid(users.getUserid());
				
		//总件数
		int sumCount = 0;
		int sumPrince = 0;
		//1.商品
		for (Cart cart : cartByUsersid) {
			sumCount +=cart.getCount();
			sumPrince +=cart.getCtotal();
		}
		
		//实例化实体类
		Order order = new Order(new BaseDao().getmaxid("orders", "orderid"),users, sumCount, sumPrince, oaddress, 0);
		order.setList(cartByUsersid);
		
		
		//实例化biz
		IOrderbiz io =new OrderbizImpl();
		int n = io.add(order);
		if(n>0) {
			System.out.println("支付成功");
			response.sendRedirect("Dd.jsp");
		}
		else {
			System.out.println("支付失败");
		}
		
	}

}


版权声明:本文为m0_62528678原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。