✨作者主页: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项目实战
大家可以帮忙点赞、收藏、关注、评论啦~
源码获取:私信我