Java實(shí)現(xiàn)茶葉售賣商城系統(tǒng)(java+SSM+JSP+EasyUi+mysql)
前言
這是一個(gè)應(yīng)用SSM框架的項(xiàng)目,前端頁面整潔清晰。該系統(tǒng)有兩個(gè)角色,一個(gè)是普通用戶,另一個(gè)是管理員。
普通用戶具有注冊、登錄、查看商品、添加購物車、添加商品收藏、下訂單、商品評(píng)價(jià)、用戶地址管理等等功能。
管理員具有登錄、管理用戶信息、管理商品信息、管理商品活動(dòng)信息、管理訂單信息、管理用戶評(píng)論信息的等等功能。
應(yīng)用技術(shù):Jsp + SSM + EasyUi
運(yùn)行環(huán)境:eclipse/IDEA + MySQL5.7 + Tomcat8.5 + JDK1.8
實(shí)現(xiàn)效果
?
主要代碼
用戶管理控制層
@WebServlet("/frontstage_userServlet") public class UserServlet extends HttpServlet { UserService service = new UserService(); @Override protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String action = req.getParameter("action"); switch (action) { case "login": login(req, resp); break; case "checkUserNameRepeat": checkUserNameRepeat(req, resp); break; case "register": register(req, resp); break; case "logout": logout(req, resp); break; case "checkOldPassword": checkOldPassword(req, resp); break; case "modifyPassword": modifyPassword(req, resp); break; } } public void login(HttpServletRequest req, HttpServletResponse resp) throws IOException { //設(shè)置請求編碼格式: req.setCharacterEncoding("utf-8"); //設(shè)置響應(yīng)編碼格式 resp.setContentType("text/html;charset=utf-8"); String userName = req.getParameter("userName"); String password = req.getParameter("password"); String captcha = req.getParameter("captcha"); if (captcha != null) { captcha = captcha.toUpperCase(); } // 先進(jìn)行驗(yàn)證碼驗(yàn)證 String checkcode = (String) req.getSession().getAttribute("checkcode_session"); try { // 將用戶輸入的驗(yàn)證碼和 系統(tǒng)驗(yàn)證對(duì)比 if (checkcode.equals(captcha)) { User user = service.getUserByNameAndPassword(userName, password); if (user != null) { HttpSession session = req.getSession(); session.setAttribute("user", user); JSONResult ok = JSONResult.ok(); resp.getWriter().println(JsonUtil.javaObjectToJson(ok)); } else { // 將錯(cuò)誤信息封裝在結(jié)果集中 JSONResult result = JSONResult.errorMsg("用戶名或密碼錯(cuò)誤,請重試"); // 以json的形式返回給前端 resp.getWriter().println(JsonUtil.javaObjectToJson(result)); } } else { // 將錯(cuò)誤信息封裝在結(jié)果集中 JSONResult result = JSONResult.errorMsg("驗(yàn)證碼輸入錯(cuò)誤,請重試"); // 以json的形式返回給前端 resp.getWriter().println(JsonUtil.javaObjectToJson(result)); } } catch (Exception e) { e.printStackTrace(); } } /** * 用戶名重名檢測 * * @param req * @param resp */ public void checkUserNameRepeat(HttpServletRequest req, HttpServletResponse resp) { String userName = req.getParameter("userName"); if (userName != null) { int d = service.checkUserNameRepeat(userName); try { if (d > 0) { JSONResult error = JSONResult.errorMsg(""); resp.getWriter().println(JsonUtil.javaObjectToJson(error)); } else { JSONResult ok = JSONResult.ok(); resp.getWriter().println(JsonUtil.javaObjectToJson(ok)); } } catch (Exception e) { e.printStackTrace(); } } } /** * 用戶注冊 * * @param req * @param resp * @throws IOException */ public void register(HttpServletRequest req, HttpServletResponse resp) throws IOException { //設(shè)置請求編碼格式: req.setCharacterEncoding("utf-8"); //設(shè)置響應(yīng)編碼格式 resp.setContentType("text/html;charset=utf-8"); User user = new User(); user.setUserName(req.getParameter("userName")); user.setPassword(req.getParameter("password")); user.setEmail(req.getParameter("email")); user.setPhone(req.getParameter("phoneNum")); user.setRole("ordinaryUser"); int d = service.addUser(user); try { if (d > 0) { JSONResult ok = JSONResult.ok(); resp.getWriter().println(JsonUtil.javaObjectToJson(ok)); } else { JSONResult error = JSONResult.errorMsg("注冊失敗"); resp.getWriter().println(JsonUtil.javaObjectToJson(error)); } } catch (Exception e) { e.printStackTrace(); } } /** * 退出登錄 */ public void logout(HttpServletRequest req, HttpServletResponse resp) { req.getSession().removeAttribute("user"); try { resp.sendRedirect("index.jsp"); } catch (IOException e) { e.printStackTrace(); } } /** * 檢查舊密碼是否正確 ,在修改密碼操作時(shí)使用 * @throws IOException */ public void checkOldPassword(HttpServletRequest req, HttpServletResponse resp) throws IOException { //設(shè)置請求編碼格式: req.setCharacterEncoding("utf-8"); //設(shè)置響應(yīng)編碼格式 resp.setContentType("text/html;charset=utf-8"); User user = (User) req.getSession().getAttribute("user"); String oldPassword = service.getPasswordById(user.getId()); System.out.println("舊密碼:"+oldPassword); String password = req.getParameter("password"); System.out.println("舊密碼驗(yàn)證:"+password); try { if (!oldPassword.equals(password)) { JSONResult errorMsg = JSONResult.errorMsg("原始密碼錯(cuò)誤,請重新輸入"); resp.getWriter().println(JsonUtil.javaObjectToJson(errorMsg)); } else { JSONResult ok = JSONResult.ok(); resp.getWriter().println(JsonUtil.javaObjectToJson(ok)); } } catch (IOException e) { e.printStackTrace(); } } /** * 修改密碼 * @throws IOException */ public void modifyPassword(HttpServletRequest req, HttpServletResponse resp) throws IOException { //設(shè)置請求編碼格式: req.setCharacterEncoding("utf-8"); //設(shè)置響應(yīng)編碼格式 resp.setContentType("text/html;charset=utf-8"); String password = req.getParameter("newPassword"); System.out.println("新密碼:"+password); User user = (User) req.getSession().getAttribute("user"); int id = user.getId(); System.out.println("舊密碼id"+id); int d = service.updatePasswordById(id, password); try { if (d > 0) { JSONResult ok = JSONResult.ok(); resp.getWriter().println(JsonUtil.javaObjectToJson(ok)); } else { JSONResult errorMsg = JSONResult.errorMsg("修改失敗,請重試"); resp.getWriter().println(JsonUtil.javaObjectToJson(errorMsg)); } } catch (Exception e) { e.printStackTrace(); } } }
商品管理服務(wù)類
@WebServlet("/frontstage_goodsServlet") public class GoodsServlet extends HttpServlet{ GoodsService service = new GoodsService(); @Override protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String action = req.getParameter("action"); switch(action) { case "findAllGoods":findAllGoods(req,resp);break; case "findGoodsById":findGoodsById(req,resp);break; case "findGoodsByType":findGoodsByType(req,resp);break; } } /** * 獲取所有商品列表 * @param req * @param resp */ public void findAllGoods(HttpServletRequest req, HttpServletResponse resp) { Map<String, List<Goods>> allGoods = service.getAllGoods(); try { req.setAttribute("allGoods", allGoods); req.getRequestDispatcher("/main.jsp").forward(req, resp); return; } catch (ServletException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } /** *根據(jù)類型獲得商品列表 * @param req * @param resp */ public void findGoodsByType(HttpServletRequest req, HttpServletResponse resp) { String type = req.getParameter("type"); String currentPage = req.getParameter("currentPage"); PageBean pageBean = null; // 如果當(dāng)前第幾頁currentPage 值為null,說明第一次跳轉(zhuǎn)到此頁面或者是要跳轉(zhuǎn)到首頁,則設(shè)定該值currentPage默認(rèn)為1 if(currentPage == null) { pageBean = service.getGoodsByType(type, 4, 1); }else { pageBean = service.getGoodsByType(type, 4, Integer.parseInt(currentPage)); } try { req.setAttribute("pageBean", pageBean); req.setAttribute("type", type); req.getRequestDispatcher("/product.jsp").forward(req, resp); } catch (Exception e) { e.printStackTrace(); } } /** * 獲取商品的詳細(xì)信息 * @param req * @param resp */ public void findGoodsById(HttpServletRequest req, HttpServletResponse resp) { int id =Integer.parseInt(req.getParameter("id")); Goods goodsInfo = service.getGoodsInfoById(id); try { req.setAttribute("pro", goodsInfo); req.getRequestDispatcher("/productInfo_user.jsp").forward(req, resp); } catch (Exception e) { e.printStackTrace(); } } }
訂單控制層
@WebServlet("/backstage_ordersServlet") public class OrdersServlet extends HttpServlet{ OrdersService service = new OrdersService(); @Override protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String action = req.getParameter("action"); System.out.println(action); switch(action) { case "getOrdersList":getOrdersList(req,resp);break; case "getOrdersListByName":getOrdersListByName(req,resp);break; case "deleteOrders":deleteOrders(req,resp);break; case "deleteAllOrders":deleteAllOrders(req,resp);break; case "toOrdersUpdatePage":toOrdersUpdatePage(req,resp);break; case "updateOrders":updateOrders(req,resp);break; case "fastbuy":sendOrder(req,resp);break; } } /* * 刪除全部訂單 */ private void deleteAllOrders(HttpServletRequest req, HttpServletResponse resp) throws IOException { //設(shè)置請求編碼格式: req.setCharacterEncoding("utf-8"); //設(shè)置響應(yīng)編碼格式 resp.setContentType("text/html;charset=utf-8"); // TODO 自動(dòng)生成的方法存根 int d = service.deleteAllOrders(); try { if(d>0) { JSONResult ok = JSONResult.ok(); resp.getWriter().println(JsonUtil.javaObjectToJson(ok)); }else { JSONResult errorMsg = JSONResult.errorMsg("刪除失敗,請重試"); resp.getWriter().println(JsonUtil.javaObjectToJson(errorMsg)); } } catch (Exception e) { e.printStackTrace(); } } /** * 提交訂單 * @throws IOException */ public void sendOrder(HttpServletRequest req, HttpServletResponse resp) throws IOException { //設(shè)置請求編碼格式: req.setCharacterEncoding("utf-8"); //設(shè)置響應(yīng)編碼格式 resp.setContentType("text/html;charset=utf-8"); SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//設(shè)置日期格式 User user =(User) req.getSession().getAttribute("user"); Orders order = new Orders(); order.setNumber(order.getRandomString(10)); order.setTime(df.format(new Date())); order.setName(req.getParameter("recipients")); order.setAddress(req.getParameter("address")); order.setPhone(req.getParameter("phone")); order.setAddress_label(req.getParameter("addressLabel")); order.setSex(req.getParameter("sex")); order.setUser(user.getUserName()); order.setGoods_id(Integer.parseInt(req.getParameter("id"))); order.setGoods_num(Integer.parseInt(req.getParameter("num"))); order.setGoods_status(1); int d = service.addOrder(order); try { if(d>0) { JSONResult ok = JSONResult.ok(); resp.getWriter().println(JsonUtil.javaObjectToJson(ok)); }else { JSONResult error = JSONResult.errorMsg("訂單提交失敗!"); resp.getWriter().println(JsonUtil.javaObjectToJson(error)); } } catch (Exception e) { e.printStackTrace(); } } /** * 向前端頁面返回訂單數(shù)據(jù)列表 */ public void getOrdersList(HttpServletRequest req,HttpServletResponse resp) { List<Orders> allOrders = service.getAllOrders(); req.setAttribute("ordersList",allOrders); try { req.getRequestDispatcher("/backstage/tgls/ordersManage/orders_list.jsp").forward(req, resp); } catch (ServletException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } /** * 根據(jù)訂單名查詢商品(注意!類別沒改) * @param req * @param resp * @throws IOException */ public void getOrdersListByName(HttpServletRequest req,HttpServletResponse resp) throws IOException { //設(shè)置請求編碼格式: req.setCharacterEncoding("utf-8"); //設(shè)置響應(yīng)編碼格式 resp.setContentType("text/html;charset=utf-8"); String name = req.getParameter("OrdersUser"); //String type = req.getParameter("type"); Map<String,String> parmas = new HashMap<>(); parmas.put("name", name); //parmas.put("type", type); List<Orders> list = service.getOrdersByName(parmas); try { if(list != null) { JSONResult ok = JSONResult.ok(list); resp.getWriter().println(JsonUtil.javaObjectToJson(ok)); }else { JSONResult errorMsg = JSONResult.errorMsg("未獲取到任何數(shù)據(jù),請重試"); resp.getWriter().println(JsonUtil.javaObjectToJson(errorMsg)); } } catch (Exception e) { e.printStackTrace(); } } /** * 修改訂單時(shí),獲取此訂單的全部數(shù)據(jù),并返回至修改頁面 */ public void toOrdersUpdatePage(HttpServletRequest req,HttpServletResponse resp) { int id = Integer.parseInt(req.getParameter("id")); Orders orders = service.getOrdersInfoById(id); req.setAttribute("orders", orders); try { req.getRequestDispatcher("/backstage/tgls/ordersManage/orders_update.jsp").forward(req, resp); } catch (ServletException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } /** * 修改訂單 * @throws IOException */ public void updateOrders(HttpServletRequest req,HttpServletResponse resp) throws IOException { //設(shè)置請求編碼格式: req.setCharacterEncoding("utf-8"); //設(shè)置響應(yīng)編碼格式 resp.setContentType("text/html;charset=utf-8"); Orders orders = new Orders(); orders.setId(Integer.parseInt(req.getParameter("id"))); orders.setNumber(req.getParameter("number")); orders.setUser(req.getParameter("user")); orders.setTime(req.getParameter("time")); orders.setName(req.getParameter("name")); orders.setSex(req.getParameter("sex")); orders.setAddress(req.getParameter("address")); orders.setPhone(req.getParameter("phone")); orders.setAddress_label(req.getParameter("address_label")); orders.setGoods_id(Integer.parseInt(req.getParameter("goods_id"))); orders.setGoods_num(Integer.parseInt(req.getParameter("goods_num"))); orders.setGoods_status(Integer.parseInt(req.getParameter("goods_status"))); System.out.println(orders); int d = service.updateOrdersById(orders); System.out.println(d); try { if(d>0) { JSONResult ok = JSONResult.ok(); resp.getWriter().println(JsonUtil.javaObjectToJson(ok)); }else { JSONResult errorMsg = JSONResult.errorMsg("修改失敗,請重試"); resp.getWriter().println(JsonUtil.javaObjectToJson(errorMsg)); } } catch (Exception e) { e.printStackTrace(); } } /** * 刪除訂單 * @throws UnsupportedEncodingException */ public void deleteOrders(HttpServletRequest req,HttpServletResponse resp) throws UnsupportedEncodingException { //設(shè)置請求編碼格式: req.setCharacterEncoding("utf-8"); //設(shè)置響應(yīng)編碼格式 resp.setContentType("text/html;charset=utf-8"); int id = Integer.parseInt(req.getParameter("id")); int d = service.deleteOrdersById(id); try { if(d>0) { JSONResult ok = JSONResult.ok(); resp.getWriter().println(JsonUtil.javaObjectToJson(ok)); }else { JSONResult errorMsg = JSONResult.errorMsg("刪除失敗,請重試"); resp.getWriter().println(JsonUtil.javaObjectToJson(errorMsg)); } } catch (Exception e) { e.printStackTrace(); } } }
到此這篇關(guān)于Java實(shí)現(xiàn)茶葉售賣商城系統(tǒng)(java+SSM+JSP+EasyUi+mysql)的文章就介紹到這了,更多相關(guān)Java 茶葉售賣商城系統(tǒng)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用spring boot開發(fā)時(shí)java對(duì)象和Json對(duì)象轉(zhuǎn)換的問題
這篇文章主要介紹了使用spring boot開發(fā)時(shí)java對(duì)象和Json對(duì)象轉(zhuǎn)換的問題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03如何用Intellij idea2020打包jar的方法步驟
這篇文章主要介紹了如何用Intellij idea 2020打包jar的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04java 關(guān)鍵字static詳細(xì)介紹及如何使用
這篇文章主要介紹了java 關(guān)鍵字static詳細(xì)介紹及如何使用的相關(guān)資料,需要的朋友可以參考下2017-03-03Java(springboot) 讀取txt文本內(nèi)容代碼實(shí)例
這篇文章主要介紹了Java(springboot) 讀取txt文本內(nèi)容代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-02-02springboot使用Validator校驗(yàn)方式
這篇文章主要介紹了springboot使用Validator校驗(yàn)方式,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2018-01-01Spring中的NamespaceHandler加載過程源碼詳解
這篇文章主要介紹了Spring中的NamespaceHandler加載過程源碼詳解,Spring提供的NamespaceHandler的處理機(jī)制,簡單來說就是命名空間處理器,Spring為了開放性提供了NamespaceHandler機(jī)制,這樣我們就可以根據(jù)需求自己來處理我們設(shè)置的標(biāo)簽元素,需要的朋友可以參考下2024-02-02