商城首页

首页信息

首页信息

登陆

商品列表

订单列表

个人信息

商品管理

添加商品

咨询列表

添加购物车

购物车管理

订单创建

技术描述

开发工具: Idea/Eclipse
数据库: mysql
Jar包仓库: Jar包
前段框架:jquery/Jsp
后端框架: Jsp/Servlet

资料说明

基于JSP+Servlet+MySQL+的在线购物电子商务商城系统,分为管理员,普通用户角色,整体功能包含,登陆,添加购物车,购物车管理,下订单,订单管理,用户管理,商品分类管理,商品上架,咨询管理,用户信息查询,我的订单,商品管理等。

@WebServlet(urlPatterns = {"/Cart"}, name = "Cart")
public class CartServlet extends AbstractServlet {private ProductService productService;private OrderService orderService;private UserService userService;private ProductCategoryService productCategoryService;private CartService cartService;private UserAddressService userAddressService;public void init() throws ServletException {productService = new ProductServiceImpl();orderService = new OrderServiceImpl();userService = new UserServiceImpl();productCategoryService = new ProductCategoryServiceImpl();cartService = new CartServiceImpl();userAddressService = new UserAddressServiceImpl();}@Overridepublic Class getServletClass() {return CartServlet.class;}/*** 添加到购物车** @return*/public ReturnResult add(HttpServletRequest request, HttpServletResponse response) throws Exception {HttpSession session = request.getSession();ReturnResult result = new ReturnResult();String id = request.getParameter("entityId");String quantityStr = request.getParameter("quantity");Integer quantity = 1;if (!EmptyUtils.isEmpty(quantityStr))quantity = Integer.parseInt(quantityStr);//查询出商品Product product = productService.findById(id);if (product.getStock() < quantity) {return result.returnFail("商品数量不足");}//获取购物车ShoppingCart cart = getCartFromSession(request);//往购物车放置商品result = cart.addItem(product, quantity);if (result.getStatus() == Constants.ReturnResult.SUCCESS) {cart.setSum((EmptyUtils.isEmpty(cart.getSum()) ? 0.0 : cart.getSum()) + (product.getPrice() * quantity * 1.0));}return result;}/*** 刷新购物车** @param request* @param response* @return*/public String refreshCart(HttpServletRequest request, HttpServletResponse response) throws Exception {HttpSession session = request.getSession();ShoppingCart cart = getCartFromSession(request);cart = cartService.calculate(cart);session.setAttribute("cart", cart);//全部的商品return "/common/pre/searchBar";}/*** 跳到结算页面** @param request* @param response* @return*/public String toSettlement(HttpServletRequest request, HttpServletResponse response) throws Exception {List<ProductCategoryVo> productCategoryVoList = productCategoryService.queryAllProductCategoryList();//封装返回request.setAttribute("productCategoryVoList", productCategoryVoList);return "/pre/settlement/toSettlement";}/*** 跳转到购物车页面** @param request* @param response* @return*/public String settlement1(HttpServletRequest request, HttpServletResponse response) throws Exception {ShoppingCart cart = getCartFromSession(request);cart = cartService.calculate(cart);request.getSession().setAttribute("cart", cart);return "/pre/settlement/settlement1";}/*** @param request* @param response* @return*/public String settlement2(HttpServletRequest request, HttpServletResponse response) throws Exception {User user = getUserFromSession(request);List<UserAddress> userAddressList = userAddressService.queryUserAdressList(user.getId());request.setAttribute("userAddressList", userAddressList);return "/pre/settlement/settlement2";}/*** 生成订单** @param request* @param response* @return*/public Object settlement3(HttpServletRequest request, HttpServletResponse response) throws Exception {ShoppingCart cart = getCartFromSession(request);cart = cartService.calculate(cart);User user = getUserFromSession(request);ReturnResult result = checkCart(request);if (result.getStatus() == Constants.ReturnResult.FAIL) {return result;}//新增地址String addressId = request.getParameter("addressId");String newAddress = request.getParameter("newAddress");String newRemark = request.getParameter("newRemark");UserAddress userAddress = new UserAddress();if (addressId.equals("-1")) {userAddress.setRemark(newRemark);userAddress.setAddress(newAddress);userAddress.setId(userAddressService.addUserAddress(user.getId(), newAddress, newRemark));} else {userAddress = userAddressService.getUserAddressById(Integer.parseInt(addressId));}//生成订单Order order = orderService.payShoppingCart(cart, user, userAddress.getAddress());clearCart(request, response);request.setAttribute("currentOrder", order);return "/pre/settlement/settlement3";}/*** 清空购物车** @param request* @param response*/public ReturnResult clearCart(HttpServletRequest request, HttpServletResponse response) throws Exception {ReturnResult result = new ReturnResult();//结账后清空购物车request.getSession().removeAttribute("cart");result.returnSuccess(null);return result;}/*** 修改购物车信息** @param request* @return*/public ReturnResult modCart(HttpServletRequest request, HttpServletResponse response) throws Exception {ReturnResult result = new ReturnResult();HttpSession session = request.getSession();String id = request.getParameter("entityId");String quantityStr = request.getParameter("quantity");ShoppingCart cart = getCartFromSession(request);Product product = productService.findById(id);if (EmptyUtils.isNotEmpty(quantityStr)) {if (Integer.parseInt(quantityStr) > product.getStock()) {return result.returnFail("商品数量不足");}}cart = cartService.modifyShoppingCart(id, quantityStr, cart);session.setAttribute("cart", cart);//全部的商品return result.returnSuccess();}/*** 从session中获取购物车** @param request* @return*/private ShoppingCart getCartFromSession(HttpServletRequest request) throws Exception {HttpSession session = request.getSession();ShoppingCart cart = (ShoppingCart) session.getAttribute("cart");if (cart == null) {cart = new ShoppingCart();session.setAttribute("cart", cart);}return cart;}private ReturnResult checkCart(HttpServletRequest request) throws Exception {ReturnResult result = new ReturnResult();HttpSession session = request.getSession();ShoppingCart cart = getCartFromSession(request);cart = cartService.calculate(cart);for (ShoppingCartItem item : cart.getItems()) {Product product = productService.findById(item.getProduct().getId() + "");if (product.getStock() < item.getQuantity()) {return result.returnFail(product.getName() + "商品数量不足");}}return result.returnSuccess();}/*** @param request* @return*/private User getUserFromSession(HttpServletRequest request) {HttpSession session = request.getSession();User user = (User) session.getAttribute("loginUser");return user;}
}
@WebServlet(urlPatterns = {"/Favorite"}, name = "Favorite")
public class FavoriteServlet extends AbstractServlet {private ProductService productService;public void init() throws ServletException {productService = new ProductServiceImpl();}@Overridepublic Class getServletClass() {return FavoriteServlet.class;}/*** 跳转到历史记录** @param request* @param response* @return*/public String toFavoriteList(HttpServletRequest request, HttpServletResponse response) throws Exception {List<Product> recentProducts = queryFavoriteList(request);request.setAttribute("recentProducts", recentProducts);return "/pre/product/favoriteList";}/*** 添加到收藏** @return*/public ReturnResult addFavorite(HttpServletRequest request, HttpServletResponse response) throws Exception {ReturnResult result = new ReturnResult();String id = request.getParameter("id");Product product = productService.findById(id);List<Product> favoriteList = queryFavoriteList(request);//判断是否满了if (favoriteList.size() > 0 && favoriteList.size() == 5) {favoriteList.remove(0);}boolean temp = false;for (int i = 0; i < favoriteList.size(); i++) {if (favoriteList.get(i).getId().equals(product.getId())) {temp = true;break;}}if (!temp) {favoriteList.add(favoriteList.size(), product);}MemcachedUtils.add(getFavoriteKey(request), favoriteList);result.returnSuccess();return result;}/*** 查询最近商品** @return*/private List<Product> queryFavoriteList(HttpServletRequest request) throws Exception {HttpSession session = request.getSession();User user = (User) session.getAttribute("loginUser");//判断用户是否登录String key = EmptyUtils.isEmpty(user) ? session.getId() : user.getLoginName();List<Product> recentProducts = (List<Product>) MemcachedUtils.get(key);if (EmptyUtils.isEmpty(recentProducts)) {recentProducts = new ArrayList<Product>();}return recentProducts;}/*** @param request* @return*/private String getFavoriteKey(HttpServletRequest request) throws Exception {HttpSession session = request.getSession();User user = (User) session.getAttribute("loginUser");return EmptyUtils.isEmpty(user) ? session.getId() : user.getLoginName();}
}

基于JSP+Servlet+MySQL+的在线购物电子商务商城系统相关推荐

  1. 基于 jsp + servlet + Mysql 实现 网上书店购物系统 (源码)

    文章目录 一.前言 二.相关技术: 三.功能分析: 1.前台: 2.后台: 四.效果展示: 1.登录与注册: 2.前台: 3.后台: 五.后记: 一.前言 该系统是简单的模仿 当当网 书店系统,分为前 ...

  2. 基于JSP+Servlet+MySQL+Css+Ajax的在线网上电子图书商城

    项目运行截图 用户注册 登陆 分类信息 推荐图书 推荐图书 管理员用户 用户列表 图书新增 添加图书分类 添加分类 待处理订单列表 订单详情 用户注册 开发工具: Idea/Eclipse 数据库: ...

  3. 基于jsp+servlet+mysql的酒店管理系统(附源码)

    本系统是基于jsp+servlet+mysql的前后端分离的酒店管理系统,前后端分离是指前端和后端分别是两个独立存在的项目,能独立运行.没有前端项目,后端也能运行且进行数据管理,没有后端项目,前端也能 ...

  4. 基于JSP + Servlet + Mysql 的校园二手交易平台(源码 + 文档)

    基于JSP + Servlet + Mysql 的校园二手交易平台 1.系统开发背景 2.系统设计 3.系统实现 3.1开发所用技术 3.2数据字典 3.2系统开发 3.2.1配置环境 3.2.2创建 ...

  5. 基于jsp+servlet+mysql网上蛋糕店

    基于jsp+servlet+mysql网上蛋糕店 一.系统介绍 二.功能展示 1.主页(客户) 2.登陆(客户) 3.我的购物车(客户) 4.我的订单(客户) 5.订单管理(管理员) 6.客户管理(管 ...

  6. 基于JSP+Servlet+MySQL+Bootstrap的防疫知识在线问答系统

    问答首页 详细问答 列表页面 回复页面 发起提问 我的问答 密码修改 修改个人资料 用户登录 用户注册 管理页面 用户管理 帖子管理 主题管理 技术描述 开发工具: Idea/Eclipse 数据库: ...

  7. Jsp+Ssm+Mysql实现的零食商城系统

    Jsp+Ssm+Mysql实现的零食商城系统 系统主要实现的功能有: 用户浏览商品.加入商品到购物车.登录注册.提交订单, 会员中心修改个人信息.查看订单等. 后台管理员登录后可以分角色添加管理员, ...

  8. 基于JSP/SERVLET实现的人脸识别考勤系统

    人脸识别考勤系统使用说明书 此系统是人脸识别考勤系统的后台管理系统,考勤数据从人脸识别机器上获取,自动识别员工信息记录考勤.系统基于JSP/SERVLET来开发实现,开发工具采用IDEA或ECLIPS ...

  9. 基于JSP+Servlet+MySQL的智能停车管理系统(附论文)

    大家好,很高兴和大家分享源码.不管是什么样的需求.都希望各位计算机专业的同学们有一个提高.大家可以通过常用的搜索引擎,以百度为例,搜索 源码乐园 code51 ,然后再次搜索 自己想要的即可. 项目运 ...

最新文章

  1. E-learning的现状与未来
  2. 京东AI研究院何晓冬:将先进的技术和模型落地到产业
  3. 2.3基本算法之递归变递推_3525上台阶
  4. 演练 聚美Y品商品分类导航 1002 html
  5. linux基本命令与终端操作、linux命令英文全称解释、ls clear cd pwd cat touch cp rm rmdir mkdir mv file find grep sudo su
  6. linux下常用文件传输命令(转)
  7. 网页滚动截屏怎么截长图
  8. 图片转化成emf等格式的办法
  9. 微信注册验证成功之后不跳转_想申请小号的网友福利来了:绑定了微信的手机号怎么注册新的微信...
  10. 孪生素数对php编写,孪生素数
  11. Android游戏之仿 微信飞机大战
  12. 怎么合并或注销重复LinkedIn领英帐号?
  13. fiddler安卓模拟器与ios手机抓包
  14. Java软件测试工程师之学习进阶路线
  15. 自定义view实现涂鸦(画板)功能
  16. 计算机职业生涯规划书素材,2021大学生职业生涯规划书素材模板
  17. nodejs中的__filename和__dirname
  18. 区间划定最小值题解--单调队列
  19. QPS、TPS、PV、UV
  20. 自我反思--table的简单数据分页

热门文章

  1. 创建同义词文本维护同义词
  2. android记住密码
  3. Cancellation(撤销),Refund(退货),Reversal(冲正)
  4. 技术专栏|剖析-单目相机在旋翼机上的速度测量原理
  5. 「查缺补漏」高频考点浏览器面试题
  6. Summernote
  7. 数据湖:分布式容错数据仓库Hive
  8. 漫谈程序员(十八)windows中的命令subst
  9. 名画122 王冕 吴镇《梅竹双清图》
  10. [转载]kaldi学习笔记:run.sh(egs/timit/s5)详细分析:从数据准备到特征提取