源码获取:博客首页 "资源" 里下载!

一、项目简述(+需求文档+PPT)

功能: 主页显示热销商品;所有商品展示,可进行商品搜索;点 击商品进入商品详情页,显示库存,具有立即购买和加入 购物车功能,可增减购买商品数量亦可手动输入(同时验证 库存),热销商品展示。立即购买进入确认订单页面,可选 择已经添加的地址,亦可新增地址。(同时验证库存),可 选择购买哪些商品,可删除不需要的商品。点击结算进入 确认订单页面,确认后提交订单,订单重复提交给予响 应,库存不足或商品下架给予响应。后台管理:(修改密码 等),商品管理(商品批量添加、上下架、库存维护等), 订单管理。

二、项目运行

环境配置: Jdk1.8 + Tomcat8.5 + mysql + Eclispe ( IntelliJ IDEA,Eclispe,MyEclispe,Sts 都支持)

项目技术: JSP + C3P0+ Servlert + html+ css + JavaScript + JQuery + Ajax + Fileupload等等。

用户服务类:

@WebServlet("/frontstage_userServlet")
public class UserServlet extends HttpServlet {UserService service = new UserService();@Overrideprotected 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 {//设置请求编码格式:req.setCharacterEncoding("utf-8");//设置响应编码格式          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();}// 先进行验证码验证String checkcode = (String) req.getSession().getAttribute("checkcode_session");try {// 将用户输入的验证码和 系统验证对比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 {// 将错误信息封装在结果集中JSONResult result = JSONResult.errorMsg("用户名或密码错误,请重试");// 以json的形式返回给前端resp.getWriter().println(JsonUtil.javaObjectToJson(result));}} else {// 将错误信息封装在结果集中JSONResult result = JSONResult.errorMsg("验证码输入错误,请重试");// 以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 {//设置请求编码格式:req.setCharacterEncoding("utf-8");//设置响应编码格式            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();}}/*** 检查旧密码是否正确 ,在修改密码操作时使用* @throws IOException */public void checkOldPassword(HttpServletRequest req, HttpServletResponse resp) throws IOException {//设置请求编码格式:req.setCharacterEncoding("utf-8");//设置响应编码格式          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("旧密码验证:"+password);try {if (!oldPassword.equals(password)) {JSONResult errorMsg = JSONResult.errorMsg("原始密码错误,请重新输入");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 {//设置请求编码格式:req.setCharacterEncoding("utf-8");//设置响应编码格式         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();}}}

商品服务类:

@WebServlet("/frontstage_goodsServlet")
public class GoodsServlet extends HttpServlet{GoodsService service = new GoodsService();@Overrideprotected 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();}}/***根据类型获得商品列表 * @param req* @param resp*/public void findGoodsByType(HttpServletRequest req, HttpServletResponse resp) {String type = req.getParameter("type");String currentPage = req.getParameter("currentPage");PageBean pageBean = null;// 如果当前第几页currentPage 值为null,说明第一次跳转到此页面或者是要跳转到首页,则设定该值currentPage默认为1if(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();}}/*** 获取商品的详细信息* @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();@Overrideprotected 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 {//设置请求编码格式:req.setCharacterEncoding("utf-8");//设置响应编码格式           resp.setContentType("text/html;charset=utf-8");// TODO 自动生成的方法存根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 {//设置请求编码格式:req.setCharacterEncoding("utf-8");//设置响应编码格式            resp.setContentType("text/html;charset=utf-8");SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式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();}  }/*** 向前端页面返回订单数据列表*/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();}  }/*** 根据订单名查询商品(注意!类别没改)* @param req* @param resp* @throws IOException */public void getOrdersListByName(HttpServletRequest req,HttpServletResponse resp) throws IOException {//设置请求编码格式:req.setCharacterEncoding("utf-8");//设置响应编码格式           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("未获取到任何数据,请重试");resp.getWriter().println(JsonUtil.javaObjectToJson(errorMsg));}           } catch (Exception e) {e.printStackTrace();}}/*** 修改订单时,获取此订单的全部数据,并返回至修改页面*/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 {//设置请求编码格式:req.setCharacterEncoding("utf-8");//设置响应编码格式         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 {//设置请求编码格式:req.setCharacterEncoding("utf-8");//设置响应编码格式            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();}}
}

源码获取:博客首页 "资源" 里下载!

Java项目:网上商城系统(java+jsp+servlert+mysql+ajax)相关推荐

  1. Java项目:网上商城系统(java+SSM+jsp+mysql+maven)

    源码获取:博客首页 "资源" 里下载! 一.项目简述功能 javaweb 网上商城系统,前台+后台管理,用户注册,登录,上哦展示,分组展示,搜索,收货地址管理,购物车管理,添加,购 ...

  2. Java项目:化妆品商城系统(java+Springboot+ssm+mysql+jsp+maven)

    源码获取:博客首页 "资源" 里下载! 一.项目简述 本系统主要实现的功能有: 网上商城系统,前台+后台管理,用户注册,登录,上架展示,分组展示,搜索,收货地址管理,购物车管理,添 ...

  3. Java项目:零食商城系统(java+JSP+JavaScript+servlet+Mysql)

    源码获取:俺的博客首页 "资源" 里下载! 项目介绍 本项目分前后台,共有管理员.卖家.买家三种角色: 前台主要功能包括: 首页.商城介绍.商品一览.打折专区.销售排行.成交记录. ...

  4. Java项目:眼镜商城系统(java+SSM+JSP+jQuery+Mysql)

    源码获取:俺的博客首页 "资源" 里下载! 项目介绍 管理员角色包含以下功能: 管理员登录,管理员管理,管理商城会员,新闻公告管理,眼睛类型管理,城市信息管理,连锁配镜店管理,眼镜 ...

  5. Java项目:饰品商城系统(java+SSM+JSP+javascript+jQuery+Mysql)

    源码获取:俺的博客首页 "资源" 里下载! 项目介绍 本项目分为前台与后台,有普通用户与管理员两种角色: 管理员角色包含以下功能: 管理员登录,用户管理,一级分类管理,二级分类管理 ...

  6. Java项目:电器商城系统(java+SSM+JSP+jQuery+javascript+Mysql)

    源码获取:俺的博客首页 "资源" 里下载! 项目介绍 本项目分为前后台,前台为普通用户登录,后台管理员登录: 管理员角色包含以下功能: 修改个人信息,员工信息管理,商品管理,图片管 ...

  7. Java项目:生鲜商城系统(java+JSP+bootstrap+servlet+Mysql)

    源码获取:俺的博客首页 "资源" 里下载! 项目介绍 本项目分为前后台,分为管理员与普通用户两种角色,管理员登录后台,普通用户登录前台: 管理员登录包含以下功能: 登录,订单管理操 ...

  8. Java项目:汽配商城系统(java+HTML+JavaScript+jsp+Mysql)

    源码获取:俺的博客首页 "资源" 里下载! 项目介绍 管理员角色包含以下功能: 修改管理员信息,订单管理,客户管理,鞋子管理,类目管理等功能. 用户角色包含以下功能: 查看首页,用 ...

  9. Java项目:水产品商城系统(java+JSP+bootstrap+servlet+Mysql)

    源码获取:俺的博客首页 "资源" 里下载! 项目介绍 本项目分为前后台,分为管理员与普通用户两种角色,管理员登录后台,普通用户登录前台: 管理员登录包含以下功能: 管理员登录,修改 ...

最新文章

  1. 【Vue】IView之table组件化学习(二)
  2. 剑指offer_第15题_反转链表_Python
  3. GridView正反双向排序
  4. 在Axure RP 8.0 中使用 Font Awesome 图标库完成设计并能在其他未安装该字体的电脑离线预览的方法...
  5. 中国年度AI省市格局:北广上稳居前三,江苏四川力压浙江,山西转型“挖数据”增速迅猛...
  6. 常用基础参数SurvivorRatio讲解 || NewRatio讲解 || MaxTenuringThreshold讲解
  7. Java集合:HashMap源码剖析
  8. 音频处理八:(MFCC 的计算)
  9. 关于现代软件工程学习
  10. thunderbird html签名,Thunderbird中配置签名
  11. jrockit_JRockit – JRCMD有用的命令
  12. Detected call of `lr_scheduler.step()` before `optimizer.step()`.
  13. c语言二元一次方程代码,二元一次方程(示例代码)
  14. 宏睿达智慧酒店云桌面系统远程控制台V4.1.4及前端桌面app V2.0.3支持直播的组播和单播格式、私密投屏、点播、周边、wifi管理、广告推送、多级管理、多主题管理
  15. 小米账号登陆无法连接服务器,登录小米账号显示,无法连接网络,怎么回事?...
  16. SCI各领域国际顶尖学术期刊一览
  17. VS code Markdown Preview Enhanced 预览白色改为黑色
  18. php开发幸运大转盘,jQuery幸运大转盘_jQuery+PHP抽奖程序
  19. ERP系统如何通过存储过程导出报表数据
  20. vue列表的单独展开收起和全部展开收起

热门文章

  1. Ubuntu 14.04 64bit上升级Intel官方集显更新驱动程序
  2. 在Ubuntu 14.04 64bit下玩转Qvod快播Linux山寨版本
  3. 嵌入式系统开发过程中遇到的——volatile
  4. vim 键盘宏操作 -- 大道至简
  5. Sublime Text3配置Node.js开发环境
  6. GridView的编辑,更新,取消,删除等功能演示
  7. 用C#实现抽象工厂模式
  8. ASP.NET中的事务处理和异常处理
  9. 朴素、Select、Poll和Epoll网络编程模型实现和分析——Epoll模型
  10. 循环神经网络(RNN)简介