——————————DescriptionStart——————————
运行环境 Java≥8、MySQL≥5.7、Tomcat≥8
开发工具 eclipse/idea/myeclipse/sts等均可配置运行
适用 课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
基于javaweb的JSP+Servlet网上图书商城(java+servlet+jsp+mysql)
后台管理员:http://localhost:8080/adminjsps/login.jsp admin 123456
前台用户:http://localhost:8080 user1 123456 user2 123456
项目采用MVC三层架构,使用(JSP + Sevlvet + JavaBean)技术 前台功能模块有:登录注册(校验) 加入购物车 订单管理(下订单和确认收货或者取消) 后台功能模块:图书分级管理(一级和二级) 图书管理(图书增删改查) 订单管理
用到的技术 开发环境:MyEclipse, Tomcat, Mysql 后台技术: JSP, Servlet, JavaBean 前端技术: JSP, CSS, HTML5, CSS3, jQuery, Javascript
——————————CodeStart——————————
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 errors.put("email" , "Email格式错误!" ); } else if (!userService.ajaxValidateEmail(email)) { errors.put("email" , "Email已被注册!" ); } String verifyCode = formUser.getVerifyCode(); String vcode = (String) session.getAttribute("vCode" ); if (verifyCode == null || verifyCode.trim().isEmpty()) { errors.put("verifyCode" , "验证码不能为空!" ); } else if (!verifyCode.equalsIgnoreCase(vcode)) { errors.put("verifyCode" , "验证码错误!" ); } return errors; } public String updatePassword (HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { User formUser = CommonUtils.toBean(req.getParameterMap(), User.class); User user = (User)req.getSession().getAttribute("sessionUser" ); if (user == null ) { req.setAttribute("msg" , "您还没有登录!" ); return "f:/jsps/user/login.jsp" ; } try { userService.updatePassword(user.getUid(), formUser.getNewpass(), formUser.getLoginpass()); req.setAttribute("msg" , "修改密码成功" ); req.setAttribute("code" , "success" ); return "f:/frontpages/msg1.jsp" ; } catch (UserException e) { req.setAttribute("msg" , e.getMessage()); req.setAttribute("user" , formUser); return "f:/frontpages/user/pwd.jsp" ; } }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 public String ajaxValidateLoginname (HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String loginname = req.getParameter("loginname" ); boolean b = userService.ajaxValidateLoginname(loginname); resp.getWriter().print(b); return null ; } public String ajaxValidateEmail (HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String email = req.getParameter("email" ); boolean b = userService.ajaxValidateEmail(email); resp.getWriter().print(b); return null ; } public String ajaxValidateVerifyCode (HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String verifyCode = req.getParameter("verifyCode" ); String vcode = (String) req.getSession().getAttribute("vCode" ); boolean b = verifyCode.equalsIgnoreCase(vcode); resp.getWriter().print(b); return null ; } public String regist (HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { User formUser = CommonUtils.toBean(req.getParameterMap(), User.class); Map<String,String> errors = validateRegist(formUser, req.getSession()); if (errors.size() > 0 ) { req.setAttribute("form" , formUser); req.setAttribute("errors" , errors); return "f:/frontpages/user/register.jsp" ; } userService.regist(formUser); req.setAttribute("code" , "success" ); req.setAttribute("msg" , "注册成功!" ); return "f:/frontpages/msg.jsp" ; } private Map<String,String> validateRegist (User formUser, HttpSession session) {
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 public String deleteParent (HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String cid = req.getParameter("cid" ); int cnt = categoryService.findChildrenCountByParent(cid); if (cnt > 0 ) { req.setAttribute("msg" , "该分类下还有子分类,不能删除!" ); return "f:/adminjsps/msg.jsp" ; } else { categoryService.delete(cid); return findAll(req, resp); } } public String deleteChild (HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String cid = req.getParameter("cid" ); int cnt = bookService.findBookCountByCategory(cid); if (cnt > 0 ) { req.setAttribute("msg" , "该分类下还存在图书,不能删除!" ); return "f:/adminjsps/msg.jsp" ; } else { categoryService.delete(cid); return findAll(req, resp); } } }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 public String myOrders (HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { int pc = getPc(req); String url = getUrl(req); User user = (User)req.getSession().getAttribute("sessionUser" ); PageBean<Order> pb = orderService.myOrders(user.getUid(), pc); pb.setUrl(url); req.setAttribute("pb" , pb); return "f:/frontpages/order/list.jsp" ; } public String createOrder (HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String cartItemIds = req.getParameter("cartItemIds" ); List<CartItem> cartItemList = cartItemService.loadCartItems(cartItemIds); if (cartItemList.size() == 0 ) { req.setAttribute("code" , "error" ); req.setAttribute("msg" , "您没有选择要购买的图书,不能下单!" ); return "f:/frontpages/msg1.jsp" ; } Order order = new Order(); order.setOid(CommonUtils.uuid()); order.setOrdertime(String.format("%tF %<tT" , new Date())); order.setStatus(1 ); order.setAddress(req.getParameter("address" )); User owner = (User)req.getSession().getAttribute("sessionUser" ); order.setOwner(owner); BigDecimal total = new BigDecimal("0" ); for (CartItem cartItem : cartItemList) { total = total.add(new BigDecimal(cartItem.getSubtotal() + "" )); } order.setTotal(total.doubleValue()); List<OrderItem> orderItemList = new ArrayList<OrderItem>(); for (CartItem cartItem : cartItemList) { OrderItem orderItem = new OrderItem(); orderItem.setOrderItemId(CommonUtils.uuid()); orderItem.setQuantity(cartItem.getQuantity()); orderItem.setSubtotal(cartItem.getSubtotal());
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 return ; } String savepath = this .getServletContext().getRealPath("/book_img" ); File destFile = new File(savepath, filename); try { fileItem.write(destFile); } catch (Exception e) { throw new RuntimeException(e); } ImageIcon icon = new ImageIcon(destFile.getAbsolutePath()); Image image = icon.getImage(); if (image.getWidth(null ) > 350 || image.getHeight(null ) > 350 ) { error("您上传的图片尺寸超出了350*350!" , request, response); return ; } book.setImage_w("book_img/" + filename); fileItem = fileItemList.get(2 ); filename = fileItem.getName(); index = filename.lastIndexOf("\\" ); if (index != -1 ) { filename = filename.substring(index + 1 ); } filename = CommonUtils.uuid() + "_" + filename; if (!filename.toLowerCase().endsWith(".jpg" )) { error("上传的图片扩展名必须是JPG" , request, response); return ; } savepath = this .getServletContext().getRealPath("/book_img" );
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 public class CartItemServlet extends MyServlet { private CartItemService cartItemService = new CartItemService(); public String loadCartItems (HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String cartItemIds = req.getParameter("cartItemIds" ); double total = Double.parseDouble(req.getParameter("total" )); List<CartItem> cartItemList = cartItemService.loadCartItems(cartItemIds); req.setAttribute("cartItemList" , cartItemList); req.setAttribute("total" , total); req.setAttribute("cartItemIds" , cartItemIds); return "f:/frontpages/cart/showitem.jsp" ; } public String updateQuantity (HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String cartItemId = req.getParameter("cartItemId" ); int quantity = Integer.parseInt(req.getParameter("quantity" )); CartItem cartItem = cartItemService.updateQuantity(cartItemId, quantity); StringBuilder sb = new StringBuilder("{" ); sb.append("\"quantity\"" ).append(":" ).append(cartItem.getQuantity()); sb.append("," ); sb.append("\"subtotal\"" ).append(":" ).append(cartItem.getSubtotal()); sb.append("}" ); System.out.println(sb); resp.getWriter().print(sb); return null ; } public String batchDelete (HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String cartItemIds = req.getParameter("cartItemIds" ); System.out.println(cartItemIds); cartItemService.batchDelete(cartItemIds); return myCart(req, resp); } public String add (HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { Map map = req.getParameterMap(); CartItem cartItem = CommonUtils.toBean(map, CartItem.class); Book book = CommonUtils.toBean(map, Book.class); User user = (User)req.getSession().getAttribute("sessionUser" );
——————————PayStart——————————
项目链接: https://javayms.github.io?id=262023280609201et https://javayms.pages.dev?id=262023280609201et