• Java项目:基于jsp+mysql的JSP在线旅游美食展现管理系统


    作者主页:源码空间站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版本;

    技术栈

    1. 后端:Spring+SpringMVC+Mbytes

    2. 前端:JSP+bootstrap+jQuery

    使用说明

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

    4. 运行项目,在浏览器中输入localhost:8080/

    运行截图
    用户角色

    管理员角色 

     

    相关代码 

    CllentServlet

    1. package com.travel.controller;
    2. import java.io.IOException;
    3. import java.io.PrintWriter;
    4. import java.sql.SQLException;
    5. import javax.servlet.ServletException;
    6. import javax.servlet.annotation.WebServlet;
    7. import javax.servlet.http.HttpServlet;
    8. import javax.servlet.http.HttpServletRequest;
    9. import javax.servlet.http.HttpServletResponse;
    10. import javax.servlet.http.HttpSession;
    11. import com.alibaba.fastjson.JSONArray;
    12. import com.alibaba.fastjson.JSONObject;
    13. import com.travel.dao.BaseDao;
    14. import com.travel.dao.BaseDaoImpl;
    15. import com.travel.entity.CllentEntity;
    16. import com.travel.service.ObjectService;
    17. @WebServlet("/Cllent")//用户类
    18. public class CllentServlet extends HttpServlet {
    19. private static final long serialVersionUID = 1L;
    20. BaseDao dao = new BaseDaoImpl();
    21. PrintWriter out = null;
    22. @Override
    23. protected void service(HttpServletRequest request, HttpServletResponse response)
    24. throws ServletException, IOException {
    25. request.setCharacterEncoding("UTF-8");
    26. response.setContentType("text/html;charset=utf-8");
    27. // service
    28. // 方法类-----------------------------------------------------------------------------------------------------
    29. ObjectService service = new ObjectService();
    30. CllentEntity con = service.setObject(request, CllentEntity.class);
    31. HttpSession session = request.getSession();
    32. out = response.getWriter();
    33. // 全局变量类----------------------------------------------------------------------------------------------------------
    34. String method = request.getParameter("method");
    35. System.out.println(method);
    36. if ("cllentList".equals(method)) {// 列表
    37. try {
    38. JSONArray cllent = dao.findJSONArray("select * from cllent ");
    39. request.setAttribute("cllent", cllent);
    40. request.getRequestDispatcher("admin-cllent.jsp").forward(request, response);
    41. } catch (SQLException e) {
    42. e.printStackTrace();
    43. }
    44. } else if ("searchCllent".equals(method)) {// 查询
    45. try {
    46. JSONArray cllent = dao.findJSONArray("select * from cllent where ctel like '%" + con.getCtel() + "%'");
    47. request.setAttribute("cllent", cllent);
    48. request.getRequestDispatcher("admin-cllent.jsp").forward(request, response);
    49. } catch (SQLException e) {
    50. e.printStackTrace();
    51. }
    52. } else if ("cllentAdd".equals(method)) {// 增加
    53. Object[] params = { con.getCllName(), con.getCtel(), con.getCsex(),con.getAge(),service.getRandom() };
    54. try {
    55. CllentEntity user = dao.findBean(CllentEntity.class, "select * from cllent where ctel=?",
    56. con.getCtel());
    57. if (user != null) {
    58. service.outWrite(out, "2");
    59. } else {
    60. int i = dao.update("INSERT INTO cllent(cll_name,ctel,csex,age,id_code,password) VALUES(?,?,?,?,?,?)", params);
    61. if (i > 0) {
    62. service.outWrite(out, "1");
    63. } else {
    64. service.outWrite(out, "3");
    65. }
    66. }
    67. } catch (SQLException e) {
    68. e.printStackTrace();
    69. }
    70. } else if ("resetPwd".equals(method)) {// 重置密码
    71. try {
    72. int i = dao.update("update cllent set password = '123456' where ctel=?", con.getCtel());
    73. if (i > 0) {
    74. response.sendRedirect("Cllent?method=cllentList");
    75. }
    76. } catch (SQLException e) {
    77. e.printStackTrace();
    78. }
    79. } else if ("deleteCllent".equals(method)) {// 删除
    80. try {
    81. int i = dao.update("delete from cllent where ctel=?", con.getCtel());
    82. if (i > 0 ) {
    83. response.sendRedirect("Cllent?method=cllentList");
    84. }
    85. } catch (SQLException e) {
    86. e.printStackTrace();
    87. }
    88. } else if ("updateCllent".equals(method)) {// 修改
    89. Object[] params = { con.getCllId() };
    90. try {
    91. JSONObject cllent = dao.findJSONObject("select * from cllent where cll_id = ?", params);
    92. request.setAttribute("cllent", cllent);
    93. request.getRequestDispatcher("admin-cllentUpdate.jsp").forward(request, response);
    94. } catch (SQLException e) {
    95. e.printStackTrace();
    96. }
    97. } else if ("updateCllent1".equals(method)) {// 完成修改
    98. Object[] params = { con.getCllName(), con.getCsex(),con.getIdCode(),con.getAge(), con.getCtel() };
    99. try {
    100. int i = dao.update("update cllent set cll_name = ?,csex=?,id_code=?,age=? where ctel=?",
    101. params);
    102. if (i > 0) {
    103. service.outWrite(out, "1");
    104. } else {
    105. service.outWrite(out, "2");
    106. }
    107. } catch (SQLException e) {
    108. e.printStackTrace();
    109. }
    110. } else if ("updateCllent2".equals(method)) {// 用户完成修改信息
    111. Object[] params1 = { con.getCllName(), con.getCsex(),con.getIdCode(),con.getAge(), con.getCtel() };
    112. try {
    113. int i = dao.update("update cllent set cll_name = ?,csex=?,id_code=?,age=? where ctel=?",
    114. params1);
    115. if(i>0) {
    116. response.sendRedirect("Cllent?method=cllentList");
    117. }
    118. } catch (SQLException e) {
    119. e.printStackTrace();
    120. }
    121. } else if ("cllent".equals(method)) {// 用户信息
    122. String uname = (String) session.getAttribute("uname");
    123. JSONArray cllent;
    124. try {
    125. cllent = dao.findJSONArray(
    126. "select u.*,c.* from users u join cllent c on c.uname=u.uname where u.uname=?", uname);
    127. System.out.println(cllent);
    128. request.setAttribute("cllent", cllent);
    129. request.getRequestDispatcher("cllent-info.jsp").forward(request, response);
    130. } catch (SQLException e) {
    131. e.printStackTrace();
    132. }
    133. }
    134. }
    135. }

    CollectServlet

    1. package com.travel.controller;
    2. import java.io.IOException;
    3. import java.io.PrintWriter;
    4. import java.sql.SQLException;
    5. import javax.servlet.ServletException;
    6. import javax.servlet.annotation.MultipartConfig;
    7. import javax.servlet.annotation.WebServlet;
    8. import javax.servlet.http.HttpServlet;
    9. import javax.servlet.http.HttpServletRequest;
    10. import javax.servlet.http.HttpServletResponse;
    11. import com.alibaba.fastjson.JSON;
    12. import com.alibaba.fastjson.JSONArray;
    13. import com.travel.dao.BaseDao;
    14. import com.travel.dao.BaseDaoImpl;
    15. import com.travel.entity.FoodEntity;
    16. import com.travel.entity.ScenicEntity;
    17. import com.travel.service.ObjectService;
    18. @WebServlet("/CollectServlet") // 用户类
    19. @MultipartConfig
    20. public class CollectServlet extends HttpServlet {
    21. private static final long serialVersionUID = 1L;
    22. BaseDao dao = new BaseDaoImpl();
    23. PrintWriter out = null;
    24. @Override
    25. protected void service(HttpServletRequest request, HttpServletResponse response)
    26. throws ServletException, IOException {
    27. request.setCharacterEncoding("UTF-8");
    28. response.setContentType("text/html;charset=utf-8");
    29. // service
    30. // 方法类-----------------------------------------------------------------------------------------------------
    31. ObjectService service = new ObjectService();
    32. FoodEntity foo = service.setObject(request, FoodEntity.class);
    33. ScenicEntity sce = service.setObject(request, ScenicEntity.class);
    34. out = response.getWriter();
    35. // 全局变量类----------------------------------------------------------------------------------------------------------
    36. String method = request.getParameter("method");
    37. System.out.println(method);
    38. if ("sce_collect".equals(method)) {// 景点收藏
    39. try {
    40. String sce_collect = "select count(*) value,s.sce_name name from scenic s "
    41. + "join sce_collect sc on s.sce_id = sc.sce_id join cllent c on sc.ctel = c.ctel "
    42. + " GROUP BY s.sce_id ORDER BY value DESC limit 0,15";
    43. JSONArray scenic = dao.findJSONArray(sce_collect);
    44. service.outWrite(out, JSON.toJSONString(scenic));
    45. } catch (SQLException e) {
    46. e.printStackTrace();
    47. }
    48. } else if ("foo_collect".equals(method)) {// 美食收藏
    49. try {
    50. String foo_collect = "select count(*) value,f.foo_name name from food f "
    51. + "join foo_collect fc on f.foo_id = fc.foo_id join cllent c on fc.ctel = c.ctel "
    52. + "GROUP BY f.foo_id ORDER BY value DESC limit 0,15";
    53. JSONArray food = dao.findJSONArray(foo_collect);
    54. service.outWrite(out, JSON.toJSONString(food));
    55. } catch (SQLException e) {
    56. e.printStackTrace();
    57. }
    58. } else if ("deleteFoo".equals(method)) {// 取消美食收藏
    59. String ctel = (String) request.getSession().getAttribute("ctel");
    60. Object[] params = { foo.getFooId(), ctel };
    61. System.out.println(foo.getFooId() + " " + ctel);
    62. try {
    63. int a = dao.update("delete from foo_collect where foo_id=? and ctel=?", params);
    64. if (a > 0) {
    65. service.outWrite(out, "1");
    66. } else {
    67. service.outWrite(out, "2");
    68. }
    69. } catch (SQLException e) {
    70. e.printStackTrace();
    71. }
    72. } else if ("addFoo".equals(method)) {// 美食收藏
    73. String ctel = (String) request.getSession().getAttribute("ctel");
    74. Object[] params = { foo.getFooId(), ctel };
    75. System.out.println(foo.getFooId() + " " + ctel);
    76. try {
    77. int a = dao.update("insert into foo_collect(foo_id,ctel) values(?,?)", params);
    78. if (a > 0) {
    79. service.outWrite(out, "1");
    80. } else {
    81. service.outWrite(out, "2");
    82. }
    83. } catch (SQLException e) {
    84. e.printStackTrace();
    85. }
    86. } else if ("deleteSce".equals(method)) {// 取消美食收藏
    87. String ctel = (String) request.getSession().getAttribute("ctel");
    88. Object[] params = { sce.getSceId(), ctel };
    89. try {
    90. int a = dao.update("delete from sce_collect where sce_id=? and ctel=?", params);
    91. if (a > 0) {
    92. service.outWrite(out, "1");
    93. } else {
    94. service.outWrite(out, "2");
    95. }
    96. } catch (SQLException e) {
    97. e.printStackTrace();
    98. }
    99. } else if ("addSce".equals(method)) {// 美食收藏
    100. String ctel = (String) request.getSession().getAttribute("ctel");
    101. Object[] params = { sce.getSceId(), ctel };
    102. try {
    103. int a = dao.update("insert into sce_collect(sce_id,ctel) values(?,?)", params);
    104. if (a > 0) {
    105. service.outWrite(out, "1");
    106. } else {
    107. service.outWrite(out, "2");
    108. }
    109. } catch (SQLException e) {
    110. e.printStackTrace();
    111. }
    112. } else if ("collectSec".equals(method)) {// 用户查看景点收藏
    113. String ctel = (String) request.getSession().getAttribute("ctel");
    114. try {
    115. String sce_collect = "select s.* from scenic s join sce_collect sc on s.sce_id = sc.sce_id join cllent c on sc.ctel = c.ctel where sc.ctel=?";
    116. JSONArray scenic = dao.findJSONArray(sce_collect,ctel);
    117. request.setAttribute("collect", scenic);
    118. request.getRequestDispatcher("collectSce-list.jsp").forward(request, response);
    119. } catch (SQLException e) {
    120. e.printStackTrace();
    121. }
    122. } else if ("collectFoo".equals(method)) {// 美食收藏
    123. String ctel = (String) request.getSession().getAttribute("ctel");
    124. try {
    125. String foo_collect = "select f.* from food f join foo_collect fc on f.foo_id = fc.foo_id join cllent c on fc.ctel = c.ctel where fc.ctel=?";
    126. JSONArray food = dao.findJSONArray(foo_collect,ctel);
    127. request.setAttribute("collect", food);
    128. request.getRequestDispatcher("collectFoo-list.jsp").forward(request, response);
    129. } catch (SQLException e) {
    130. e.printStackTrace();
    131. }
    132. }
    133. }
    134. }

    FoodServlet

    1. package com.travel.controller;
    2. import java.io.IOException;
    3. import java.io.PrintWriter;
    4. import java.sql.SQLException;
    5. import javax.servlet.ServletException;
    6. import javax.servlet.annotation.MultipartConfig;
    7. import javax.servlet.annotation.WebServlet;
    8. import javax.servlet.http.HttpServlet;
    9. import javax.servlet.http.HttpServletRequest;
    10. import javax.servlet.http.HttpServletResponse;
    11. import javax.servlet.http.Part;
    12. import com.alibaba.fastjson.JSONArray;
    13. import com.alibaba.fastjson.JSONObject;
    14. import com.travel.dao.BaseDao;
    15. import com.travel.dao.BaseDaoImpl;
    16. import com.travel.entity.FoodEntity;
    17. import com.travel.service.ObjectService;
    18. @WebServlet("/FoodServlet") // 用户类
    19. @MultipartConfig
    20. public class FoodServlet extends HttpServlet {
    21. private static final long serialVersionUID = 1L;
    22. BaseDao dao = new BaseDaoImpl();
    23. PrintWriter out = null;
    24. @Override
    25. protected void service(HttpServletRequest request, HttpServletResponse response)
    26. throws ServletException, IOException {
    27. request.setCharacterEncoding("UTF-8");
    28. response.setContentType("text/html;charset=utf-8");
    29. // service
    30. // 方法类-----------------------------------------------------------------------------------------------------
    31. ObjectService service = new ObjectService();
    32. FoodEntity foo = service.setObject(request, FoodEntity.class);
    33. out = response.getWriter();
    34. // 全局变量类----------------------------------------------------------------------------------------------------------
    35. String method = request.getParameter("method");
    36. System.out.println(method);
    37. if ("foodList".equals(method)) {// 列表
    38. try {
    39. JSONArray food = dao
    40. .findJSONArray("select s.sce_name,f.* from food f left join scenic s on s.sce_id=f.sce_id");
    41. request.setAttribute("food", food);
    42. request.getRequestDispatcher("admin-food.jsp").forward(request, response);
    43. } catch (SQLException e) {
    44. e.printStackTrace();
    45. }
    46. } else if ("searchFood".equals(method)) {// 查询
    47. try {
    48. System.out.println(foo.getFooName());
    49. JSONArray food = dao.findJSONArray(
    50. "select s.sce_name,f.* from food f left join scenic s on s.sce_id=f.sce_id where f.foo_name like '%"
    51. + foo.getFooName() + "%'");
    52. String sceId = request.getParameter("sceId");
    53. System.out.println(sceId);
    54. if (sceId != null && sceId != "") {
    55. food = dao.findJSONArray(
    56. "select s.sce_name,f.* from food f left join scenic s on s.sce_id=f.sce_id where f.sce_id="
    57. + sceId + " and f.foo_name like '%" + foo.getFooName() + "%'");
    58. }
    59. request.setAttribute("food", food);
    60. request.getRequestDispatcher("admin-food.jsp").forward(request, response);
    61. } catch (SQLException e) {
    62. e.printStackTrace();
    63. }
    64. } else if ("foodAdd".equals(method)) {// 增加
    65. Part part = request.getPart("Savatar");
    66. String heads_url = service.imagepath(part);
    67. String img_url = heads_url;
    68. Object[] params = { foo.getFooName(), img_url, foo.getAddress(), foo.getSceId(), foo.getDescription() };
    69. try {
    70. int i = dao.update("INSERT INTO food(foo_name,img_url,address,sce_id,description) VALUES(?,?,?,?,?)",
    71. params);
    72. if (i > 0) {
    73. response.sendRedirect("FoodServlet?method=foodList");
    74. }
    75. } catch (SQLException e) {
    76. e.printStackTrace();
    77. }
    78. } else if ("deleteFood".equals(method)) {// 删除
    79. try {
    80. int i = dao.update("delete from food where foo_id=?", foo.getFooId());
    81. if (i > 0) {
    82. response.sendRedirect("FoodServlet?method=foodList");
    83. }
    84. } catch (SQLException e) {
    85. e.printStackTrace();
    86. }
    87. } else if ("updateFood".equals(method)) {// 修改
    88. Object[] params = { foo.getFooId() };
    89. try {
    90. JSONObject food = dao.findJSONObject(
    91. "select s.sce_name,f.* from food f left join scenic s on s.sce_id=f.sce_id where f.foo_id = ?",
    92. params);
    93. request.setAttribute("food", food);
    94. request.getRequestDispatcher("admin-foodUpdate.jsp").forward(request, response);
    95. } catch (SQLException e) {
    96. e.printStackTrace();
    97. }
    98. } else if ("updateFood1".equals(method)) {// 完成修改
    99. String img_url = null;
    100. Part part1 = request.getPart("Savatar");
    101. if (part1.getSize() > 0) {
    102. String savepath = service.imagepath(part1);
    103. img_url = savepath;
    104. } else {
    105. img_url = foo.getImgUrl();
    106. }
    107. Object[] params = { foo.getFooName(), img_url, foo.getAddress(), foo.getSceId(), foo.getDescription(),
    108. foo.getFooId() };
    109. try {
    110. int i = dao.update(
    111. "update food set foo_name = ?,img_url=?,address=?,sce_id=?,description=? where foo_id=?",
    112. params);
    113. if (i > 0) {
    114. response.sendRedirect("FoodServlet?method=foodList");
    115. }
    116. } catch (SQLException e) {
    117. e.printStackTrace();
    118. }
    119. } else if ("foodCllentList".equals(method)) {// 用户查看列表
    120. String ctel = (String) request.getSession().getAttribute("ctel");
    121. try {
    122. String sql = "select IF(ISNULL(c.ctel),'0','1') count,IF(ISNULL(fo.foo_id),'0',CONVERT( COUNT(*) USING UTF8)) num ,f.* "
    123. + "from foo_collect fo " + "left join food f on fo.foo_id=f.foo_id "
    124. + "left join cllent c on c.ctel=fo.ctel " + "and c.ctel=? where f.sce_id=? "
    125. + "GROUP BY f.foo_id order by num desc";
    126. JSONArray food = dao.findJSONArray(sql, ctel, foo.getSceId());
    127. request.setAttribute("food", food);
    128. request.getRequestDispatcher("food-list.jsp").forward(request, response);
    129. } catch (SQLException e) {
    130. e.printStackTrace();
    131. }
    132. } else if ("foodCllentSearch".equals(method)) {// 用户搜索列表
    133. String ctel = (String) request.getSession().getAttribute("ctel");
    134. try {
    135. String sql = "select IF(ISNULL(c.ctel),'0','1') count,IF(ISNULL(fo.foo_id),'0',CONVERT( COUNT(*) USING UTF8)) num ,f.* "
    136. + "from foo_collect fo " + "left join food f on fo.foo_id=f.foo_id "
    137. + "left join cllent c on c.ctel=fo.ctel " + "and c.ctel=" + ctel + " where f.sce_id = "
    138. + foo.getSceId() + " and f.foo_name like '%" + foo.getFooName() + "%' "
    139. + "GROUP BY f.foo_id order by num desc";
    140. JSONArray food = dao.findJSONArray(sql);
    141. request.setAttribute("food", food);
    142. request.getRequestDispatcher("food-list.jsp").forward(request, response);
    143. } catch (SQLException e) {
    144. e.printStackTrace();
    145. }
    146. } else if ("detailFood".equals(method)) {// 美食详情
    147. try {
    148. JSONObject food = dao.findJSONObject("select * from food where foo_id=?", foo.getFooId());
    149. request.setAttribute("food", food);
    150. request.getRequestDispatcher("food-detail.jsp").forward(request, response);
    151. } catch (SQLException e) {
    152. e.printStackTrace();
    153. }
    154. }
    155. }
    156. }

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

     

  • 相关阅读:
    互联网智慧工地源码,“互联网+建筑大数据”SaaS微服务架构,支持PC端、手机端、数据大屏端
    vue3的生命周期
    Unity游戏Mod/插件制作教程05 - 插件实例2: 简单功能实现
    01 uniapp/微信小程序 项目day01
    【电源专题】不合理接地引发的典型问题及地环路隔离的方法
    搭建docker,docker搭建达梦数据库,详细【图文】
    C语言数组和指针笔试题(二)(一定要看)
    Android USB分析
    【性能测试】缓慢的磁盘问题分析套路
    设计链表复习
  • 原文地址:https://blog.csdn.net/m0_74967853/article/details/128073734