Java實(shí)戰(zhàn)之小蜜蜂擴(kuò)音器網(wǎng)上商城系統(tǒng)的實(shí)現(xiàn)
一、項(xiàng)目簡(jiǎn)述
用戶功能模塊: 用戶注冊(cè): 用戶登錄:商品模塊:訂單模塊;后臺(tái)管理系統(tǒng)功能:管理員模塊: 商品模塊:訂單管理模塊 ;
二、項(xiàng)目運(yùn)行
1.運(yùn)行環(huán)境
JDK1.8+Tomcat8.5+MYSQL+Eclispe(Eclispe,MyEclispe,Sts,IntelliJ IDEA都支持,小伙伴自行配置即可)
2.技術(shù)棧
JSP + Servlet + JDBC + Ajax + JavaScript + CSS + +DBUtil 等等
三、效果圖
四、核心代碼
用戶管理控制層
public class UserServlet extends BaseBackServlet { @Override public String add(HttpServletRequest request, HttpServletResponse response, Page page) { System.out.println("調(diào)用了 UserServlet add方法"); return null; } @Override public String delete(HttpServletRequest request, HttpServletResponse response, Page page) { System.out.println("調(diào)用了 UserServlet delete方法"); int id = Integer.parseInt(request.getParameter("id")); userDAO.delete(id); return "@admin_user_list"; } @Override public String update(HttpServletRequest request, HttpServletResponse response, Page page) { System.out.println("調(diào)用了 UserServlet update方法"); Map<String, String> params = new HashMap<>(); InputStream is = super.parseUpload(request, params); System.out.println(params); int id = Integer.parseInt(params.get("id")); String password = params.get("password"); User user = userDAO.get(id); user.setPassword(password); userDAO.update(user); return "@admin_user_list"; } @Override public String edit(HttpServletRequest request, HttpServletResponse response, Page page) { System.out.println("調(diào)用了 UserServlet edit方法"); int id = Integer.parseInt(request.getParameter("id")); User u = userDAO.get(id); request.setAttribute("u", u); return "admin/editUser.jsp"; } @Override public String list(HttpServletRequest request, HttpServletResponse response, Page page) { System.out.println("調(diào)用了 UserServlet list方法"); List<User> us = userDAO.list(page.getStart(), page.getCount()); int total = userDAO.getTotal(); page.setTotal(total); request.setAttribute("us", us); request.setAttribute("page", page); return "admin/listUser.jsp"; } }
訂單管理控制層
public class OrderServlet extends BaseBackServlet { @Override public String add(HttpServletRequest request, HttpServletResponse response, Page page) { return null; } @Override public String delete(HttpServletRequest request, HttpServletResponse response, Page page) { return null; } @Override public String update(HttpServletRequest request, HttpServletResponse response, Page page) { return null; } @Override public String edit(HttpServletRequest request, HttpServletResponse response, Page page) { return null; } public String delivery(HttpServletRequest request, HttpServletResponse response, Page page) { System.out.println("調(diào)用了 OrderServlet delivery方法"); int id = Integer.parseInt(request.getParameter("id")); Order o = orderDAO.get(id); o.setDeliveryDate(new Date()); o.setStatus(OrderDAO.waitConfirm); orderDAO.update(o); return "@admin_order_list"; } @Override public String list(HttpServletRequest request, HttpServletResponse response, Page page) { System.out.println("調(diào)用了 OrderServlet list方法"); // 對(duì)訂單對(duì)應(yīng)的訂單項(xiàng)進(jìn)行初始化 List<Order> os = orderDAO.list(page.getStart(), page.getCount()); orderItemDAO.fill(os); int total = orderDAO.getTotal(); page.setTotal(total); request.setAttribute("os", os); request.setAttribute("page", page); return "admin/listOrder.jsp"; } }
品類控制層
public class CategoryServlet extends BaseBackServlet { @Override public String add(HttpServletRequest request, HttpServletResponse response, Page page) { System.out.println("調(diào)用了category add方法"); Map<String,String> params = new HashMap<>(); InputStream is = super.parseUpload(request, params); System.out.println(params); String name = params.get("name"); Category c = new Category(); c.setName(name); categoryDAO.add(c); File imageFolder = new File(request.getSession().getServletContext().getRealPath("img/category")); File file = new File(imageFolder, c.getId() + ".jpg"); try{ if(null != is && 0 != is.available()){ try( FileOutputStream fos = new FileOutputStream(file); ){ byte[] b = new byte[1024 * 1024]; int length = 0; while(-1 != (length = is.read(b))){ fos.write(b, 0, length); } fos.flush(); //通過以下代碼,將文件保存為jsp格式 BufferedImage img = ImageUtil.change2jpg(file); ImageIO.write(img, "jpg", file); } } } catch (IOException e) { e.printStackTrace(); } return "@admin_category_list"; } @Override public String delete(HttpServletRequest request, HttpServletResponse response, Page page) { System.out.println("調(diào)用了category delete方法"); int id = Integer.parseInt(request.getParameter("id")); categoryDAO.delete(id); return "@admin_category_list"; } @Override public String update(HttpServletRequest request, HttpServletResponse response, Page page) { System.out.println("調(diào)用了category update方法"); Map<String,String> params = new HashMap<>(); InputStream is = super.parseUpload(request, params); System.out.println(params); String name = params.get("name"); int id = Integer.parseInt(params.get("id")); Category c = new Category(); c.setName(name); c.setId(id); categoryDAO.update(c); File imageFolder = new File(request.getSession().getServletContext().getRealPath("img/category")); File file = new File(imageFolder, c.getId() + ".jpg"); try{ if(null != is && 0 != is.available()){ try( FileOutputStream fos = new FileOutputStream(file); ){ byte[] b = new byte[1024 * 1024]; int length = 0; while(-1 != (length = is.read(b))){ fos.write(b, 0, length); } fos.flush(); //通過以下代碼,將文件保存為jsp格式 BufferedImage img = ImageUtil.change2jpg(file); ImageIO.write(img, "jpg", file); } } } catch (IOException e) { e.printStackTrace(); } return "@admin_category_list"; } @Override public String edit(HttpServletRequest request, HttpServletResponse response, Page page) { System.out.println("調(diào)用了category edit方法"); int id = Integer.parseInt(request.getParameter("id")); Category category = categoryDAO.get(id); request.setAttribute("c", category); return "admin/editCategory.jsp"; } @Override public String list(HttpServletRequest request, HttpServletResponse response, Page page) { List<Category> cs = categoryDAO.list(page.getStart(), page.getCount()); int total = categoryDAO.getTotal(); page.setTotal(total); request.setAttribute("thecs", cs); request.setAttribute("page", page); return "admin/listCategory.jsp"; } }
產(chǎn)品控制層
public class ProductServlet extends BaseBackServlet { @Override public String add(HttpServletRequest request, HttpServletResponse response, Page page) { System.out.println("調(diào)用了Product add方法"); Map<String, String> params = new HashMap<>(); InputStream inputStream = super.parseUpload(request, params); System.out.println(params); int cid = Integer.parseInt(params.get("cid")); Category c = categoryDAO.get(cid); String name = params.get("name"); String subTitle = params.get("subTitle"); float originalPrice = Float.parseFloat(params.get("originalPrice")); float promotePrice = Float.parseFloat(params.get("promotePrice")); int stock = Integer.parseInt(params.get("stock")); Product p = new Product(); p.setCategory(c); p.setName(name); p.setSubTitle(subTitle); p.setOriginalPrice(originalPrice); p.setPromotePrice(promotePrice); p.setStock(stock); p.setCreateDate(new Date()); productDAO.add(p); return "@admin_product_list?cid=" + cid; } @Override public String delete(HttpServletRequest request, HttpServletResponse response, Page page) { System.out.println("調(diào)用了Product delete方法"); int id = Integer.parseInt(request.getParameter("id")); Product p = productDAO.get(id); productDAO.delete(id); return "@admin_product_list?cid=" + p.getCategory().getId(); } @Override public String update(HttpServletRequest request, HttpServletResponse response, Page page) { System.out.println("調(diào)用了Product update方法"); Map<String, String> params = new HashMap<>(); InputStream inputStream = super.parseUpload(request, params); int cid = Integer.parseInt(params.get("cid")); Category c = categoryDAO.get(cid); int id = Integer.parseInt(params.get("id")); String name = params.get("name"); String subTitle = params.get("subTitle"); float originalPrice = Float.parseFloat(params.get("originalPrice")); float promotePrice = Float.parseFloat(params.get("promotePrice")); int stock = Integer.parseInt(params.get("stock")); Product p = new Product(); p.setId(id); p.setName(name); p.setSubTitle(subTitle); p.setOriginalPrice(originalPrice); p.setPromotePrice(promotePrice); p.setStock(stock); p.setCategory(c); p.setCreateDate(new Date()); productDAO.update(p); return "@admin_product_list?cid=" + p.getCategory().getId(); } @Override public String edit(HttpServletRequest request, HttpServletResponse response, Page page) { System.out.println("調(diào)用了Product edit方法"); int id =Integer.parseInt(request.getParameter("id")); Product p = productDAO.get(id); request.setAttribute("p",p); return "admin/editProduct.jsp"; } public String updatePropertyValue(HttpServletRequest request, HttpServletResponse response, Page page){ System.out.println("調(diào)用了Product updatePropertyValue方法"); int pvid = Integer.parseInt(request.getParameter("pvid")); String value = request.getParameter("value"); PropertyValue pv = propertyValueDAO.get(pvid); pv.setValue(value); propertyValueDAO.update(pv); return "%success"; } public String editPropertyValue(HttpServletRequest request, HttpServletResponse response, Page page){ System.out.println("調(diào)用了Product editPropertyValue方法"); int id = Integer.parseInt(request.getParameter("id")); Product p = productDAO.get(id); request.setAttribute("p", p); // 初始化屬性,將產(chǎn)品對(duì)應(yīng)的屬性全部 propertyValueDAO.init(p); List<PropertyValue> pvs = propertyValueDAO.list(p.getId()); request.setAttribute("pvs", pvs); return "admin/editPropertyValue.jsp"; } @Override public String list(HttpServletRequest request, HttpServletResponse response, Page page) { System.out.println("調(diào)用了Product list方法"); int cid = Integer.parseInt(request.getParameter("cid")); Category c = categoryDAO.get(cid); List<Product> ps = productDAO.list(cid, page.getStart(), page.getCount()); int total = productDAO.getTotal(cid); page.setTotal(total); page.setParam("&cid=" + c.getId()); request.setAttribute("ps", ps); request.setAttribute("c", c); request.setAttribute("page", page); return "admin/listProduct.jsp"; } }
以上就是Java實(shí)戰(zhàn)之小蜜蜂擴(kuò)音器網(wǎng)上商城系統(tǒng)的實(shí)現(xiàn)的詳細(xì)內(nèi)容,更多關(guān)于Java網(wǎng)上商城系統(tǒng)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Java數(shù)據(jù)結(jié)構(gòu)與算法入門實(shí)例詳解
這篇文章主要介紹了Java數(shù)據(jù)結(jié)構(gòu)與算法入門實(shí)例詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03Java的無參構(gòu)造函數(shù)用法實(shí)例分析
這篇文章主要介紹了Java的無參構(gòu)造函數(shù)用法,結(jié)合實(shí)例形式分析了java無參構(gòu)造函數(shù)基本原理、用法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2019-09-09Spring中的@ConfigurationProperties在方法上的使用詳解
這篇文章主要介紹了Spring中的@ConfigurationProperties在方法上的使用詳解,@ConfigurationProperties應(yīng)該經(jīng)常被使用到,作用在類上的時(shí)候,將該類的屬性取值?與配置文件綁定,并生成配置bean對(duì)象,放入spring容器中,提供給其他地方使用,需要的朋友可以參考下2024-01-01OpenFeign服務(wù)接口調(diào)用的過程詳解
Feign是一個(gè)聲明式WebService客戶端。使用Feign能讓編寫Web?Service客戶端更加簡(jiǎn)單。它的使用方法是定義一個(gè)服務(wù)接口然后在上面添加注解,這篇文章主要介紹了OpenFeign服務(wù)接口調(diào)用,需要的朋友可以參考下2022-10-10關(guān)于SpringMVC對(duì)Restful風(fēng)格的支持詳解
Restful就是一個(gè)資源定位及資源操作的風(fēng)格,不是標(biāo)準(zhǔn)也不是協(xié)議,只是一種風(fēng)格,是對(duì)http協(xié)議的詮釋,下面這篇文章主要給大家介紹了關(guān)于SpringMVC對(duì)Restful風(fēng)格支持的相關(guān)資料,需要的朋友可以參考下2022-01-01idea web項(xiàng)目沒有小藍(lán)點(diǎn)的的兩種解決方法
本文主要介紹了idea web項(xiàng)目沒有小藍(lán)點(diǎn)的的兩種解決方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07springboot項(xiàng)目配置多個(gè)kafka的示例代碼
這篇文章主要介紹了springboot項(xiàng)目配置多個(gè)kafka,本文通過示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-04-04