⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 orderservlet.java

📁 Java购物车及JSTL的应用
💻 JAVA
字号:
package org.qhit.li.store.servlet;

import java.io.IOException;
import java.util.ArrayList;
import java.util.Iterator;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.qhit.li.store.dao.OrdersDAO;
import org.qhit.li.store.dao.UsersDAO;
import org.qhit.li.store.dto.OrderDTO;
import org.qhit.li.store.dto.OrderSunDTO;
import org.qhit.li.store.dto.UsersDTO;

public class OrderServlet extends HttpServlet {

	/**
	 * 
	 */
	private static final long serialVersionUID = 3;

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

	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		response.setContentType("text/html");

		HttpSession session = request.getSession();

		OrdersDAO dao = new OrdersDAO();

		String action = request.getParameter("action");

		ArrayList<OrderSunDTO> car = (ArrayList<OrderSunDTO>) session
				.getAttribute("GoodsCar");

		double sum = 0;

		if (car == null) {
			car = new ArrayList<OrderSunDTO>();
		}

		session.removeAttribute("adlist");
		session.removeAttribute("goodlist");
		session.removeAttribute("made");
		session.removeAttribute("stext");
		session.removeAttribute("abate");
		session.removeAttribute("dao");

		/* 购买产品 */
		if (action != null && "buy".equals(action)) {
			String btid = request.getParameter("btid");
			btid = new String(btid.getBytes("iso-8859-1"), "gbk");

			String bname = request.getParameter("bname");
			bname = new String(bname.getBytes("iso-8859-1"), "gbk");

			String bprice = request.getParameter("bprice");
			double bpprice = Double.valueOf(bprice).doubleValue();

			OrderSunDTO temporder = null;

			Iterator<OrderSunDTO> iter = car.iterator();
			boolean flag = false;
			while (iter.hasNext()) {
				OrderSunDTO temp = (OrderSunDTO) iter.next();
				/* 所购买的商品相同 */
				if (temp.getBtid().equals(btid)) {
					flag = true;
					temp.setOsnumber(temp.getOsnumber() + 1);
					temp.setSumprice(temp.getOsnumber() * temp.getBprice());
					break;
				}
			}

			/* 所购买的商品不相同 */
			if (!flag) {
				temporder = new OrderSunDTO(1, btid, bname, bpprice, 1,
						bpprice * 1);
				car.add(temporder);
			}
			sum = getSum(car);
			session.removeAttribute("dao");
			session.setAttribute("GoodsCar", car);
			session.setAttribute("sum", sum);
			response.sendRedirect("./Stage/GoodCar.jsp");
			return;
		}

		/* 修改信息 */
		if (action != null && "update".equals(action)) {

			session.removeAttribute("carde");

			String[] isbuy = request.getParameterValues("isbuy");

//			 是否购买
			if (isbuy == null) {
				car = null;
				sum = 0;
			} else {
				Iterator<OrderSunDTO> tempiter = car.iterator();
				while (tempiter.hasNext()) {
					int i = 0;
					OrderSunDTO temp = (OrderSunDTO) tempiter.next();
					for (; i < isbuy.length; i++) {
						if (isbuy[i].equals(temp.getBtid())) {
							break;
						}
					}
					if (i == isbuy.length) {
						car.remove(temp);
						break;
					}
				}

				// 修改数量
				Iterator<OrderSunDTO> iter = car.iterator();
				int i = 0;
				while (iter.hasNext()) {
					OrderSunDTO temp = (OrderSunDTO) iter.next();
					temp.setOsnumber(Integer.valueOf(request.getParameter("num"
							+ i)));
					temp.setSumprice(temp.getOsnumber() * temp.getBprice());
					i++;
				}
				sum = getSum(car);
			}
			session.setAttribute("GoodsCar", car);
			session.setAttribute("sum", sum);
			response.sendRedirect("./Stage/GoodCar.jsp");
			return;
		}
		/* 去收银台付帐 */
		if (action != null && "pay".equals(action)) {
			session.removeAttribute("carde");
			session.removeAttribute("login");
			Integer uid = (Integer) session.getAttribute("uid");

			if (uid == null) {
				session.setAttribute("login", "no");
				response.sendRedirect("./Stage/GoodCar.jsp");
				return;
			}
			if (uid != null && uid == 0) {
				session.setAttribute("login", "failure");
				response.sendRedirect("./Stage/GoodCar.jsp");
				return;
			}

			UsersDAO udao = new UsersDAO();
			UsersDTO user = udao.getUser(uid);
			session.setAttribute("user", user);
			session.setAttribute("GoodsCar", car);
			response.sendRedirect("./Stage/Confirm.jsp");
			return;
		}

		/* 提交订单,及用户信息 */
		if (action != null && "confirm".equals(action)) {
			session.removeAttribute("flag");
			boolean flag = false;
			int uid = (Integer) session.getAttribute("uid");
			String remark = (String) request.getParameter("remark");
			double osum = (Double) session.getAttribute("sum");
			OrderDTO info = new OrderDTO();
			info.setUid(uid);
			info.setTotal(osum);
			info.setRemark(remark);

			int oid = dao.insertOrder(info);

			if (oid == 0) {
				session.setAttribute("flag", "no");
				response.sendRedirect("./Stage/Confirm.jsp");
				return;
			}

			if (oid != 0) {
				Iterator<OrderSunDTO> iter = car.iterator();
				while (iter.hasNext()) {
					OrderSunDTO temp = (OrderSunDTO) iter.next();
					temp.setOid(oid);
					int result = dao.insertOrdersun(temp);
					if (result == 0) {
						flag = true;
						dao.deletOrder(oid);
						session.setAttribute("flag", "no");
						response.sendRedirect("./Stage/confirm.jsp");
						return;
					}
				}
				if (!flag) {
					session.setAttribute("oid", oid);
					session.setAttribute("remark", remark);
					response.sendRedirect("./Stage/LastConfirm.jsp");
					return;
				}
			}
		}
	}

	/* 得到所购商品的总价钱 */
	public double getSum(ArrayList<OrderSunDTO> car) {
		double sum = 0;
		Iterator<OrderSunDTO> sumiter = car.iterator();
		while (sumiter.hasNext()) {
			OrderSunDTO temp = (OrderSunDTO) sumiter.next();
			sum += temp.getSumprice();
		}
		return sum;
	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -