基于javaweb和mysql的ssm房屋租赁系统(java+ssm+layui+jsp+mysql)
·
基于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
@GetMapping("/priceAsc")
public String findPriceAsc(HttpServletRequest request) {
List<House> findHomeInfo = service.findHouseOrderByAsc();
request.getSession().removeAttribute("House");
request.getSession().setAttribute("House", findHomeInfo);
return "index/index.jsp";
}
/**
* 价格降序查询
*
* @param request request
* @return res
*/
@GetMapping("/priceDesc")
public String findPriceDesc(HttpServletRequest request) {
List<House> findHomeInfo = service.findHouseOrderByDesc();
request.getSession().removeAttribute("House");
request.getSession().setAttribute("House", findHomeInfo);
return "index/index.jsp";
}
}
/**
*/
@Controller
/**
* 管理员界面视图跳转
*
*/
@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";
}
/**
* 注销登录
*
* @param request req
* @return view
*/
@GetMapping("/logout")
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
*/
/**
* 更新用户信息
*
* @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);
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";
/**
* 查询所有房源
*
* @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";
}
return "FAIL";
}
/**
* 管理员删除用户
*/
@PostMapping("/deleteUser")
public String deleteUser(Integer userId) {
int n = service.deleteUser(userId);
/**
*/
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;
}
}
response.sendRedirect("/");
return false;
}
}
/**
* 房屋详情控制类
*
*/
/**
* 简介图片上传
*
* @param briefFile file
* @return res
*/
@RequestMapping("/briefImage")
@ResponseBody
public Map<String, Object> briefImage(@RequestParam("brief") MultipartFile briefFile) {
Map<String, Object> map = new HashMap<>(16);
try {
String suffixName = Objects.requireNonNull(briefFile.getOriginalFilename())
.substring(briefFile.getOriginalFilename().lastIndexOf("."));
String filename = UUID.randomUUID().toString().replace("-", "") + suffixName;
File filePath = new File(dirPath);
if (!filePath.exists()) {
boolean mkdirs = filePath.mkdirs();
}
//创建虚拟路径存储
simplePath = "/hrs/" + filename;
map.put("image", simplePath);
briefFile.transferTo(new File(dirPath + filename));
map.put("code", 0);
map.put("msg", "上传成功");
} catch (Exception e) {
map.put("code", 1);
map.put("msg", "上传失败");
e.printStackTrace();
}
return map;
}
/**
* 详情图片上传
*
* @param file file
* @param req req
* @return res
*/
@RequestMapping("/detailsImage")
@ResponseBody
public Map<String, Object> detailsImage(@RequestParam("detailsImage") List<MultipartFile> file, HttpServletRequest req) {
Map<String, Object> map = new HashMap<>(16);
if (!file.isEmpty()) {
for (MultipartFile f : file) {
try {
// 文件名
String filename = UUID.randomUUID()
+ Objects.requireNonNull(f.getOriginalFilename())
.substring(f.getOriginalFilename().lastIndexOf("."));
// 存储虚拟路径
//String localPath = simplePath + "details/" + filename;
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 String toAllHousePage() {
return "/admin/houseList.jsp";
return "/user/home.jsp";
}
/**
* 用户修改密码界面
*
* @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 orderId 单号
* @return res
*/
@PostMapping("/deleteOrder")
@ResponseBody
public String deleteOrder(int orderId) {
int n = service.deleteOrder(orderId);
if (n > 0) {
return "OK";
}
return "FAIL";
}
}
/**
* 用户控制类
*
*/
@Controller
@RequestMapping("/user")
public class UserController {
@Autowired
private IUserService service;
@Autowired
private IHouseService dao;
/**
* 用户管理页
*
* @return view
*/
@GetMapping("/home.html")
public String toUserSystemPage() {
return "/user/home.jsp";
}
* 查询所有用户页
*
* @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";
}
* @param limit limit
* @param request req
* @return res
*/
@PostMapping("/myOrderInfo")
@ResponseBody
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";
}
}
if (n > 0) {
return "OK";
}
} catch (NumberFormatException e) {
e.printStackTrace();
}
return "FAIL";
}
/**
* 查询我的所有收藏房源信息
*
* @param page page
* @param limit limit
* @param request req
* @return res
*/
@PostMapping("/myOrderInfo")
@ResponseBody
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";
}
}
/**
* 收藏控制类
*
*/
@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 {
*
* @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";
}
/**
* 查询所有用户
*
* @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";
}
/**
* 查询所有房源
*
} catch (Exception e) {
map.put("code", 1);
map.put("msg", "上传失败");
e.printStackTrace();
}
}
map.put("code", 0);
map.put("msg", "上传成功");
}
return map;
}
/**
* 添加新房源信息
*
* @param house 房源数据
* @return res
*/
@PostMapping("/addHouseRecord")
@ResponseBody
public String addHouse(House house) {
if (house.getPublisher() == null || "".equals(house.getPublisher())) {
house.setPublisher("管理员");
}
house.setHouseImage(simplePath);
house.setHouseDetailsImg(detailsPath.toString());
int n = service.addNewHouse(house);
if (n > 0) {
// 置空上一次的添加记录
simplePath = "hrs/";
detailsPath.delete(0, detailsPath.length());
return "OK";
}
return "FAIL";
}
}
}
map.put("code", 0);
map.put("msg", "上传成功");
}
return map;
}
/**
* 添加新房源信息
*
* @param house 房源数据
* @return res
*/
@PostMapping("/addHouseRecord")
@ResponseBody
public String addHouse(House house) {
if (house.getPublisher() == null || "".equals(house.getPublisher())) {
house.setPublisher("管理员");
}
house.setHouseImage(simplePath);
house.setHouseDetailsImg(detailsPath.toString());
int n = service.addNewHouse(house);
if (n > 0) {
// 置空上一次的添加记录
simplePath = "hrs/";
detailsPath.delete(0, detailsPath.length());
return "OK";
}
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;
}
}
response.sendRedirect("/");
return false;
List<House> findHomeInfo = service.findHouseByLike(keywords);
request.getSession().removeAttribute("House");
request.getSession().setAttribute("House", findHomeInfo);
return "index/index.jsp";
}
/**
* 价格升序查询
*
* @param request request
* @return res
*/
@GetMapping("/priceAsc")
public String findPriceAsc(HttpServletRequest request) {
List<House> findHomeInfo = service.findHouseOrderByAsc();
request.getSession().removeAttribute("House");
request.getSession().setAttribute("House", findHomeInfo);
return "index/index.jsp";
}
/**
* 价格降序查询
*
* @param request request
* @return res
*/
@GetMapping("/priceDesc")
public String findPriceDesc(HttpServletRequest request) {
List<House> findHomeInfo = service.findHouseOrderByDesc();
request.getSession().removeAttribute("House");
request.getSession().setAttribute("House", findHomeInfo);
return "index/index.jsp";
}
}
/**
*/
@Controller






更多推荐


所有评论(0)