• Java项目:SSM网上外卖订餐管理系统


    作者主页:源码空间站2022

     简介:Java领域优质创作者、Java项目、学习资料、技术互助

    文末获取源码

    项目介绍

    该项目为前后台项目,分为普通用户与管理员两种角色,前台普通用户登录,后台管理员登录;

    普通用户主要功能包括:
    登录注册,查看商品,提交订单,然后留言,查看购物车,购买商品等等。

    管理员主要功能包括:
    添加商品,管理用户,添加类目,管理留言等等。

    环境需要

    1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。
    2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;
    3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可
    4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS; 

    5.数据库:MySql 5.7版本;

    6.是否Maven项目:否;

    技术栈

    1. 后端:Spring+SpringMVC+Mybatis

    2. 前端:JSP+jQuery+Ajax

    使用说明

    1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;
    2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行;
    3. 将项目中jdbc.properties配置文件中的数据库配置改为自己的配置;

    4. 运行项目,输入localhost:8080/ 登录

    用户账号/密码: user/123456
    管理员账号/密码:admin/admin

    运行截图

    前台界面

     后台界面

    相关代码

    登录控制器

    1. package com.shop.controller;
    2. import javax.servlet.http.HttpServletRequest;
    3. import javax.servlet.http.HttpServletResponse;
    4. import org.springframework.beans.factory.annotation.Autowired;
    5. import org.springframework.stereotype.Controller;
    6. import org.springframework.ui.Model;
    7. import org.springframework.web.bind.annotation.RequestMapping;
    8. import org.springframework.web.bind.annotation.RequestParam;
    9. import com.shop.exception.zdyException;
    10. import com.shop.po.Adminuser;
    11. import com.shop.po.User;
    12. import com.shop.service.UserService;
    13. @Controller
    14. public class loginController {
    15. @Autowired
    16. private UserService userService;
    17. @RequestMapping("login")
    18. public String login() {
    19. return "login";
    20. }
    21. // 用户登录
    22. @RequestMapping("/userLogin")
    23. public String userLogin(HttpServletRequest request,
    24. @RequestParam String checkImg, User user, Model model)
    25. throws zdyException, Exception {
    26. String sessionCode = (String) request.getSession().getAttribute(
    27. "checkcode");
    28. if (!sessionCode.equalsIgnoreCase(checkImg)) {
    29. //model.addAttribute("message", "验证码输入错误请重新注册");
    30. //throw new zdyException("验证码输入错误请重新注册");
    31. request.getSession().setAttribute("message", "验证码输入错误请重新注册");
    32. return "redirect:login.action";
    33. }
    34. User loginUser = userService.loginFindByUnameAndPwd(user.getUsername(),
    35. user.getPassword());
    36. if (loginUser == null) {
    37. //model.addAttribute("message", "密码输入错误请重新登陆");
    38. request.getSession().setAttribute("message", "密码输入错误请重新登陆");
    39. //throw new zdyException("密码输入错误请重新登陆");
    40. return "redirect:login.action";
    41. }
    42. request.getSession().setAttribute("loginUser", loginUser);
    43. request.getSession().removeAttribute("message");
    44. return "redirect:index.action";
    45. }
    46. // 用户退出
    47. @RequestMapping("userLogout")
    48. public String userLogout(HttpServletRequest request,
    49. HttpServletResponse response, Model model) {
    50. request.getSession().removeAttribute("loginUser");
    51. response.setHeader("content-type", "text/html;charset=UTF-8");
    52. response.setHeader("refresh", "5;url=/shop/index.action");
    53. model.addAttribute("message", "退出成功,系统将在5秒之后跳转到首页......");
    54. return "msg";
    55. }
    56. //进入管理员页面
    57. @RequestMapping("/admin")
    58. public String AdminIndex(){
    59. return "admin/index";
    60. }
    61. //admin/adminUser_login.action
    62. //adminUser_login管理员登录
    63. @RequestMapping("/admin/adminUser_login")
    64. public String adminUser_login(HttpServletRequest request,Model model,@RequestParam String username,@RequestParam String password) throws Exception{
    65. Adminuser adminuserLogin = userService.adminUser_login(username,password);
    66. System.out.println(username);
    67. System.out.println(password);
    68. if(adminuserLogin == null){
    69. model.addAttribute("message", "改用户未被授予管理员身份!");
    70. return "admin/index";
    71. }
    72. request.getSession().setAttribute("adminuserLogin", adminuserLogin);
    73. // model.addAttribute("adminuserLogin", adminuserLogin);
    74. return "admin/home";
    75. }
    76. }

    产品模块

    1. package com.shop.controller;
    2. import org.springframework.beans.factory.annotation.Autowired;
    3. import org.springframework.stereotype.Controller;
    4. import org.springframework.ui.Model;
    5. import org.springframework.web.bind.annotation.RequestMapping;
    6. import org.springframework.web.bind.annotation.RequestParam;
    7. import com.shop.po.Product;
    8. import com.shop.service.ProductService;
    9. @Controller
    10. public class ProductController {
    11. @Autowired
    12. private ProductService prodcutService;
    13. @RequestMapping("/productFindByPid")
    14. public String productFindByPid(@RequestParam int pid,Model model) throws Exception {
    15. Product product = prodcutService.productFindByPid(pid);
    16. model.addAttribute("product", product);
    17. return "product";
    18. }
    19. }

    注册控制器

    1. package com.shop.controller;
    2. import java.util.ArrayList;
    3. import java.util.List;
    4. import javax.servlet.http.HttpServletRequest;
    5. import org.springframework.beans.factory.annotation.Autowired;
    6. import org.springframework.stereotype.Controller;
    7. import org.springframework.ui.Model;
    8. import org.springframework.validation.BindingResult;
    9. import org.springframework.validation.ObjectError;
    10. import org.springframework.validation.annotation.Validated;
    11. import org.springframework.web.bind.annotation.RequestMapping;
    12. import org.springframework.web.bind.annotation.RequestParam;
    13. import com.shop.exception.zdyException;
    14. import com.shop.po.User;
    15. import com.shop.service.UserService;
    16. @Controller
    17. public class registController {
    18. @Autowired
    19. private UserService userService;
    20. @RequestMapping("regist")
    21. public String regist() {
    22. return "regist";
    23. }
    24. @RequestMapping("/userRegist")
    25. public String userRegist(Model model, HttpServletRequest request,
    26. @Validated User user, BindingResult bindingResult,
    27. @RequestParam String checkImg) throws Exception {
    28. if (bindingResult.hasErrors()) {
    29. List errors =bindingResult.getAllErrors();
    30. List list = new ArrayList<>();
    31. for (ObjectError objectError : errors) {
    32. String str = new String(objectError.getDefaultMessage()
    33. .getBytes("ISO-8859-1"), "gbk");
    34. list.add(str);
    35. }
    36. model.addAttribute("errors", list);
    37. return "regist";
    38. }
    39. // 查看验证码
    40. String sessionCode = (String) request.getSession().getAttribute(
    41. "checkcode");
    42. // System.out.println("adadadad" + sessionCode);
    43. if (!sessionCode.equalsIgnoreCase(checkImg)) {
    44. // model.addAttribute("message", "验证码错误请重新注册");
    45. throw new zdyException("验证码错误请重新注册");
    46. }
    47. // 开始写入数据库
    48. userService.saveUser(user);
    49. //model.addAttribute("message", "注册成功请去邮箱激活");
    50. model.addAttribute("message", "注册成功请登录");
    51. return "msg";
    52. }
    53. @RequestMapping("/activeUser")
    54. public String activeUser(@RequestParam String code,Model model) throws zdyException,Exception {
    55. /*
    56. * 根据传递激活码进行用户查询. 如果用户不为空: 修改用户状态 改为1 如果用户为空: 激活码被篡改了.
    57. */
    58. User activeUser = userService.findByCode(code);
    59. if(activeUser==null){
    60. // model.addAttribute("message", "激活码被篡改了,请重新注册");
    61. throw new zdyException("激活码被篡改了,请重新注册");
    62. }
    63. activeUser.setState(1);
    64. activeUser.setCode(null);
    65. userService.activeUser(activeUser);
    66. model.addAttribute("message", "激活码成功");
    67. return "msg";
    68. }
    69. }

    购物车

    1. package com.shop.controller;
    2. import javax.servlet.http.HttpServletRequest;
    3. import org.springframework.beans.factory.annotation.Autowired;
    4. import org.springframework.stereotype.Controller;
    5. import org.springframework.ui.Model;
    6. import org.springframework.web.bind.annotation.RequestMapping;
    7. import org.springframework.web.bind.annotation.RequestParam;
    8. import com.shop.po.Cart;
    9. import com.shop.po.CartItem;
    10. import com.shop.po.Product;
    11. import com.shop.po.User;
    12. import com.shop.service.ProductService;
    13. @Controller
    14. public class cartController {
    15. @Autowired
    16. private ProductService productService;
    17. // 添加到购物车
    18. @RequestMapping("/addCart")
    19. public String addCart(HttpServletRequest request,@RequestParam int pid,@RequestParam int count ,Model model){
    20. Product product = productService.finbProductByPid(pid);
    21. // 存进一个购物项
    22. CartItem cartItem = new CartItem();
    23. cartItem.setCount(count);
    24. cartItem.setProduct(product);
    25. cartItem.setSubtotle(count*product.getShopPrice());
    26. // 存进购物车
    27. Cart cart=getCart(request);
    28. cart.addCart(cartItem);
    29. return "cart";
    30. }
    31. // 查看我的购物车
    32. @RequestMapping("/myCart")
    33. public String myCart(HttpServletRequest request,Model model){
    34. User loginUser = (User) request.getSession().getAttribute("loginUser");
    35. if (loginUser == null) {
    36. model.addAttribute("message","您还没有登录!");
    37. return "msg";
    38. }
    39. return "cart";
    40. }
    41. // 清空购物车
    42. @RequestMapping("/clearCart")
    43. public String clearCart(HttpServletRequest request){
    44. Cart cart=getCart(request);
    45. cart.clearCart();
    46. return "redirect:myCart.action";
    47. }
    48. // 删除某个购物项
    49. @RequestMapping("/delProFromCart")
    50. public String delProFromCart(@RequestParam int pid,HttpServletRequest request){
    51. Cart cart=getCart(request);
    52. cart.delProFromCart(pid);
    53. return "redirect:myCart.action";
    54. }
    55. public Cart getCart(HttpServletRequest request) {
    56. Cart cart = (Cart) request.getSession().getAttribute("cart");
    57. if (cart == null) {
    58. cart = new Cart();
    59. request.getSession().setAttribute("cart", cart);
    60. }
    61. return cart;
    62. }
    63. }

    二级分类

    1. package com.shop.controller;
    2. import javax.servlet.http.HttpServletRequest;
    3. import org.springframework.beans.factory.annotation.Autowired;
    4. import org.springframework.stereotype.Controller;
    5. import org.springframework.ui.Model;
    6. import org.springframework.web.bind.annotation.RequestMapping;
    7. import org.springframework.web.bind.annotation.RequestParam;
    8. import com.shop.Utils.PageBean;
    9. import com.shop.po.Product;
    10. import com.shop.service.ProductService;
    11. @Controller
    12. public class CategorySecondController {
    13. @Autowired
    14. private ProductService productService;
    15. //根据一级目录查找二级目录下面的商品(使用延迟加载但是这里不知为啥使用起来出错了)
    16. @RequestMapping("/findCategorySecond")
    17. public String findCategorySecond(HttpServletRequest request,@RequestParam int cid,Model model,@RequestParam int page) throws Exception {
    18. request.getSession().setAttribute("cid",cid);
    19. PageBean proPageBean = productService.findProductyBycid(cid,page);
    20. model.addAttribute("pageBean",proPageBean);
    21. return "category";
    22. }
    23. // 根据csid来分页查询商品
    24. @RequestMapping("/findCategorySecond1")
    25. public String findCategorySecond1(@RequestParam int csid,Model model,@RequestParam int page){
    26. PageBean proPageBean = productService.finbProductByCsid(csid,page);
    27. model.addAttribute("pageBean",proPageBean);
    28. return "category";
    29. }
    30. }

    如果也想学习本系统,下面领取。关注并回复:112ssm 

     

  • 相关阅读:
    用Speedtest-Tracker跟踪上网速度
    MySQL 极速安装使用与卸载
    使用VMware搭建OceanStor_eStor存储超详细教程
    网页的用户注册功能
    毫米波雷达数据采集
    wget 命令的使用:HTTP文件下载、FTP文件下载--九五小庞
    CountDownLatch vs CyclicBarrier
    什么是无损检测设备?
    FastAPI学习-21.response 参数-设置响应Cookies
    上周热点回顾(5.6-5.12)
  • 原文地址:https://blog.csdn.net/m0_74967853/article/details/128193726