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("支付失败");
}
}
}