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

133 篇文章 9 订阅

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

package com.travel.controller;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.SQLException;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.travel.dao.BaseDao;
import com.travel.dao.BaseDaoImpl;
import com.travel.entity.CllentEntity;
import com.travel.service.ObjectService;

@WebServlet("/Cllent")//用户类
public class CllentServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
	BaseDao dao = new BaseDaoImpl();
	PrintWriter out = null;

	@Override
	protected void service(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		request.setCharacterEncoding("UTF-8");
		response.setContentType("text/html;charset=utf-8");
		// service
		// 方法类-----------------------------------------------------------------------------------------------------
		ObjectService service = new ObjectService();
		CllentEntity con = service.setObject(request, CllentEntity.class);
		HttpSession session = request.getSession();
		out = response.getWriter();
		// 全局变量类----------------------------------------------------------------------------------------------------------
		String method = request.getParameter("method");
		System.out.println(method);

		if ("cllentList".equals(method)) {// 列表
			try {
				JSONArray cllent = dao.findJSONArray("select * from cllent ");
				request.setAttribute("cllent", cllent);
				request.getRequestDispatcher("admin-cllent.jsp").forward(request, response);
			} catch (SQLException e) {
				e.printStackTrace();
			}
		} else if ("searchCllent".equals(method)) {// 查询
			try {
				JSONArray cllent = dao.findJSONArray("select * from cllent where ctel like '%" + con.getCtel() + "%'");
				request.setAttribute("cllent", cllent);
				request.getRequestDispatcher("admin-cllent.jsp").forward(request, response);
			} catch (SQLException e) {
				e.printStackTrace();
			}
		} else if ("cllentAdd".equals(method)) {// 增加
			Object[] params = { con.getCllName(), con.getCtel(), con.getCsex(),con.getAge(),service.getRandom() };
			try {
				CllentEntity user = dao.findBean(CllentEntity.class, "select * from cllent where ctel=?",
						con.getCtel());
				if (user != null) {
					service.outWrite(out, "2");
				} else {
					int i = dao.update("INSERT INTO cllent(cll_name,ctel,csex,age,id_code,password) VALUES(?,?,?,?,?,?)", params);
					if (i > 0) {
						service.outWrite(out, "1");
					} else {
						service.outWrite(out, "3");
					}
				}
			} catch (SQLException e) {
				e.printStackTrace();
			}
		} else if ("resetPwd".equals(method)) {// 重置密码
			try {
				int i = dao.update("update cllent set password = '123456' where ctel=?", con.getCtel());
				if (i > 0) {
					response.sendRedirect("Cllent?method=cllentList");
				}
			} catch (SQLException e) {
				e.printStackTrace();
			}
		} else if ("deleteCllent".equals(method)) {// 删除
			try {
				int i = dao.update("delete from cllent where ctel=?", con.getCtel());
				if (i > 0 ) {
					response.sendRedirect("Cllent?method=cllentList");
				}
			} catch (SQLException e) {
				e.printStackTrace();
			}
		} else if ("updateCllent".equals(method)) {// 修改
			Object[] params = { con.getCllId() };
			try {
				JSONObject cllent = dao.findJSONObject("select * from cllent where cll_id = ?", params);
				request.setAttribute("cllent", cllent);
				request.getRequestDispatcher("admin-cllentUpdate.jsp").forward(request, response);
			} catch (SQLException e) {
				e.printStackTrace();
			}
		} else if ("updateCllent1".equals(method)) {// 完成修改
			Object[] params = {  con.getCllName(), con.getCsex(),con.getIdCode(),con.getAge(), con.getCtel() };
			try {
				int i = dao.update("update cllent set cll_name = ?,csex=?,id_code=?,age=? where ctel=?",
						params);
				if (i > 0) {
					service.outWrite(out, "1");
				} else {
					service.outWrite(out, "2");
				}
			} catch (SQLException e) {
				e.printStackTrace();
			}
		} else if ("updateCllent2".equals(method)) {// 用户完成修改信息
			Object[] params1 = { con.getCllName(), con.getCsex(),con.getIdCode(),con.getAge(), con.getCtel() };
			try {

				int i = dao.update("update cllent set cll_name = ?,csex=?,id_code=?,age=? where ctel=?",
						params1);
				if(i>0) {
					response.sendRedirect("Cllent?method=cllentList");
				}
			} catch (SQLException e) {
				e.printStackTrace();
			}
		} else if ("cllent".equals(method)) {// 用户信息
			String uname = (String) session.getAttribute("uname");
			JSONArray cllent;
			try {
				cllent = dao.findJSONArray(
						"select u.*,c.* from users u join cllent c on c.uname=u.uname where u.uname=?", uname);
				System.out.println(cllent);
				request.setAttribute("cllent", cllent);
				request.getRequestDispatcher("cllent-info.jsp").forward(request, response);
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
	}

}

CollectServlet

package com.travel.controller;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.SQLException;

import javax.servlet.ServletException;
import javax.servlet.annotation.MultipartConfig;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.travel.dao.BaseDao;
import com.travel.dao.BaseDaoImpl;
import com.travel.entity.FoodEntity;
import com.travel.entity.ScenicEntity;
import com.travel.service.ObjectService;

@WebServlet("/CollectServlet") // 用户类
@MultipartConfig
public class CollectServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
	BaseDao dao = new BaseDaoImpl();
	PrintWriter out = null;

	@Override
	protected void service(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		request.setCharacterEncoding("UTF-8");
		response.setContentType("text/html;charset=utf-8");
		// service
		// 方法类-----------------------------------------------------------------------------------------------------
		ObjectService service = new ObjectService();
		FoodEntity foo = service.setObject(request, FoodEntity.class);
		ScenicEntity sce = service.setObject(request, ScenicEntity.class);
		out = response.getWriter();
		// 全局变量类----------------------------------------------------------------------------------------------------------
		String method = request.getParameter("method");
		System.out.println(method);

		if ("sce_collect".equals(method)) {// 景点收藏
			try {
				String sce_collect = "select count(*) value,s.sce_name name from scenic s "
						+ "join sce_collect sc on s.sce_id = sc.sce_id join cllent c on sc.ctel = c.ctel "
						+ " GROUP BY s.sce_id ORDER BY  value DESC limit 0,15";
				JSONArray scenic = dao.findJSONArray(sce_collect);
				service.outWrite(out, JSON.toJSONString(scenic));
			} catch (SQLException e) {
				e.printStackTrace();
			}
		} else if ("foo_collect".equals(method)) {// 美食收藏
			try {
				String foo_collect = "select count(*) value,f.foo_name name from food f "
						+ "join foo_collect fc on f.foo_id = fc.foo_id join cllent c on fc.ctel = c.ctel "
						+ "GROUP BY f.foo_id ORDER BY  value DESC limit 0,15";
				JSONArray food = dao.findJSONArray(foo_collect);
				service.outWrite(out, JSON.toJSONString(food));
			} catch (SQLException e) {
				e.printStackTrace();
			}
		} else if ("deleteFoo".equals(method)) {// 取消美食收藏
			String ctel = (String) request.getSession().getAttribute("ctel");
			Object[] params = { foo.getFooId(), ctel };
			System.out.println(foo.getFooId() + " " + ctel);
			try {
				int a = dao.update("delete from foo_collect where foo_id=? and ctel=?", params);
				if (a > 0) {
					service.outWrite(out, "1");
				} else {
					service.outWrite(out, "2");
				}
			} catch (SQLException e) {
				e.printStackTrace();
			}
		} else if ("addFoo".equals(method)) {// 美食收藏
			String ctel = (String) request.getSession().getAttribute("ctel");
			Object[] params = { foo.getFooId(), ctel };
			System.out.println(foo.getFooId() + " " + ctel);
			try {
				int a = dao.update("insert into foo_collect(foo_id,ctel) values(?,?)", params);
				if (a > 0) {
					service.outWrite(out, "1");
				} else {
					service.outWrite(out, "2");
				}
			} catch (SQLException e) {
				e.printStackTrace();
			}
		} else if ("deleteSce".equals(method)) {// 取消美食收藏
			String ctel = (String) request.getSession().getAttribute("ctel");
			Object[] params = { sce.getSceId(), ctel };
			try {
				int a = dao.update("delete from sce_collect where sce_id=? and ctel=?", params);
				if (a > 0) {
					service.outWrite(out, "1");
				} else {
					service.outWrite(out, "2");
				}
			} catch (SQLException e) {
				e.printStackTrace();
			}
		} else if ("addSce".equals(method)) {// 美食收藏
			String ctel = (String) request.getSession().getAttribute("ctel");
			Object[] params = { sce.getSceId(), ctel };
			try {
				int a = dao.update("insert into sce_collect(sce_id,ctel) values(?,?)", params);
				if (a > 0) {
					service.outWrite(out, "1");
				} else {
					service.outWrite(out, "2");
				}
			} catch (SQLException e) {
				e.printStackTrace();
			}
		} else if ("collectSec".equals(method)) {// 用户查看景点收藏
			String ctel = (String) request.getSession().getAttribute("ctel");
			try {
				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=?";
				JSONArray scenic = dao.findJSONArray(sce_collect,ctel);
				request.setAttribute("collect", scenic);
				request.getRequestDispatcher("collectSce-list.jsp").forward(request, response);
			} catch (SQLException e) {
				e.printStackTrace();
			}
		} else if ("collectFoo".equals(method)) {// 美食收藏
			String ctel = (String) request.getSession().getAttribute("ctel");
			try {
				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=?";
				JSONArray food = dao.findJSONArray(foo_collect,ctel);
				request.setAttribute("collect", food);
				request.getRequestDispatcher("collectFoo-list.jsp").forward(request, response);
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
	}

}

FoodServlet

package com.travel.controller;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.SQLException;

import javax.servlet.ServletException;
import javax.servlet.annotation.MultipartConfig;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.Part;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.travel.dao.BaseDao;
import com.travel.dao.BaseDaoImpl;
import com.travel.entity.FoodEntity;
import com.travel.service.ObjectService;

@WebServlet("/FoodServlet") // 用户类
@MultipartConfig
public class FoodServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
	BaseDao dao = new BaseDaoImpl();
	PrintWriter out = null;

	@Override
	protected void service(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		request.setCharacterEncoding("UTF-8");
		response.setContentType("text/html;charset=utf-8");
		// service
		// 方法类-----------------------------------------------------------------------------------------------------
		ObjectService service = new ObjectService();
		FoodEntity foo = service.setObject(request, FoodEntity.class);
		out = response.getWriter();
		// 全局变量类----------------------------------------------------------------------------------------------------------
		String method = request.getParameter("method");
		System.out.println(method);

		if ("foodList".equals(method)) {// 列表
			try {
				JSONArray food = dao
						.findJSONArray("select s.sce_name,f.* from food f left join scenic s on s.sce_id=f.sce_id");
				request.setAttribute("food", food);
				request.getRequestDispatcher("admin-food.jsp").forward(request, response);
			} catch (SQLException e) {
				e.printStackTrace();
			}
		} else if ("searchFood".equals(method)) {// 查询
			try {
				System.out.println(foo.getFooName());
				JSONArray food = dao.findJSONArray(
						"select s.sce_name,f.* from food f left join scenic s on s.sce_id=f.sce_id where f.foo_name like '%"
								+ foo.getFooName() + "%'");
				String sceId = request.getParameter("sceId");
				System.out.println(sceId);
				if (sceId != null && sceId != "") {
					food = dao.findJSONArray(
							"select s.sce_name,f.* from food f left join scenic s on s.sce_id=f.sce_id where f.sce_id="
									+ sceId + " and f.foo_name like '%" + foo.getFooName() + "%'");
				}
				request.setAttribute("food", food);
				request.getRequestDispatcher("admin-food.jsp").forward(request, response);
			} catch (SQLException e) {
				e.printStackTrace();
			}
		} else if ("foodAdd".equals(method)) {// 增加
			Part part = request.getPart("Savatar");
			String heads_url = service.imagepath(part);
			String img_url = heads_url;
			Object[] params = { foo.getFooName(), img_url, foo.getAddress(), foo.getSceId(), foo.getDescription() };
			try {
				int i = dao.update("INSERT INTO food(foo_name,img_url,address,sce_id,description) VALUES(?,?,?,?,?)",
						params);
				if (i > 0) {
					response.sendRedirect("FoodServlet?method=foodList");
				}
			} catch (SQLException e) {
				e.printStackTrace();
			}
		} else if ("deleteFood".equals(method)) {// 删除
			try {
				int i = dao.update("delete from food where foo_id=?", foo.getFooId());
				if (i > 0) {
					response.sendRedirect("FoodServlet?method=foodList");
				}
			} catch (SQLException e) {
				e.printStackTrace();
			}
		} else if ("updateFood".equals(method)) {// 修改
			Object[] params = { foo.getFooId() };
			try {
				JSONObject food = dao.findJSONObject(
						"select s.sce_name,f.* from food f left join scenic s on s.sce_id=f.sce_id where f.foo_id = ?",
						params);
				request.setAttribute("food", food);
				request.getRequestDispatcher("admin-foodUpdate.jsp").forward(request, response);
			} catch (SQLException e) {
				e.printStackTrace();
			}
		} else if ("updateFood1".equals(method)) {// 完成修改
			String img_url = null;
			Part part1 = request.getPart("Savatar");
			if (part1.getSize() > 0) {
				String savepath = service.imagepath(part1);
				img_url = savepath;
			} else {
				img_url = foo.getImgUrl();
			}
			Object[] params = { foo.getFooName(), img_url, foo.getAddress(), foo.getSceId(), foo.getDescription(),
					foo.getFooId() };
			try {
				int i = dao.update(
						"update food set foo_name = ?,img_url=?,address=?,sce_id=?,description=? where foo_id=?",
						params);
				if (i > 0) {
					response.sendRedirect("FoodServlet?method=foodList");
				}
			} catch (SQLException e) {
				e.printStackTrace();
			}
		} else if ("foodCllentList".equals(method)) {// 用户查看列表
			String ctel = (String) request.getSession().getAttribute("ctel");
			try {
				String sql = "select IF(ISNULL(c.ctel),'0','1') count,IF(ISNULL(fo.foo_id),'0',CONVERT( COUNT(*) USING UTF8)) num ,f.* "
						+ "from foo_collect fo " + "left join food f on fo.foo_id=f.foo_id "
						+ "left join cllent c on c.ctel=fo.ctel " + "and c.ctel=? where f.sce_id=? "
						+ "GROUP BY f.foo_id order by num desc";
				JSONArray food = dao.findJSONArray(sql, ctel, foo.getSceId());
				request.setAttribute("food", food);
				request.getRequestDispatcher("food-list.jsp").forward(request, response);
			} catch (SQLException e) {
				e.printStackTrace();
			}
		} else if ("foodCllentSearch".equals(method)) {// 用户搜索列表
			String ctel = (String) request.getSession().getAttribute("ctel");
			try {
				String sql = "select IF(ISNULL(c.ctel),'0','1') count,IF(ISNULL(fo.foo_id),'0',CONVERT( COUNT(*) USING UTF8)) num ,f.* "
						+ "from foo_collect fo " + "left join food f on fo.foo_id=f.foo_id "
						+ "left join cllent c on c.ctel=fo.ctel " + "and c.ctel=" + ctel + " where f.sce_id = "
						+ foo.getSceId() + " and f.foo_name like '%" + foo.getFooName() + "%' "
						+ "GROUP BY f.foo_id order by num desc";
				JSONArray food = dao.findJSONArray(sql);
				request.setAttribute("food", food);
				request.getRequestDispatcher("food-list.jsp").forward(request, response);
			} catch (SQLException e) {
				e.printStackTrace();
			}
		} else if ("detailFood".equals(method)) {// 美食详情
			try {
				JSONObject food = dao.findJSONObject("select * from food where foo_id=?", foo.getFooId());
				request.setAttribute("food", food);
				request.getRequestDispatcher("food-detail.jsp").forward(request, response);
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
	}

}

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

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值