计算机毕业设计选题推荐-房屋租赁管理系统-Java项目实战

作者主页:IT毕设梦工厂✨
个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。
☑文末获取源码☑
精彩专栏推荐⬇⬇⬇
Java项目
Python项目
安卓项目
微信小程序项目

一、前言

随着城市化进程的加速和人口流动性的增加,房屋租赁市场在城市生活中占据了重要的地位。然而,房屋租赁市场的规范化和透明化程度却未能满足日益增长的需求。因此,开发一套房屋租赁管理系统,旨在提高房屋租赁市场的运营效率和透明度,同时保障租赁双方的权益,具有重要的现实意义。

尽管市场上已经存在一些房屋租赁管理系统,但它们在用户友好性、功能全面性和数据安全性等方面仍存在一些问题。例如,一些系统的用户界面复杂,使用流程繁琐,使得用户难以快速上手;另外,一些系统功能单一,无法满足多样化的租赁需求;更重要的是,一些系统数据管理混乱,容易造成数据丢失或泄露,给用户带来安全隐患。

本课题旨在开发一套功能完善、操作简便、安全可靠的房屋租赁管理系统。具体目标如下:
提供用户友好的界面和简洁的操作流程,提高用户体验;
涵盖用户管理、房源管理、租赁管理、评价管理等多个功能模块,满足多样化的租赁需求;
实现数据加密存储和备份,保障用户数据安全;
提供实时数据统计和分析功能,帮助管理员进行决策支持。

本课题的研究意义在于:
提高房屋租赁市场的运营效率:通过在线化和自动化管理,缩短租赁双方的操作时间,降低交易成本;
增加市场透明度:通过公开透明的信息展示和评价系统,减少信息不对称现象,保障租赁双方的权益;
推动行业规范化发展:通过统一的管理平台和标准化的操作流程,规范行业行为,减少违规操作;
提升社会满意度:通过优质的服务和良好的用户体验,提高用户满意度,增强社会认可度。

二、开发环境

  • 开发语言:Java
  • 数据库:MySQL
  • 系统架构:B/S
  • 后端:SpringBoot
  • 前端:Vue

三、系统功能模块

  • 角色:用户、管理员
  • 功能:
    用户
    租房房源、论坛、公告、投诉建议、租房预约、房屋租赁、租房合同、租房评价、报修;
    管理员
    用户管理、租房房源管理、租房评价管理、房源租赁看法、租房预约管理、投诉建议管理、租房合同管理、报修管理、论坛管理、公告管理、基础数据管理(报修类型、保修状态、房源类型、公告类型)。

四、系统界面展示

  • 房屋租赁管理系统-界面展示:
    房屋租赁管理系统-租房房源信息
    房屋租赁管理系统-房源详情
    房屋租赁管理系统-租赁信息提交
    房屋租赁管理系统-在线投诉建议
    房屋租赁管理系统-我的报修信息
    房屋租赁管理系统-房源租赁订单
    房屋租赁管理系统-我的租房合同
    房屋租赁管理系统-租房评价
    房屋租赁管理系统-租房房源管理
    房屋租赁管理系统-房源租赁管理
    房屋租赁管理系统-租房合同管理

五、代码参考

  • 房屋租赁管理系统-代码参考:
/**
 * Servlet implementation class UserServlet
 */
@WebServlet("/UserServlet")
public class UserServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
    UserService userService = new UserServiceImpl();
    
	
	protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		//接收前端传参
		String op = request.getParameter("op");
		
		//根据传入不同的参数判断执行什么操作
		if("userRegister".equals(op)) {
			//执行用户注册功能
			doUserRegister(request,response);
		}else if("userLogin".equals(op)){
			//执行用户登录功能
			doUserLogin(request,response);
		}else if("toIndex".equals(op)) {
			//前往首页
			response.sendRedirect(request.getContextPath()+"/house/userLogin.jsp");
		}else if("userExitLogin".equals(op)) {
			//用户退出登录
			doUserExitLogin(request,response);
		}else if("userEdit".equals(op)) {
			//用户信息修改
			doUserEdit(request,response);
		}else if("queryUser".equals(op)){
			//查找所有用户
			try {
				doQueryUser(request,response);
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}else if("deleteUser".equals(op)) {
			
			//删除用户
			doDeleteUser(request,response);
		}
	}
	private void doDeleteUser(HttpServletRequest request, HttpServletResponse response) {
		
		Result result = new Result();
		try {
			String uid = request.getParameter("uid");
			if(uid==null&&"".equals(uid)) {
				result.fail(400, "参数错误");
				
			}else {
				boolean flag = userService.deleteUserByUid(uid);
				if(flag) {
					result.ok(true).setMessage("删除成功");
					
				}else {
					result.fail(0, "删除失败");
				}
			}
			response.setContentType("application/json;charset=utf-8");
			ObjectMapper objectMapper = new ObjectMapper();
			String json = objectMapper.writeValueAsString(result);
			response.getWriter().write(json);
		} catch (Exception e) {
			// TODO: handle exception
		}
		
	}
	//查找所有用户
	private void doQueryUser(HttpServletRequest request, HttpServletResponse response) throws Exception {
		// TODO Auto-generated method stub
		Result<List<User>> result = new Result<List<User>>();
		try {
			String phone = request.getParameter("phone");
			String uname = request.getParameter("uname");
	
			
			User user= new User();
			user.setPhone(phone);
			user.setUname(uname);
		
			List<User> userList = userService.getUserListByCondition(user);
			if(!userList.isEmpty()) {
				result.ok(userList);
			}else {
				result.fail(0, "没有相关用户");
			}
			
			response.setContentType("application/json;charset=utf-8");
			ObjectMapper objectMapper = new ObjectMapper();
			String json = objectMapper.writeValueAsString(result);
			response.getWriter().write(json);

		} catch (Exception e) {
			// TODO: handle exception
			result.fail(500, "服务器出错");
		}
		
	}

	private void doUserEdit(HttpServletRequest request, HttpServletResponse response) {
		// TODO Auto-generated method stub
		
	}

	//用户退出登录
	private void doUserExitLogin(HttpServletRequest request, HttpServletResponse response) {
		// TODO Auto-generated method stub
		HttpSession session = request.getSession();
		session.removeAttribute("userSession");
		try {
			//返回登录页面
			response.sendRedirect(request.getContextPath()+"/house/index.jsp");
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}


	//用户登录
	private void doUserLogin(HttpServletRequest request, HttpServletResponse response) {
		// TODO Auto-generated method stub
		response.setContentType("text/html;charset=utf-8");
		try {
			String phone = request.getParameter("phone");
			String pwd = request.getParameter("pwd");
			String remember = request.getParameter("remember");

			
			//判断手机号密码格式
			if(phone!=null&&pwd!=null&&RegexUtil. validatePhoneNumber(phone)) {
				
				//判断是否存在用户
				User user = userService.queryUserByPhoneAndPwd(phone, pwd);
				if(user!=null) {
						//判断用户账号是否冻结
						if(user.getState()==0) {
							String message = "账号已冻结,请联系管理员";
							message = URLEncoder.encode(message,"utf-8");
							response.sendRedirect(request.getContextPath()+"/house/userLogin.jsp?message="+message);
						}
						//将用户信息储存到session里
						HttpSession session = request.getSession();
						session.setAttribute("userSession", user);
						
						//判断用户是否记住密码
						if(remember!=null&&"remember".equals(remember)) {
							Cookie cookie = new Cookie("rememberMe",phone+"="+pwd);
							cookie.setMaxAge(60*60*24*30);
							response.addCookie(cookie);
						}else {
							Cookie cookies[] = request.getCookies();
							for(Cookie cookie:cookies) {
								if("rememberMe".equals(cookie.getName())) {
									cookie.setMaxAge(0);
									response.addCookie(cookie);
								}
							}
						}
					
					response.sendRedirect(request.getContextPath()+"/house/index.jsp");
				}else {
					String message = "手机号或密码错误";
					message = URLEncoder.encode(message,"utf-8");
					response.sendRedirect(request.getContextPath()+"/house/userLogin.jsp?message="+message);
					
				}
			}else{
				
				String message = "登录失败,手机号或密码格式错误";
				message = URLEncoder.encode(message,"utf-8");
				response.sendRedirect(request.getContextPath()+"/house/userLogin.jsp?message="+message);
			}
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} 
	}



	//用户注册
	private void doUserRegister(HttpServletRequest request, HttpServletResponse response) {
		// TODO Auto-generated method stub
		response.setContentType("text/html;charset=utf-8");
		String phone = request.getParameter("phone");
		String pwd = request.getParameter("pwd");
		String uname = request.getParameter("uname");
		User user = userService.queryUserByPhone(phone);
		try {
			
			//判断用户手机号与密码是否格式正确
			if(uname!=null&&phone!=null&&pwd!=null&&RegexUtil.validatePhoneNumber(phone)&&RegexUtil.validatePassword(pwd)) {
				
				//若不存在用户,则创建用户
				if(user==null) {
					user = new User();
					user.setPhone(phone);
					user.setPwd(pwd);
					user.setUname(uname);
					user.setUid(UUID.randomUUID().toString());
					user.setState(1);
					userService.saveUser(user);
					String message = "注册成功";
					message = URLEncoder.encode(message,"utf-8");
					
					response.sendRedirect(request.getContextPath()+"/house/userLogin.jsp?message="+message);
					
				
				}else {
					String message = "注册失败,手机号已存在";
					message = URLEncoder.encode(message,"UTF-8");
					response.sendRedirect(request.getContextPath()+"/house/reg.jsp?message="+message);
				
				}
			}else{
				String message = "注册失败,手机号或密码格式错误,或者用户名不能为空";
				message = URLEncoder.encode(message,"UTF-8");
				response.sendRedirect(request.getContextPath()+"/house/reg.jsp?message="+message);
			}
		} catch (UnsupportedEncodingException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

/**
 * @author zya2062458380@qq.com
 */
@WebServlet("/OrderServlet")
@MultipartConfig
public class OrderServlet extends BaseServlet{
	
	OrderService orderService = new OrderServiceImpl();
	
	public void updateStateById(HttpServletRequest req,HttpServletResponse resp) throws IOException {
		String state = req.getParameter("state");
		String orderId = req.getParameter("orderId");
		int res = orderService.updateStateById(Integer.valueOf(state), orderId);
		
		Result result = new Result();
		if(res>0) {
			result.ok(res);
		}else {
			result.fail(0, "状态修改失败!");
		}
		resp.setContentType("application/json;charset=utf-8");
		ObjectMapper objectMapper = new ObjectMapper();
		String json = objectMapper.writeValueAsString(result);
		resp.getWriter().write(json);
	}
	
	public void page(HttpServletRequest req,HttpServletResponse resp){
		Result<OrderPageInfo<Order>> result = new Result<OrderPageInfo<Order>>();
		try {
			String pageNo = req.getParameter("pageNo");
			int pageNum = Integer.parseInt(pageNo);
			String pageSize = req.getParameter("pageSize");
			String condition = req.getParameter("condition");
			String value = req.getParameter("value");
			int pageSizeNum = Integer.parseInt(pageSize);
			//查询分页信息
			OrderPageInfo<Order> orderPage = orderService.getOrderPage(condition,value,pageNum,pageSizeNum);
			
			if(orderPage != null) {
				result.ok(orderPage);
			}else {
				result.fail(0, "没有相关用户");
			}
			
			resp.setContentType("application/json;charset=utf-8");
			ObjectMapper objectMapper = new ObjectMapper();
			String json = objectMapper.writeValueAsString(result);
			resp.getWriter().write(json);

		} catch (Exception e) {
			result.fail(500, "服务器出错");
		}
	}
	
	
	public void save(HttpServletRequest req,HttpServletResponse resp) throws Exception {
		
		String uidLeaser = req.getParameter("uidLeaser");
		String uidReleaser = req.getParameter("uidReleaser");
		String hid = req.getParameter("hid");
		System.out.println("uidLeaser="+uidLeaser+"   uidReleaser="+uidReleaser+"    hid="+hid);
		String moeny = req.getParameter("moeny");
		System.out.println("moeny:"+moeny);
		String startTime = req.getParameter("startTime");
		String endTime = req.getParameter("endTime");
		
		Collection<Part> parts = req.getParts();
		//调用上传方法
		String imgs = UploadFile.uploadImg(parts);
		
		Order order = new Order();
		order.setOrderId(UUID.randomUUID().toString());
		order.setHid(hid);
		order.setUidLeaser(uidLeaser);
		order.setUidReleaser(uidReleaser);
		order.setStartTime(startTime);
		order.setEndTime(endTime);
		order.setMoeny(Float.valueOf(moeny));
		order.setImg(imgs);
		
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-DD hh:mm:ss");
		Date date = new Date(System.currentTimeMillis());
		order.setCreateTime(sdf.format(date));
		
		int res = orderService.save(order);
		
		//装成json格式
		ObjectMapper objectMapper = new ObjectMapper();
		String json = objectMapper.writeValueAsString(res);
		
		//响应设置
		resp.setCharacterEncoding("utf-8");
		resp.setContentType("application/json;charset=utf-8");
		//创建响应并将数据返回给浏览器
		resp.getWriter().write(json);
	}
}

六、论文参考

  • 计算机毕业设计选题推荐-房屋租赁管理系统-论文参考:
    计算机毕业设计选题推荐-房屋租赁管理系统-论文参考

七、系统视频

房屋租赁管理系统-项目视频:

基于SpringBoot的房屋租赁管理系统

结语

计算机毕业设计选题推荐-房屋租赁管理系统-Java项目实战
大家可以帮忙点赞、收藏、关注、评论啦~
源码获取:私信我

精彩专栏推荐⬇⬇⬇
Java项目
Python项目
安卓项目
微信小程序项目

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值