业务逻辑图,简单版要写各个Servlet
//ChangeCartCountServlet 使用ajax实现数量,增加或减少;
package com.cart.web;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Map;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.cart.dao.BookDao;
import com.cart.dao.impl.BookDaoImpl;
import com.cart.entity.Book;
import com.cart.entity.CartItem;
import com.cart.entity.Userinfo;
import com.cart.service.CartService;
public class ChangeCartCountServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
this.doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
resp.setContentType("text/html;charset=utf-8");
PrintWriter out = resp.getWriter();
int bookid = Integer.parseInt(req.getParameter("bookid"));
int count = Integer.parseInt(req.getParameter("count"));
CartService cartService=new CartService();
Userinfo userinfo=(Userinfo)req.getSession().getAttribute("userinfo");
int uid=userinfo.getId();//获得当前用户id编号;
CartItem cartItem=cartService.findCartItemById(uid,bookid);
if(cartItem.getCount()<count){//如果根据总数量小于你增加的总数量,则不能购物,业务正确;
out.print("false");
return;
}
Map<Integer,CartItem> cart = (Map<Integer,CartItem>)req.getSession().getAttribute("cart");
int result=-1;
if(cart!=null){
cartItem = cart.get(bookid); //获得购物车项
cartItem.setCount(count);
cart.put(bookid, cartItem);
result=cartService.updateCartItemCount(cartItem);
}
if(result>0){
out.print("true");
}else{
out.print("false");
}
out.flush();
out.close();
}
}
package com.cart.web;
import java.io.IOException;
import java.util.Map;
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 com.cart.entity.CartItem;
import com.cart.entity.Userinfo;
import com.cart.service.CartService;
public class ShowBookServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
HttpSession session=req.getSession();
Userinfo user=(Userinfo)session.getAttribute("userinfo");
int uid=user.getId();
CartService cartService=new CartService();
Map<Integer,CartItem> cart = cartService.getCartItem(uid);
session.setAttribute("cart", cart); //加入session用jstl读取;
resp.sendRedirect("show_cart.jsp");
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
this.doGet(req, resp);
}
}
package com.cart.web;
import java.io.IOException;
import java.util.Map;
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 com.cart.entity.Book;
import com.cart.entity.CartItem;
import com.cart.entity.Userinfo;
import com.cart.service.CartService;
public class DeleteCartServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
HttpSession session=req.getSession();
Userinfo user=(Userinfo)session.getAttribute("userinfo");
int uid=user.getId();
int bookid = Integer.parseInt(req.getParameter("bookid"));
Map<Integer,CartItem> cart = (Map<Integer,CartItem>)req.getSession().getAttribute("cart");
// 根据key(bookid)删除
cart.remove(bookid);
//需要根据carService进行操作;
CartService cartService=new CartService();
cartService.deletecartItem(uid, bookid);
req.getSession().setAttribute("cart", cart);
resp.sendRedirect("show_cart.jsp");
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
this.doGet(req, resp);
}
}