• Java项目:在线美食分享推荐系统(java+SSM+JSP+jQuery+Mysql)


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

    项目介绍

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

    管理员角色包含以下功能:
    管理员登录,用户管理,一级分类管理,二级分类管理,美食管理,留言管理等功能。

    用户角色包含以下功能:
    用户登录,按分类查看,写留言等功能。

    环境需要

    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/ 登录

     

     

     

     

     

     

     

    登录管理控制层: 

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

    管理员管理控制层:

    1. @Controller
    2. public class AdminController {
    3. @Autowired
    4. private UserService userService;
    5. @Autowired
    6. public CategoryService categoryService;
    7. @Autowired
    8. public CategorySecondService categorySecondService;
    9. @Autowired
    10. public ProductService productService;
    11. @Autowired
    12. private OrderService orderService;
    13. @Autowired
    14. private MessageService messageService;
    15. @RequestMapping("/admin/admin_findAll")
    16. public String admin_findAll(Model model, HttpServletRequest request) throws Exception {
    17. Adminuser adminuserLogin = (Adminuser) request.getSession().getAttribute("adminuserLogin");
    18. if(adminuserLogin==null){
    19. request.getSession().setAttribute("message","对不起您还没有登录");
    20. return "admin/index";
    21. }
    22. List<User> userList = userService.admin_findAll();
    23. model.addAttribute("userList", userList);
    24. return "admin/user/list";
    25. }
    26. @RequestMapping("/admin/adminCategory_findAll")
    27. public String adminCategory_findAll(Model model, HttpServletRequest request)
    28. throws Exception {
    29. Adminuser adminuserLogin = (Adminuser) request.getSession().getAttribute("adminuserLogin");
    30. if(adminuserLogin==null){
    31. request.getSession().setAttribute("message","对不起您还没有登录");
    32. return "admin/index";
    33. }
    34. List<Category> categoryList = categoryService.adminbFindCategory();
    35. /*for (Category category : categoryList) {
    36. System.out.println(category.getCname());
    37. }*/
    38. model.addAttribute("categoryList", categoryList);
    39. return "admin/category/list";
    40. }
    41. @RequestMapping("/admin/adminCategory_add")
    42. public String adminCategory_add(Model model,HttpServletRequest request) throws Exception {
    43. Adminuser adminuserLogin = (Adminuser) request.getSession().getAttribute("adminuserLogin");
    44. if(adminuserLogin==null){
    45. request.getSession().setAttribute("message","对不起您还没有登录");
    46. return "admin/index";
    47. }
    48. // List<Category> categoryList = categoryService.adminbFindCategory();
    49. // model.addAttribute("categoryList", categoryList);
    50. return "admin/category/add";
    51. }
    52. @RequestMapping("/admin/adminCategory_save")
    53. public String adminCategory_save(@RequestParam String cname,HttpServletRequest request)
    54. throws Exception {
    55. Adminuser adminuserLogin = (Adminuser) request.getSession().getAttribute("adminuserLogin");
    56. if(adminuserLogin==null){
    57. request.getSession().setAttribute("message","对不起您还没有登录");
    58. return "admin/index";
    59. }
    60. Category addCategory = new Category();
    61. addCategory.setCname(cname);
    62. categoryService.addCategory(addCategory);
    63. return "redirect:/admin/adminCategory_findAll.action";
    64. }
    65. @RequestMapping("/admin/adminCategory_edit")
    66. public String adminCategory_delete(@RequestParam int cid, Model model,HttpServletRequest request)
    67. throws Exception {
    68. Adminuser adminuserLogin = (Adminuser) request.getSession().getAttribute("adminuserLogin");
    69. if(adminuserLogin==null){
    70. request.getSession().setAttribute("message","对不起您还没有登录");
    71. return "admin/index";
    72. }
    73. Category existCategory = categoryService.findCategory(cid);
    74. model.addAttribute("existCategory", existCategory);
    75. return "admin/category/edit";
    76. }
    77. @RequestMapping("/admin/adminCategory_update")
    78. public String adminCategory_update(@RequestParam int cid,
    79. @RequestParam String cname,HttpServletRequest request) {
    80. Adminuser adminuserLogin = (Adminuser) request.getSession().getAttribute("adminuserLogin");
    81. if(adminuserLogin==null){
    82. request.getSession().setAttribute("message","对不起您还没有登录");
    83. return "admin/index";
    84. }
    85. Category category = new Category();
    86. category.setCid(cid);
    87. category.setCname(cname);
    88. categoryService.adminCategory_update(category);
    89. return "redirect:/admin/adminCategory_findAll.action";
    90. }
    91. @RequestMapping("/admin/adminCategory_delete")
    92. public String adminCategory_delete(@RequestParam int cid,HttpServletRequest request) throws Exception {
    93. Adminuser adminuserLogin = (Adminuser) request.getSession().getAttribute("adminuserLogin");
    94. if(adminuserLogin==null){
    95. request.getSession().setAttribute("message","对不起您还没有登录");
    96. return "admin/index";
    97. }
    98. categorySecondService.adminCategorySecond_deleteByCid(cid);
    99. categoryService.deleteCategoryByCid(cid);
    100. return "redirect:/admin/adminCategory_findAll.action";
    101. }
    102. // admin 的二级分类的管理
    103. @RequestMapping("/admin/adminCategorySecond_findAllByPage")
    104. public String adminCategorySecond_findAllByPage(@RequestParam int page,Model model,HttpServletRequest request) {
    105. Adminuser adminuserLogin = (Adminuser) request.getSession().getAttribute("adminuserLogin");
    106. if(adminuserLogin==null){
    107. request.getSession().setAttribute("message","对不起您还没有登录");
    108. return "admin/index";
    109. }
    110. PageBean<Categorysecond> csPageBean = categorySecondService
    111. .adminCategorySecond_findAllByPage(page);
    112. /*List<Categorysecond> list = csPageBean.getList();
    113. for (Categorysecond categorysecond : list) {
    114. System.out.println(categorysecond.getCsname());
    115. }*/
    116. model.addAttribute("csPageBean", csPageBean);
    117. return "admin/categorysecond/list";
    118. }
    119. @RequestMapping("admin/adminCategorySecond_addPage")
    120. public String adminCategorySecond_addPage(Model model,HttpServletRequest request) throws Exception{
    121. Adminuser adminuserLogin = (Adminuser) request.getSession().getAttribute("adminuserLogin");
    122. if(adminuserLogin==null){
    123. request.getSession().setAttribute("message","对不起您还没有登录");
    124. return "admin/index";
    125. }
    126. List<Category> categoryList = categoryService.adminbFindCategory();
    127. model.addAttribute("categoryList", categoryList);
    128. return "admin/categorysecond/add";
    129. }
    130. @RequestMapping("admin/adminCategorySecond_save")
    131. public String adminCategorySecond_save(@RequestParam String csname,@RequestParam int cid,HttpServletRequest request) throws Exception{
    132. Adminuser adminuserLogin = (Adminuser) request.getSession().getAttribute("adminuserLogin");
    133. if(adminuserLogin==null){
    134. request.getSession().setAttribute("message","对不起您还没有登录");
    135. return "admin/index";
    136. }
    137. Categorysecond categorysecond = new Categorysecond();
    138. categorysecond.setCsname(csname);
    139. categorysecond.setCid(cid);
    140. categorySecondService.adminCategorySecond_save(categorysecond);
    141. return "redirect:/admin/adminCategorySecond_findAllByPage.action?page=1";
    142. }
    143. @RequestMapping("admin/adminCategorySecond_edit")
    144. public String adminCategorySecond_edit(@RequestParam int csid,Model model,HttpServletRequest request) throws Exception{
    145. Adminuser adminuserLogin = (Adminuser) request.getSession().getAttribute("adminuserLogin");
    146. if(adminuserLogin==null){
    147. request.getSession().setAttribute("message","对不起您还没有登录");
    148. return "admin/index";
    149. }
    150. Categorysecond findByCsid = categorySecondService.findByCsid(csid);
    151. model.addAttribute("findByCsid", findByCsid);
    152. return "admin/categorysecond/edit";
    153. }
    154. @RequestMapping("admin/adminCategorySecond_update")
    155. public String adminCategorySecond_update(@RequestParam String csname,@RequestParam int csid,HttpServletRequest request){
    156. Adminuser adminuserLogin = (Adminuser) request.getSession().getAttribute("adminuserLogin");
    157. if(adminuserLogin==null){
    158. request.getSession().setAttribute("message","对不起您还没有登录");
    159. return "admin/index";
    160. }
    161. Categorysecond categorysecond = new Categorysecond();
    162. categorysecond.setCsname(csname);
    163. categorysecond.setCsid(csid);
    164. categorySecondService.adminCategorySecond_update(categorysecond);
    165. return "redirect:/admin/adminCategorySecond_findAllByPage.action?page=1";
    166. }
    167. @RequestMapping("admin/adminCategorySecond_delete")
    168. public String adminCategorySecond_delete(@RequestParam int csid,HttpServletRequest request) throws Exception{
    169. Adminuser adminuserLogin = (Adminuser) request.getSession().getAttribute("adminuserLogin");
    170. if(adminuserLogin==null){
    171. request.getSession().setAttribute("message","对不起您还没有登录");
    172. return "admin/index";
    173. }
    174. categorySecondService.adminCategorySecond_delete(csid);
    175. return "redirect:/admin/adminCategorySecond_findAllByPage.action?page=1";
    176. }
    177. //admin的商品管理
    178. @RequestMapping("/admin/adminProduct_findAllByPage")
    179. public String adminProduct_findAllByPage(@RequestParam int page, Model model,HttpServletRequest request)
    180. throws Exception {
    181. Adminuser adminuserLogin = (Adminuser) request.getSession().getAttribute("adminuserLogin");
    182. if(adminuserLogin==null){
    183. request.getSession().setAttribute("message","对不起您还没有登录");
    184. return "admin/index";
    185. }
    186. PageBean<Product> allProPageBean = productService.findAllProduct(page);
    187. model.addAttribute("allProPageBean", allProPageBean);
    188. return "admin/product/list";
    189. }
    190. @RequestMapping("/admin/adminProduct_addPage")
    191. public String adminProduct_addPage(Model model,HttpServletRequest request) throws Exception {
    192. Adminuser adminuserLogin = (Adminuser) request.getSession().getAttribute("adminuserLogin");
    193. if(adminuserLogin==null){
    194. request.getSession().setAttribute("message","对不起您还没有登录");
    195. return "admin/index";
    196. }
    197. //查询出所有的二级分类
    198. List<Categorysecond> cslist = categorySecondService.findAll();
    199. /*for (Categorysecond categorysecond : cslist) {
    200. System.out.println(categorysecond.getCsname());
    201. }*/
    202. model.addAttribute("cslist", cslist);
    203. return "admin/product/add";
    204. }
    205. @RequestMapping("/admin/adminProduct_save")
    206. public String adminProduct_save(Product product,HttpServletRequest request,MultipartFile file) throws Exception {
    207. Adminuser adminuserLogin = (Adminuser) request.getSession().getAttribute("adminuserLogin");
    208. if(adminuserLogin==null){
    209. request.getSession().setAttribute("message","对不起您还没有登录");
    210. return "admin/index";
    211. }
    212. product.setPdate(new Date());
    213. // 上传图片
    214. if (file != null) {
    215. String path = request.getServletContext().getRealPath(
    216. "/products");
    217. String uploadFileName = file.getOriginalFilename();
    218. String fileName = UUIDUtiils.getUUID()+uploadFileName;
    219. File diskFile = new File(path + "//" + fileName);
    220. file.transferTo(diskFile);
    221. product.setImage("products/" + fileName);
    222. }
    223. System.out.println(product.getImage());
    224. productService.adminProduct_save(product);
    225. return "redirect:/admin/adminProduct_findAllByPage.action?page=1";
    226. }
    227. @RequestMapping("admin/adminProduct_deletecs")
    228. public String adminProduct_deletecs(@RequestParam int pid,HttpServletRequest request) throws Exception{
    229. Adminuser adminuserLogin = (Adminuser) request.getSession().getAttribute("adminuserLogin");
    230. if(adminuserLogin==null){
    231. request.getSession().setAttribute("message","对不起您还没有登录");
    232. return "admin/index";
    233. }
    234. productService.adminProduct_deletecs(pid);
    235. return "redirect:/admin/adminProduct_findAllByPage.action?page=1";
    236. }
    237. /**
    238. * 编辑商品
    239. *
    240. * @param pid
    241. * @param model
    242. * @param request
    243. * @return
    244. * @throws Exception
    245. */
    246. @RequestMapping("admin/adminProduct_edit")
    247. public String adminProduct_edit(@RequestParam int pid,Model model,HttpServletRequest request) throws Exception{
    248. Adminuser adminuserLogin = (Adminuser) request.getSession().getAttribute("adminuserLogin");
    249. if(adminuserLogin==null){
    250. request.getSession().setAttribute("message","对不起您还没有登录");
    251. return "admin/index";
    252. }
    253. Product product = productService.finbProductByPid(pid);
    254. model.addAttribute("findByPid", product);
    255. //查询出所有的二级分类
    256. List<Categorysecond> cslist = categorySecondService.findAll();
    257. model.addAttribute("cslist", cslist);
    258. return "admin/product/edit";
    259. }
    260. @RequestMapping("/admin/adminProduct_update")
    261. public String adminProduct_update(Product product,HttpServletRequest request,MultipartFile file) throws Exception {
    262. Adminuser adminuserLogin = (Adminuser) request.getSession().getAttribute("adminuserLogin");
    263. if(adminuserLogin==null){
    264. request.getSession().setAttribute("message","对不起您还没有登录");
    265. return "admin/index";
    266. }
    267. product.setPdate(new Date());
    268. // 上传图片
    269. if (file != null) {
    270. String path = request.getServletContext().getRealPath(
    271. "/products");
    272. String uploadFileName = file.getOriginalFilename();
    273. String fileName = UUIDUtiils.getUUID()+uploadFileName;
    274. File diskFile = new File(path + "//" + fileName);
    275. file.transferTo(diskFile);
    276. product.setImage("products/" + fileName);
    277. }
    278. productService.adminProduct_update(product);
    279. return "redirect:/admin/adminProduct_findAllByPage.action?page=1";
    280. }
    281. /** 订单管理模块 **/
    282. @RequestMapping("/admin/adminOrder_findAllByPage")
    283. public String adminOrder_findAllByPage(@RequestParam int page, Model model,HttpServletRequest request)
    284. throws Exception {
    285. Adminuser adminuserLogin = (Adminuser) request.getSession().getAttribute("adminuserLogin");
    286. if(adminuserLogin==null){
    287. request.getSession().setAttribute("message","对不起您还没有登录");
    288. return "admin/index";
    289. }
    290. PageBean<Orders> allProPageBean = orderService.findAllOrderByStateAndPage(page);
    291. model.addAttribute("pageBean", allProPageBean);
    292. return "admin/order/list";
    293. }
    294. //adminOrder_findByState
    295. @RequestMapping("/admin/adminOrder_findByState")
    296. public String adminOrder_findByState(@RequestParam int page,@RequestParam int state, Model model,HttpServletRequest request)
    297. throws Exception {
    298. Adminuser adminuserLogin = (Adminuser) request.getSession().getAttribute("adminuserLogin");
    299. if(adminuserLogin==null){
    300. request.getSession().setAttribute("message","对不起您还没有登录");
    301. return "admin/index";
    302. }
    303. PageBean<Orders> allProPageBean = orderService.findAllOrderByStateAndPage(state,page);
    304. model.addAttribute("pageBean", allProPageBean);
    305. return "admin/order/list";
    306. }
    307. //订单详情
    308. //adminOrder_findOrderItem
    309. @RequestMapping("/admin/adminOrder_findOrderItem")
    310. public String adminOrder_findOrderItem(@RequestParam int oid, Model model,HttpServletRequest request)
    311. throws Exception {
    312. Adminuser adminuserLogin = (Adminuser) request.getSession().getAttribute("adminuserLogin");
    313. if(adminuserLogin==null){
    314. request.getSession().setAttribute("message","对不起您还没有登录");
    315. return "admin/index";
    316. }
    317. Orders orderItems = orderService.findOrderByOid(oid);
    318. model.addAttribute("orderItems", orderItems);
    319. return "admin/order/list";
    320. }
    321. //更新订单状态
    322. @RequestMapping("/admin/adminOrder_updateState")
    323. public String adminOrder_updateState(@RequestParam int oid, @RequestParam int status, Model model,HttpServletRequest request)
    324. throws Exception {
    325. Adminuser adminuserLogin = (Adminuser) request.getSession().getAttribute("adminuserLogin");
    326. if(adminuserLogin==null){
    327. request.getSession().setAttribute("message","对不起您还没有登录");
    328. return "admin/index";
    329. }
    330. orderService.updateOrderStatus(oid, status);
    331. return "redirect:/admin/adminOrder_findAllByPage.action?page=1";
    332. }
    333. //后台留言管理
    334. @RequestMapping("/admin/adminMessage_findAllByPage")
    335. public String adminMessage_findAllByPage(@RequestParam int page, Model model,HttpServletRequest request)
    336. throws Exception {
    337. Adminuser adminuserLogin = (Adminuser) request.getSession().getAttribute("adminuserLogin");
    338. if(adminuserLogin==null){
    339. request.getSession().setAttribute("message","对不起您还没有登录");
    340. return "admin/index";
    341. }
    342. PageBean<Message> pageBean = messageService.findAllMessageByPage(page);
    343. model.addAttribute("pageBean", pageBean);
    344. return "admin/message/list";
    345. }
    346. @RequestMapping("/admin/adminMessage_delete")
    347. public String adminOrder_updateState(@RequestParam int messageid, Model model,HttpServletRequest request)
    348. throws Exception {
    349. Adminuser adminuserLogin = (Adminuser) request.getSession().getAttribute("adminuserLogin");
    350. if(adminuserLogin==null){
    351. request.getSession().setAttribute("message","对不起您还没有登录");
    352. return "admin/index";
    353. }
    354. messageService.deleteMessage(messageid);
    355. return "redirect:/admin/adminMessage_findAllByPage.action?page=1";
    356. }
    357. }

    留言管理控制层: 

    1. @Controller
    2. public class messageController {
    3. @Autowired
    4. private MessageService messageService;
    5. @RequestMapping("/saveMessage")
    6. public String saveMessage(@RequestParam String messageinfo,HttpServletRequest request,Model model) throws Exception {
    7. Message Message = new Message();
    8. User loginUser = (User) request.getSession().getAttribute("loginUser");
    9. if(loginUser==null){
    10. model.addAttribute("message", "对不起您还没有登录");
    11. return "msg";
    12. }
    13. java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    14. Message.setMessage(messageinfo);
    15. Message.setUid(loginUser.getUid());
    16. Message.setMessagedate(sdf.format(new Date()));
    17. messageService.insertMessage(Message);
    18. request.getSession().setAttribute("Message", Message);
    19. return "redirect:/messageList.action?page=1";
    20. }
    21. // 显示留言板全部留言
    22. @RequestMapping("/messageList")
    23. public String messageList(@RequestParam int page, Model model,
    24. HttpServletRequest request) throws Exception {
    25. PageBean<Message> pageBean = messageService.findAllMessageByPage(page);
    26. model.addAttribute("pageBean", pageBean);
    27. return "messageList";
    28. }
    29. }

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

  • 相关阅读:
    项目平台——测试报表的实现(六)
    kubernetes之ingress探索实践
    目标追踪拍摄?目标遮挡拍摄?拥有19亿安装量的花瓣app,究竟有什么别出心裁的功能如此吸引用户?
    大语言模型之十六-基于LongLoRA的长文本上下文微调Llama-2
    关于gorm的preload方法笔记
    合合信息技术专家出席“海聚英才”全球创新创业峰会,为卓越工程师培养“支招”
    归并排序
    计算机专业毕设课设选题攻略
    【从小白到大白05】c和c++内存管理
    vue学习笔记,购物车清单制作
  • 原文地址:https://blog.csdn.net/m0_66863468/article/details/125532995