——————————DescriptionStart——————————
运行环境
Java≥8、MySQL≥5.7、Tomcat≥8
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
前台:登录注册、管理个人信息、修改密码、收藏图书、下单购买
后台:管理个人信息、书籍管理、分类管理、图书管理、订单管理、用户管理、添加管理员,销售统计信息

前台






后台





技术框架
JSP Servlet MySQL JDBC Tomcat CSS JavaScript bootstrap jquery
基于javaweb的JSP+Servlet网上书店图书商城(前台、后台)(java+jsp+servlet+javabean+mysql+tomcat)
——————————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 41 42 43 44 45 46 47 48 49 50 51 52
| DiskFileItemFactory factory = new DiskFileItemFactory(); // 构建核心类对象 ServletFileUpload sfu = new ServletFileUpload(factory); List<FileItem> items = new ArrayList<FileItem>(); items = sfu.parseRequest(req); Book book = new Book(); for (FileItem item : items) { if (item.isFormField()) { // 普通字段:把数据分装到book对象中 processFormField(item, req, book); } else { // 上传字段:上传 processUplodFiled(item, req, book); } } // 把书籍信息保存到数据库中 service.addBook(book); resp.getWriter().write("<div style='text-align: center;margin-top: 260px'><img src='" + req.getContextPath() + "/img/duigou.png'/>添加成功!</div>"); }
// 处理文件上传 private void processUplodFiled(FileItem item, HttpServletRequest req, Book book) { try { // 存放路径:不要放在web-inf中 // 01.获取存放文件的真实目录 // String dirImages = getServletContext().getRealPath("/images"); String dirImages = req.getServletContext().getRealPath("/") + "images/"; // String dirImages = getServletContext().getRealPath("/img"); // 02. 通过io存文件 // 03. 生成文件名 (用户上传图片, 图片名可能重复) String FieldName = item.getFieldName();// 输入框的name值 String name = item.getName(); String fileType = name.substring(name.lastIndexOf(".") + 1); String fileName = UUID.randomUUID().toString();// 生成用不重复的文件名 // 生成文件夹名 Date time = new Date(); SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); String strTime = simpleDateFormat.format(time); // path属性filename String path = strTime + File.separator + "books";// 存放到book对象中的路径 // String path = "books";// 存放到book对象中 String filename = fileName + "." + fileType; // fileDir:图片最终存在于fileDir File fileDir = new File(dirImages, path + File.separator + filename); // InputStream inputStream = item.getInputStream(); 从请求 对象中 通过流的方式 // 把 上传的文件加载到 内存中 构建输出流 File parentDir = new File(dirImages, path);// 父目录 if (!parentDir.exists()) { parentDir.mkdirs(); } book.setFilename(filename);
|
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
| }
if (op.equals("editBookUI")) { editBookUI(req, resp); }
if (op.equals("editBook")) { try { editBook(req, resp); } catch (FileUploadException e) { e.printStackTrace(); } }
if (op.equals("delBook")) { delBook(req, resp); }
if (op.equals("categoryList")) { categoryList(req, resp); }
if (op.equals("editCategoryUI")) { editCategoryUI(req, resp); }
if (op.equals("editCategory")) { editCategory(req, resp); }
if (op.equals("delCategory")) { delCategory(req, resp); }
if (op.equals("findUsers")) { findUsers(req, resp); }
if (op.equals("addAdmin")) { addAdmin(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 46
| Cart cart = (Cart) session.getAttribute("cart"); User user = (User) session.getAttribute("user"); if (cart == null) { session.setAttribute("message", "会话已经结束!"); req.getRequestDispatcher("../message.jsp").forward(req, resp); return; } Book book = cart.getBook(); String book_id = book.getBook_id(); Book findBookById = clientService.findBookById(book_id); if(findBookById.getBook_kunumber()-cart.getTotalQuantity()<0) { session.setAttribute("message", "库存不足,无法购买!"); session.removeAttribute("cart"); req.getRequestDispatcher("../message.jsp").forward(req, resp); return; } Order order = new Order(); order.setTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); String ordernum = genOrdernum(); order.setOrdernum(ordernum); order.setQuantity(cart.getTotalQuantity()); order.setMoney(cart.getTotalMoney()); order.setUser(user); List<Orderitem> oItems = new ArrayList<Orderitem>(); for (Map.Entry<String, CartItem> me : cart.getItmes().entrySet()) { CartItem cItem = me.getValue(); Orderitem oItem = new Orderitem(); oItem.setId(genOrdernum()); oItem.setBook(cItem.getBook()); oItem.setPrice(cItem.getMoney()); oItem.setQuantity(cItem.getQuantity()); oItem.setOrdernum(ordernum); oItems.add(oItem); } order.setItems(oItems); service.genOrder(order); req.setAttribute("order", order); req.getSession().removeAttribute("cart"); req.removeAttribute("cart"); req.getRequestDispatcher("/order.jsp").forward(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
| @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { req.setCharacterEncoding("UTF-8"); resp.setContentType("text/html;charset=UTF-8"); String op = req.getParameter("op"); if (op.equals("genOrder")) { genOrder(req, resp); } if (op.equals("findAllOrders")) { findAllOrders(req, resp); } if (op.equals("findOrders")) { findOrders(req, resp); } if (op.equals("faHuo")) { faHuo(req, resp); } if(op.equals("deletes")) { deletes(req,resp); } }
private void deletes(HttpServletRequest req, HttpServletResponse resp) throws IOException { String orderNumber = req.getParameter("orderNum"); Order findOrderByNum = service.findOrderByNum(orderNumber); if(findOrderByNum.getItems().size()!=0) { return; } try { service.deleteByNumber(orderNumber); resp.sendRedirect("../admin/managerOrder.jsp"); }catch (Exception e) {
|
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
| + "/img/duigou.png'/>修改成功!</div>"); }
private void search(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String search = req.getParameter("search"); List<Book> searchmessage = service.search(search); req.setAttribute("books", searchmessage); req.setAttribute("name", search==null?"":search); req.getRequestDispatcher("/showBook.jsp").forward(req, resp); }
private void particulars(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String book_id = req.getParameter("book_id"); Book book = findBookById(book_id); req.setAttribute("book", book); req.getRequestDispatcher("/particulars.jsp").forward(req, resp); }
// 通过书籍id找到书籍信息 private Book findBookById(String book_id) { Book book = service.findBookById(book_id); return book; }
private void addCart(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException { String book_id = req.getParameter("book_id"); Book book = findBookById(book_id); HttpSession session = req.getSession(); Cart cart = (Cart) session.getAttribute("cart"); if (cart == null) { cart = new Cart(); cart.addBook(book); cart.setBook(book); session.setAttribute("cart", cart); }else { session.setAttribute("message", "购物车里有商品,请支付之后再来添加!"); req.getRequestDispatcher("../message.jsp").forward(req, resp); return; } req.getRequestDispatcher("../showCart.jsp").forward(req, resp); }
private void delItem(HttpServletRequest req, HttpServletResponse resp) throws IOException { String book_id = req.getParameter("book_id");
|
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
| delBook(req, resp); } if (op.equals("categoryList")) { categoryList(req, resp); } if (op.equals("editCategoryUI")) { editCategoryUI(req, resp); } if (op.equals("editCategory")) { editCategory(req, resp); } if (op.equals("delCategory")) { delCategory(req, resp); } if (op.equals("findUsers")) { findUsers(req, resp); } if (op.equals("addAdmin")) { addAdmin(req, resp); } if (op.equals("sales")) { sales(req, resp); } if (op.equals("search")) { search(req, resp); } }
private void search(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String name = req.getParameter("search"); if (name == null) { name = ""; } List<Book> findListByBookName = service.findListByBookName(name); List<Category> categoryList = service.findAllCategory(); req.setAttribute("currentName", name); req.setAttribute("books", findListByBookName); req.setAttribute("categoryList", categoryList); req.getRequestDispatcher("/admin/booksList.jsp").forward(req, resp);
|
——————————PayStart——————————
项目链接:
https://javayms.github.io?id=472221462905102aw
https://javayms.pages.dev?id=472221462905102aw