Java项目:共享汽车租赁平台(java+SSM+JSP+jQuery+mysql)

news/2024/7/11 0:04:14 标签: java, mysql, ssm, jsp, jquery

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

项目介绍

本项目分为前后台,前台为普通用户登录,后台为管理员登录;
管理员角色包含以下功能:
管理员登录,修改管理员信息,用户信息管理,管理新闻公告,汽车品牌信息管理,城市信息管理,租赁点信息管理,共享汽车信息管理,汽车订单信息管理,汽车评价信息管理等功能。
用户角色包含以下功能:
查看首页,查看网站公告,查看可用共享汽车,查看租赁点,查看汽车详情,加入租赁单,提交订单,查看我的订单,修改个人信息等功能。

环境需要

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+CSS+JavaScript+jQuery


使用说明

1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;
2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;
若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行;
3. 将项目中springmvc-servlet.xml配置文件中的数据库配置改为自己的配置;
4. 运行项目,在浏览器中输入http://localhost:8080/ 登录
用户账号/密码: user/123456
管理员账号/密码:admin/admin

 

 

 

 

 

 

用户管理控制器:

/**
 * 用户管理控制器
 *
 */
@RestController
@RequestMapping("user")
public class UserController {

	@Autowired
	private UserService userService;

	/*
	 * 加载用户列表返回DataGridView
	 */
	@RequestMapping("loadAllUser")
	public DataGridView loadAllmeenu(UserVo userVo) {
		return this.userService.queryAllUser(userVo);
	}

	/*
	 * 注册用户--查询用户名是否存在
	 */
	@RequestMapping("queryLoginName")
	public ResultObj queryLoginName(UserVo userVo) {
		Integer count = this.userService.queryLoginName(userVo.getLoginname());
		if (count != 0) {
			return ResultObj.USER_EXIST;
		}
		return null;
	}

	/*
	 * 注册用户
	 */
	@RequestMapping("signup")
	public ResultObj signup(UserVo userVo) {
		try {
			String code = WebUtils.getHttpSession().getAttribute("code").toString();
			if (userVo.getCode().toLowerCase().equals(code)) {
				this.userService.signUpUser(userVo);
				return ResultObj.SIGNUP_SUCCESS;
			} else {
				return ResultObj.USER_SIGNUP_CODE_ERROR_MSG;
			}
		} catch (Exception e) {
			e.printStackTrace();
			return ResultObj.SIGNUP_ERROR;
		}
	}

	/*
	 * 添加用户
	 */
	@RequestMapping("addUser")
	public ResultObj addUser(UserVo userVo) {
		try {
			this.userService.addUser(userVo);
			return ResultObj.ADD_SUCCESS;
		} catch (Exception e) {
			e.printStackTrace();
			return ResultObj.ADD_ERROR;
		}
	}

	/*
	 * 修改用户
	 */
	@RequestMapping("updateUser")
	public ResultObj updateUser(UserVo userVo) {
		try {
			this.userService.updateUser(userVo);
			return ResultObj.UPDATE_SUCCESS;
		} catch (Exception e) {
			e.printStackTrace();
			return ResultObj.UPDATE_ERROR;
		}
	}

	/*
	 * 删除用户
	 */
	@RequestMapping("deleteUser")
	public ResultObj deleteUser(UserVo userVo) {
		System.out.println(userVo);
		System.out.println(userVo.getUserid());
		try {
			this.userService.deleteUser(userVo.getUserid());
			return ResultObj.DELETE_SUCCESS;
		} catch (Exception e) {
			e.printStackTrace();
			return ResultObj.DELETE_ERROR;
		}
	}

	/*
	 * 批量删除用户
	 */
	@RequestMapping("deleteBatchUser")
	public ResultObj deleteBatchUser(UserVo userVo) {
		try {
			this.userService.deleteBatchUser(userVo.getIds());
			return ResultObj.DELETE_SUCCESS;
		} catch (Exception e) {
			e.printStackTrace();
			return ResultObj.DELETE_ERROR;
		}
	}

	/*
	 * 重置用户密码
	 */
	@RequestMapping("resetUserPwd")
	public ResultObj resetUserPwd(UserVo userVo) {
		try {
			this.userService.resetUserPwd(userVo.getUserid());
			return ResultObj.RESET_SUCCESS;
		} catch (Exception e) {
			e.printStackTrace();
			return ResultObj.RESET_ERROR;
		}
	}

	/*
	 * 加载用户管理分配的分配角色的数据
	 */
	@RequestMapping("initUserRole")
	public DataGridView initUserRole(UserVo userVo) {
		return this.userService.queryUserRole(userVo.getUserid());
	}

	/*
	 * 保存用户和角色的关系
	 */
	@RequestMapping("saveUserRole")
	public ResultObj saveUserRole(UserVo userVo) {
		try {
			this.userService.saveUserRole(userVo);
			return ResultObj.DISPATCH_SUCCESS;
		} catch (Exception e) {
			e.printStackTrace();
			return ResultObj.DISPATCH_ERROR;
		}
	}

	/*
	 * 修改个人信息
	 */
	@RequestMapping("updateUserInfo")
	public ResultObj updateUserInfo(UserVo userVo) {
		try {
			String headimg = userVo.getHeadimg();
			if (headimg.endsWith(SysConstast.FILE_UPLOAD_TEMP)) {
				String filePath = AppFileUtils.updateFileName(headimg, SysConstast.FILE_UPLOAD_TEMP);
				userVo.setHeadimg(filePath);
				// 把原来的删除
				User user = this.userService.queryUserInfo(userVo.getUserid());
				AppFileUtils.removeFileByPath(user.getHeadimg());
			}
			this.userService.updateUserInfo(userVo);
			return ResultObj.UPDATE_SUCCESS;
		} catch (Exception e) {
			e.printStackTrace();
			return ResultObj.UPDATE_ERROR;
		}
	}

	/*
	 * 查询个人信息
	 */
	@RequestMapping("queryUserInfo")
	public User queryUserInfo() {
		User user = (User) WebUtils.getHttpSession().getAttribute("user");
		user = this.userService.queryUserInfo(user.getUserid());
		return user;
	}

	/*
	 * 查询密码
	 */
	@RequestMapping("queryPwd")
	public ResultObj queryPwd(UserVo userVo) {
		User user = (User) WebUtils.getHttpSession().getAttribute("user");
		user = this.userService.queryUserInfo(user.getUserid());
		// 生成密文
		String pwd = DigestUtils.md5DigestAsHex(userVo.getPwd().getBytes());
		userVo.setPwd(pwd);
		if (userVo.getPwd().equals(user.getPwd())) {
			return ResultObj.PWD_SUCCESS;
		} else {
			return ResultObj.PWD_ERROR;
		}
	}

	/*
	 * 更改密码之查询密码
	 */
	@RequestMapping("updatePwd")
	public ResultObj updatePwd(UserVo userVo) {
		try {
			User user = (User) WebUtils.getHttpSession().getAttribute("user");
			// 生成密文
			String pwd = DigestUtils.md5DigestAsHex(userVo.getPwd().getBytes());
			userVo.setUserid(user.getUserid());
			userVo.setPwd(pwd);
			// 修改密码
			this.userService.updateUser(userVo);
			return ResultObj.UPDATE_SUCCESS;
		} catch (Exception e) {
			return ResultObj.UPDATE_ERROR;
		}
	}
}

角色管理控制器:

/**
 * 角色管理控制器
 * 
 *
 */
@RestController
@RequestMapping("role")
public class RoleController {

	@Autowired
	private RoleService roleService;
	
	/*
	 * 加载角色列表返回DataGridView
	 */
	@RequestMapping("loadAllRole")
	public DataGridView loadAllmeenu(RoleVo roleVo) {
		return this.roleService.queryAllRole(roleVo);
	}
	
	/*
	 * 添加角色
	 */
	@RequestMapping("addRole")
	public ResultObj addRole(RoleVo roleVo) {
		try {
			this.roleService.addRole(roleVo);
			return ResultObj.ADD_SUCCESS;
		} catch (Exception e) {
			e.printStackTrace();
			return ResultObj.ADD_ERROR;
		}
	}
	/*
	 * 修改角色
	 */
	@RequestMapping("updateRole")
	public ResultObj updateRole(RoleVo roleVo) {
		try {
			this.roleService.updateRole(roleVo);
			return ResultObj.UPDATE_SUCCESS;
		} catch (Exception e) {
			e.printStackTrace();
			return ResultObj.UPDATE_ERROR;
		}
	}
	/*
	 * 删除角色
	 */
	@RequestMapping("deleteRole")
	public ResultObj deleteRole(RoleVo roleVo) {
		try {
			this.roleService.deleteRole(roleVo.getRoleid());
			return ResultObj.DELETE_SUCCESS;
		} catch (Exception e) {
			e.printStackTrace();
			return ResultObj.DELETE_ERROR;
		}
	}
	/*
	 * 批量删除角色
	 */
	@RequestMapping("deleteBatchRole")
	public ResultObj deleteBatchRole(RoleVo roleVo) {
		try {
			this.roleService.deleteBatchRole(roleVo.getIds());
			return ResultObj.DELETE_SUCCESS;
		} catch (Exception e) {
			e.printStackTrace();
			return ResultObj.DELETE_ERROR;
		}
	}
	/*
	 * 加载角色管理分配菜单的JSON
	 */
	@RequestMapping("initRoleMenuTreeJson")
	public DataGridView initRoleMenuTreeJson(Integer roleid) {
		System.out.println(roleid);
		return this.roleService.initRoleMenuTreeJson(roleid);
	}
	
	/*
	 * 保存角色与菜单的关系
	 */
	@RequestMapping("saveRoleMenu")
	public ResultObj saveRoleMenu(RoleVo roleVo) {
		try {
			this.roleService.saveRoleMenu(roleVo);
			return ResultObj.DISPATCH_SUCCESS;
		} catch (Exception e) {
			e.printStackTrace();
			return ResultObj.DISPATCH_ERROR;
		}
		
	}
}

用户登录控制器:

/*
 * 用户登录控制器
 */
@Controller
@RequestMapping("login")
public class LoginController {
	@Autowired
	private UserService userService;

	@Autowired
	private LogInfoService logInfoService;

	/*
	 * 跳转到登录页面
	 */
	@RequestMapping("toLogin")
	public String tologin() {
		return "system/main/login";
	}

	/*
	 * 登录方法
	 */
	@RequestMapping("login")
	public String login(UserVo userVo, Model model) {
		// 最外层的if是判断session是否为空 为空就跳转到登录界面
		// uservo不可能为空的,只是里面的属性可能为空 所以要判断session是否为空 就要判断里面的属性 而不是判断userVo本身 (坑!)
		if (null != userVo.getLoginname()) {
//			String code = WebUtils.getHttpSession().getAttribute("code").toString();
//			if (userVo.getCode().toLowerCase().equals(code)) {
			User user = this.userService.login(userVo);
			if (null != user) {
				// 放入session
				WebUtils.getHttpSession().setAttribute("user", user);
				WebUtils.getHttpSession().setMaxInactiveInterval(240 * 60);
				// 记录登录日志 向sys_login_log插入数据

				LogInfoVo logInfoVo = new LogInfoVo();
				logInfoVo.setLoginname(user.getRealname() + "-" + user.getLoginname());
				logInfoVo.setLogintime(new Date());
				// 外网Ip:WebUtils.getHttpServletRequest().getRemoteAddr()
				// 内网ip:
				InetAddress addr;
				try {
					addr = (InetAddress) InetAddress.getLocalHost();
					logInfoVo.setLoginip(addr.getHostAddress().toString());// 获取Id地址
				} catch (UnknownHostException e) {
					e.printStackTrace();
				}
				// 添加
				logInfoService.addLogInfo(logInfoVo);
				return "system/main/index";

			} else {
				model.addAttribute("error", SysConstast.USER_LOGIN_ERROR_MSG);
				return "system/main/login";
			}

//			} else {
//				model.addAttribute("error", SysConstast.USER_LOGIN_CODE_ERROR_MSG);
//				return "system/main/login";
//			}

		} else {
			return "system/main/login";
		}

	};

	/**
	 * 得到登录验证码
	 * @throws IOException 
	 */
	@RequestMapping("getCode")
	public void getCode(HttpServletResponse response, HttpSession session) throws IOException {
		// 定义图形验证码的长和宽
		LineCaptcha lineCaptcha = CaptchaUtil.createLineCaptcha(116, 36, 4, 50);
		Console.log(lineCaptcha.getCode());
		session.setAttribute("code", lineCaptcha.getCode());
		ServletOutputStream outputStream = response.getOutputStream();
		ImageIO.write(lineCaptcha.getImage(), "JPEG", outputStream);
	}
}

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


http://www.niftyadmin.cn/n/1553932.html

相关文章

c# mysql判断连接状态_C# 判断数据库连接是否打开

C# 判断数据库连接是否打开(2010-01-02 14:08:03)标签:it根据平常的思维你应该在之前打开,然后判断它的状态。测试代码如下:1 连接数据库try{String commandText"select count(*) from users";SqlConnection conn new SqlConnecti…

Java项目:失物招领管理系统(java+SSM+HTML+JavaScript+jsp+mysql)

源码获取:俺的博客首页 "资源" 里下载! 项目介绍 主要功能包括: 用户发布失物,或者招领失物,管理员对用户,失物信息进行增删改查。 环境需要 1.运行环境:最好是java jdk 1.8&#…

mysql replication 监控_zabbix监控mysql replication

最近几天发现mysql数据库replication同步出现问题,居然过了好几天才发现,于是打算把mysql replication做监控。我的监控平台是zabbix,之所以不使用nagios,是因为nagios比较复杂,呵呵。大家都知道mysql的 replication复…

Java项目:出租车管理系统(java+SSM+HTML+JavaScript+jsp+mysql)

源码获取:俺的博客首页 "资源" 里下载! 项目介绍 超级管理员角色包含以下功能: 超级管理员管理,公告管理,系统管理员管理,司机管理,车辆管理,维修保养管理,运营里程记录等功能。 普通管理员角色包含以下功能: 普通管理…

python2.7安装git_python爬虫之git的安装

一、初始1、发展历史*最开始没有对代码的管理,导致很多东西混乱和丢失。*后来大家想了一个办法,用最简单最笨的方法,各种复制文件夹。*然后就出现了版本控制的工具。1、单机版:RCS(1982),SCCS(1972)2、客户端-服务器&a…

Java项目:场地预订管理系统(java+SSM+JSP+jQuery+mysql)

源码获取:俺的博客首页 "资源" 里下载! 项目介绍 本项目分为前后台,前台为普通用户登录,后台为管理员登录; 用户角色包含以下功能: 按分类查看场地,用户登录,查看网站公告,按分类查看器材,查看商…

Java项目:博物馆售票管理系统(java+SSM+JSP+jQuery+Ajax+mysql)

源码获取:俺的博客首页 "资源" 里下载! 项目介绍 本项目分为前后台,前台为普通用户登录,后台为管理员登录; 管理员角色包含以下功能: 管理员登录,系统用户管理,游客用户查询,新闻管理,场馆信息管…

python五子棋ai棋力最高_棋力最强的五子棋 App 是什么?

插嘴说下这个五子棋大师编程我不懂,这个五子棋大师的计算尚可,应该在五步以上,除去掌握比较熟练的棋型,大部分情况下我没有它算的远,如果正常和它下的话,想赢最高级,很吃力。但是我还是可以轻松…