基于javaweb+mysql的ssm房屋租赁系统(java+ssm+layui+jsp+mysql)
私信源码获取及调试交流
运行环境
Java≥8、MySQL≥5.7、Tomcat≥8
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
基于javaweb的SSM房屋租赁系统(java+ssm+layui+jsp+mysql)
ssm房屋租赁系统
项目介绍
房屋租赁系统,基于 Spring5.x 的实战项目,此项目非Maven项目。
前台系统主要功能包括房源列表展示、房源详细信息展示、根据房源特征进行搜索,包括:房型、小区名;以及房源的预订功能。 后台管理: 用户信息管理 我的租房信息 修改我的密码 房源信息管理 发布房源信息 我发布的信息
多用户:普通用户与管理员各自都能发布房源信息
技术栈:
前端 Layui+JSP,后端 Spring SpringMVC MyBatis
环境要求
IDEA/Eclipse Mysql 5.7 Tomcat 9.x JDK 1.8
lombok
public UserHouseData houseByUser(HttpServletRequest request, int page, int limit) {
Page p = new Page();
User u = (User) request.getSession().getAttribute("loginUser");
String publisher = u.getUserNickName();
p.setPublisher(publisher);
p.setLimit(limit);
p.setPage((page - 1) * limit);
List<House> list = service.findHouseByUser(p);
System.out.println(list);
return new UserHouseData(0, "200", list.size(), list);
}
/**
* 删除用户发布的房源信息
*
* @param houseId 房源 ID
* @return res
*/
@PostMapping("/deleteUserHouse")
@ResponseBody
public String deleteUserHouse(String houseId) {
int n = service.deleteUserHouse(Integer.parseInt(houseId));
if (n > 0) {
return "OK";
}
return "FAIL";
}
/**
* 更新房源信息
*
* @param house 房源数据
* @return res
*/
@PostMapping("/updateHouse")
@ResponseBody
public String updateHouse(House house) {
int n = service.updateHouse(house);
if (n > 0) {
return "OK";
}
return "FAIL";
}
}
/**
* 普通用户登录
*
*/
@Controller
@RequestMapping("/user")
public class LoginController {
@Autowired
private IUserService mapper;
/**
* 登录
*
* @param userName 用户名
* @param userPassword 密码
* @param req req
* @return res
*/
@PostMapping("/login")
@ResponseBody
public String toCustomerPage(String userName, String userPassword, HttpServletRequest req) {
User user = new User();
user.setUserName(userName);
user.setUserPassword(userPassword);
User loginUser = mapper.login(user);
if (loginUser != null) {
req.getSession().setAttribute("loginUser", loginUser);
return "OK";
}
return "FAIL";
}
/**
* 退出登录
*
* @param session session
* @return view
*/
@GetMapping("/logout")
public String logout(HttpSession session) {
session.invalidate();
return "redirect:/index.html";
}
@PostMapping("/register")
*/
@RequestMapping("/deleteHouse")
public String deleteHouse(int houseId) {
int deleteHouse = service.deleteHouse(houseId);
if (deleteHouse > 0) {
return "OK";
}
return "FAIL";
}
/**
* 管理员删除用户
*/
@PostMapping("/deleteUser")
public String deleteUser(Integer userId) {
int n = service.deleteUser(userId);
if (n > 0) {
return "OK";
}
return "FAIL";
}
/**
* 修改管理员登录密码
*
* @param request req
* @param oldPwd 旧密码
* @param newPwd 新密码
* @param confirmPwd 确认密码
* @return res
*/
@PostMapping("/changePassword")
public String changePassword(HttpServletRequest request, String oldPwd, String newPwd, String confirmPwd) {
Admin checkAdmin = new Admin();
Admin adminSession = (Admin) request.getSession().getAttribute("Admin");
checkAdmin.setId(adminSession.getId());
checkAdmin.setUserPassword(oldPwd);
// 拿到当前登录的账户密码
Admin checkAdminPwd = service.checkAdminPwd(checkAdmin);
if (checkAdminPwd == null) {
return "ERROR";
}
if (!newPwd.equals(confirmPwd)) {
return "FAIL";
}
Admin admin = new Admin();
admin.setId(adminSession.getId());
admin.setUserPassword(newPwd);
public String logout(HttpServletRequest request) {
request.getSession().invalidate();
return "redirect:/index.html";
}
/**
* 管理员首页
*
* @return view
*/
@GetMapping("/home.html")
public String toAdminHomePage() {
return "/admin/home.jsp";
}
/**
* 修改密码页
*
* @return view
*/
@GetMapping("/changePassword.html")
public String changePasswordPage() {
return "/admin/changePassword.jsp";
}
/**
* 查询所有用户页
*
* @return view
*/
@GetMapping("/allUser.html")
public String toAllUserPage() {
return "/admin/allUser.jsp";
}
/**
* 所有房源数据页
*
* @return view
*/
@GetMapping("/houseList.html")
public UserOrderData findAllOrder(int page, int limit, HttpServletRequest request) {
Page pageObj = new Page();
pageObj.setPage((page - 1) * limit);
pageObj.setLimit(limit);
User user = (User) request.getSession().getAttribute("loginUser");
pageObj.setUserId(user.getUserId());
UserOrderData uod = new UserOrderData();
List<UserOrder> order = service.findAllOrder(pageObj);
uod.setCode(0);
uod.setCount(service.getOrderCount(user.getUserId()));
uod.setData(order);
uod.setMsg("200");
return uod;
}
/**
* 删除收藏的房源信息
*
* @param orderId 单号
* @return res
*/
@PostMapping("/deleteOrder")
@ResponseBody
public String deleteOrder(int orderId) {
int n = service.deleteOrder(orderId);
if (n > 0) {
return "OK";
}
return "FAIL";
}
}
* 查询所有用户页
*
* @return view
*/
@GetMapping("/allUser.html")
public String toAllUserPage() {
return "/admin/allUser.jsp";
}
/**
* 所有房源数据页
*
* @return view
*/
@GetMapping("/houseList.html")
public String toAllHousePage() {
return "/admin/houseList.jsp";
}
/**
* 传入id,跳转到修改用户界面
*
* @return view
*/
@GetMapping("/editUser.html")
public String toEditUserPage(int userId, HttpServletRequest req) {
User findUserById = service.findUserById(userId);
req.getSession().setAttribute("User", findUserById);
return "/admin/editUser.jsp";
}
/**
* 跳转到管理员更新房源界面
*
* @param houseId 房源ID
* @param request req
* @return view
*/
@RequestMapping("/updateHouse.html")
public String toUpdatePage(int houseId, HttpServletRequest request) {
House house = dao.findHouseDetailsById(houseId);
request.getSession().setAttribute("House", house);
return "/admin/updateHouse.jsp";
}
}
@PostMapping("/editUser")
public String editUser(User user) {
int n = service.updateUser(user);
if (n > 0) {
return "OK";
}
return "FAIL";
}
/**
* 查询所有房源
*
* @param page page
* @param limit limit
* @return res
*/
@RequestMapping("/houseList")
public UserHouseData findAllHouse(int page, int limit) {
Page p = new Page();
p.setLimit(limit);
p.setPage((page - 1) * limit);
List<House> findAllHouse = service.findAllHouse(p);
UserHouseData data = new UserHouseData();
data.setCode(0);
data.setCount(findAllHouse.size());
data.setData(findAllHouse);
data.setMsg("OK");
return data;
}
/**
* 删除房源
*
* @param houseId 房源id
* @return res
*/
@RequestMapping("/deleteHouse")
public String deleteHouse(int houseId) {
int deleteHouse = service.deleteHouse(houseId);
if (deleteHouse > 0) {
return "OK";
}
if (adminAccess != null) {
return "OK";
}
return "FAIL";
}
/**
* 查询所有用户
*
* @return res
*/
@GetMapping("/allUser")
public UserData findAllUser() {
List<User> findAllUser = service.findAllUser();
UserData userData = new UserData();
userData.setCode(0);
userData.setCount(findAllUser.size());
userData.setData(findAllUser);
userData.setMsg("OK");
return userData;
}
/**
* 更新用户信息
*
* @param user user
* @return res
*/
@PostMapping("/editUser")
public String editUser(User user) {
int n = service.updateUser(user);
if (n > 0) {
return "OK";
}
return "FAIL";
}
/**
* 查询所有房源
*
* @param page page
* @param limit limit
* @return res
*/
@RequestMapping("/houseList")
public UserHouseData findAllHouse(int page, int limit) {
Page p = new Page();
p.setLimit(limit);
/**
* 管理员控制器
*
*/
@RestController
@RequestMapping("/admin")
public class AdminController {
@Autowired
private IAdminService service;
/**
* 登录请求
*
* @param userName 用户名
* @param userPassword 密码
* @param req req
* @return res
*/
@PostMapping("/adminAccess")
public String adminAccess(String userName, String userPassword, HttpServletRequest req) {
Admin admin = new Admin(0, userName, userPassword);
Admin adminAccess = service.adminAccess(admin);
req.getSession().setAttribute("Admin", adminAccess);
if (adminAccess != null) {
return "OK";
}
return "FAIL";
}
/**
* @param confirmPwd 确认密码
* @return res
*/
@PostMapping("/changePassword")
public String changePassword(HttpServletRequest request, String oldPwd, String newPwd, String confirmPwd) {
Admin checkAdmin = new Admin();
Admin adminSession = (Admin) request.getSession().getAttribute("Admin");
checkAdmin.setId(adminSession.getId());
checkAdmin.setUserPassword(oldPwd);
// 拿到当前登录的账户密码
Admin checkAdminPwd = service.checkAdminPwd(checkAdmin);
if (checkAdminPwd == null) {
return "ERROR";
}
if (!newPwd.equals(confirmPwd)) {
return "FAIL";
}
Admin admin = new Admin();
admin.setId(adminSession.getId());
admin.setUserPassword(newPwd);
int n = service.changePassword(admin);
if (n > 0) {
return "OK";
}
return "FAIL";
}
}
/**
* 收藏控制类
*
*/
@Controller
@RequestMapping("/order")
}
/**
* 所有房源数据页
*
* @return view
*/
@GetMapping("/houseList.html")
public String toAllHousePage() {
return "/admin/houseList.jsp";
}
/**
* 传入id,跳转到修改用户界面
*
* @return view
*/
@GetMapping("/editUser.html")
public String toEditUserPage(int userId, HttpServletRequest req) {
User findUserById = service.findUserById(userId);
req.getSession().setAttribute("User", findUserById);
return "/admin/editUser.jsp";
}
/**
* 跳转到管理员更新房源界面
*
* @param houseId 房源ID
* @param request req
* @return view
*/
@RequestMapping("/updateHouse.html")
public String toUpdatePage(int houseId, HttpServletRequest request) {
House house = dao.findHouseDetailsById(houseId);
request.getSession().setAttribute("House", house);
return "/admin/updateHouse.jsp";
}
}
/**
* 登录
*
* @param userName 用户名
* @param userPassword 密码
* @param req req
* @return res
*/
@PostMapping("/login")
@ResponseBody
public String toCustomerPage(String userName, String userPassword, HttpServletRequest req) {
User user = new User();
user.setUserName(userName);
user.setUserPassword(userPassword);
User loginUser = mapper.login(user);
if (loginUser != null) {
req.getSession().setAttribute("loginUser", loginUser);
return "OK";
}
return "FAIL";
}
/**
* 退出登录
*
* @param session session
* @return view
*/
@GetMapping("/logout")
public String logout(HttpSession session) {
session.invalidate();
return "redirect:/index.html";
}
@PostMapping("/register")
@ResponseBody
public String register(User user) {
int register;
try {
register = mapper.register(user);
if (register > 0) {
return "OK";
}
}
} catch (Exception e) {
return "FAIL";
}
return "FAIL";
}
}
/**
*/
public class UserInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
throws Exception {
response.setCharacterEncoding("utf-8");
String requestUrl = request.getRequestURL().toString();
// 检查 session
HttpSession session = request.getSession();
User user = (User) session.getAttribute("loginUser");
Admin admin = (Admin) session.getAttribute("Admin");
if (user != null || admin != null) {
return true;
}
List<String> filterUserList = Arrays.asList("/index.html", "/user/login", "/user/register", "/detail.html",
"/fuzzy", "/priceAsc", "/priceDesc", "/admin/", "/admin/index.html", "/admin/adminAccess");
for (String url : filterUserList) {
if (requestUrl.contains(url)) {
return true;
}
}
/**
* 管理员界面视图跳转
*
*/
@Controller
@RequestMapping("/admin")
public class AdminViewController {
@Autowired
private IAdminService service;
@Autowired
private IHouseService dao;
/**
* 登录页
*
* @return view
*/
@GetMapping({"/", "/index.html"})
public String toAdminLogin() {
return "/admin/login.jsp";
}
/**
* 注销登录
*
request.getSession().setAttribute("House", house);
return "/admin/updateHouse.jsp";
}
/**
* 更新用户密码
*
* @param id id
* @param newPwd new password
* @param oldPwd old password
* @return res
*/
@PostMapping("/updateUserPwd")
@ResponseBody
public String updateUserPwd(String id, String newPwd, String oldPwd) {
User oldUser = new User();
oldUser.setUserId(Integer.parseInt(id));
oldUser.setUserPassword(oldPwd);
User checkUser = service.checkOldPwd(oldUser);
if (checkUser != null) {
User newUser = new User();
newUser.setUserId(Integer.parseInt(id));
newUser.setUserPassword(newPwd);
int n = service.updateUserPwd(newUser);
if (n > 0) {
return "OK";
}
}
return "FAIL";
}
}
/**
* 管理员界面视图跳转
*
/**
* 收藏控制类
*
*/
@Controller
@RequestMapping("/order")
public class OrderController {
@Autowired
private IOrderService service;
/**
* 用户的收藏房源界面
*
* @return view
*/
@GetMapping("/myOrder.html")
public String toOrderPage() {
return "/user/myOrder.jsp";
}
/**
* 添加订单
*
* @param id 房源id
* @param request req
* @return res
*/
@PostMapping("/addOrder")
@ResponseBody
public String addOrder(String id, HttpServletRequest request) {
User user = (User) request.getSession().getAttribute("loginUser");
try {
/**
* 用户修改密码界面
*
* @return view
*/
@GetMapping("/updatePassword.html")
public String updatePassword() {
return "/user/updatePassword.jsp";
}
/**
* 后台第一个欢迎界面
*
* @return view
*/
@GetMapping("/welcome.html")
public String toWelcomePage() {
return "welcome.jsp";
}
/**
* 用户发布的租房信息
* @return view
*/
@GetMapping("/userRental.html")
public String toUserRentalPage() {
return "/user/myRental.jsp";
}
/**
* 用户更新房源信息
* 使用的也是管理员的界面
*
* @param houseId 房源ID
* @param request req
* @return view
*/
@GetMapping("/updateHouse.html")
public String toUpdatePage(int houseId, HttpServletRequest request) {
House house = dao.findHouseDetailsById(houseId);
request.getSession().setAttribute("House", house);
return "/admin/updateHouse.jsp";
}
/**
* 更新用户密码
*
* @param id id
* @param newPwd new password
* @param oldPwd old password
* @return res
*/
public String toAllHousePage() {
return "/admin/houseList.jsp";
}
/**
* 传入id,跳转到修改用户界面
*
* @return view
*/
@GetMapping("/editUser.html")
public String toEditUserPage(int userId, HttpServletRequest req) {
User findUserById = service.findUserById(userId);
req.getSession().setAttribute("User", findUserById);
return "/admin/editUser.jsp";
}
/**
* 跳转到管理员更新房源界面
*
* @param houseId 房源ID
* @param request req
* @return view
*/
@RequestMapping("/updateHouse.html")
public String toUpdatePage(int houseId, HttpServletRequest request) {
House house = dao.findHouseDetailsById(houseId);
request.getSession().setAttribute("House", house);
return "/admin/updateHouse.jsp";
}
}
/**
* 首页控制类
*
*/