程序代码
(1)用户登陆代码
<%@ page contentType="text/html; charset=utf-8" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>登录页面</title>
<style type="text/css">
*{
margin: 0px;
padding: 0px;
font-family: "microsoft yahei";
}
html,body{
background-image: url(static/img/login-background.webp);
background-size: 100% 100%;
height: 100%;
}
.login{
position: absolute;
background-color: rgba(255,255,255,1);
top: 25%;
left: 60%;
right: 10%;
bottom: 25%;
border-radius: 5px;
}
.title,.u,.p,.l,.tips,.s,.r{
position: absolute;
width: 100%;
}
input{
height: 35px;
border: 0px;
border-radius: 5px;
width: 80%;
padding-left: 18px;
box-sizing: border-box;
}
.uname{
background: #F2F2FA url(static/img/login-user.png) no-repeat left;
}
.pwd{
background: #F2F2FA url(static/img/login-pwd.png) no-repeat left;
}
button{
background-color: #2db215;
height: 35px;
width: 80%;
border: 0px;
border-radius: 5px;
color: #FFF;
font-size: 16px;
}
select{
width: 80%;
height: 35px;
border-radius: 4px;
border:1px solid #e1e1e1;
}
.title{
top: 0%;
bottom: 80%;
text-align: center;
font-size: 25px;
font-weight: bold;
padding-top: 10px;
box-sizing: border-box;
}
.u{
top: 20%;
bottom: 60%;
left: 10%;
}
.p{
top: 40%;
bottom: 40%;
left: 10%;
}
.s{
top: 57%;
bottom: 13%;
left: 10%;
}
.l{
top: 75%;
bottom: 15%;
left: 10%;
}
.tips{
top: 13%;
font-size: 13px;
color: red;
text-align: center;
}
.r{
top: 90%;
font-size: 13px;
color: red;
text-align: center;
}
</style>
</head>
<body>
<div class="login">
<div class="title">
房屋管理系统
</div>
<form action="login" method="post">
<div class="u">
<input type="text" class="uname" name="userName" value="strcat" />
</div>
<div class="p">
<input type="password" class="pwd" name="password" value="123456" />
</div>
<div class="s">
<select name="type">
<option value="">请选择登陆类型</option>
<option selected="selected" value="0">房主</option>
<option value="1">租赁者</option>
</select>
</div>
<div class="l">
<button type="submit">登录</button>
</div>
</form>
<div class="r">
<a href="register.jsp" style="color:#2db215">注册新用户</a>
</div>
<div class="tips">
${
error}
</div>
</div>
</body>
</html>
(2)用户注册代码
<%@page contentType="text/html; charset=utf-8" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>注册用户</title>
<link rel="stylesheet" href="${basePath}static/css/styles.css" />
<link rel="stylesheet" href="${basePath}static/css/font-awesome-4.7.0/css/font-awesome.min.css" />
<script src="${basePath}static/js/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(function(){
$('.menux p').click(function(){
$(this).siblings('ul').slideUp(200);
$(this).next('ul').slideToggle(200);
});
$('.menux p:first').trigger("click");
$('.menux ul a').click(function(){
$('iframe').attr("src",$(this).attr("url"));
$('.menu_title').html($(this).attr("title"));
});
})
</script>
</head>
<body>
<div class="header">
<div class="logo">房屋管理系统</div>
</div>
<div class="left">
<div class="title">
<i class="fa fa-home"></i>
注册用户
</div>
<div class="menux">
<p>
<i class="fa fa-info-circle"></i>
<i class="fa fa-angle-right point"></i>
注册用户类型
</p>
<ul>
<li>
<a href="javascript:void(0);" url="page/Owner_users/register.jsp" title="注册房主">
<i class="fa fa-caret-right"></i>
注册房主
</a>
</li>
<li>
<a href="javascript:void(0);" url="page/Tenant_users/register.jsp" title="注册租赁者">
<i class="fa fa-caret-right"></i>
注册租赁者
</a>
</li>
</ul>
</div>
</div>
<div class="main">
<div class="location">
<i class="fa fa-home"></i>
<span class="menu_title"></span>
</div>
<iframe src="main" width="100%" height="90%" name="mainFrame" id="mainFrame" frameborder="0px"></iframe>
</div>
</body>
</html>
(3)用户信息界面
<%@ page import="entity.Owner_users" %>
<%@ page import="entity.Tenant_users" %>
<%@page contentType="text/html; charset=utf-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html>
<html style="height: 100%">
<head>
<meta charset="utf-8">
<link rel="stylesheet" href="static/css/styles.css" />
<link rel="stylesheet" href="static/css/font-awesome-4.7.0/css/font-awesome.min.css" />
<script src="static/js/jquery.min.js" type="text/javascript"></script>
<script src="static/js/jquery-validation-1.14.0/jquery.validate.js" type="text/javascript"></script>
<script src="static/js/jquery-validation-1.14.0/localization/messages_zh.js" type="text/javascript"></script>
</head>
<body style="height: 100%; margin: 0">
<div class="add">
<table class="tablelist" style="width: 50%;margin-left:50px">
<c:if test="${type == 0}">
<%Owner_users owner_users = (Owner_users) session.getAttribute("user");%>
<tr>
<td width="120px">身份</td>
<td>房主</td>
</tr>
<tr>
<td width="120px">用户id</td>
<td><%=owner_users.getOID()%></td>
</tr>
<tr>
<td width="120px">用户名</td>
<td><%=owner_users.getUserName()%></td>
</tr>
<tr>
<td width="120px">密码</td>
<td><%=owner_users.getPassword()%></td>
</tr>
<tr>
<td width="120px">姓名</td>
<td><%=owner_users.getOName()%></td>
</tr>
<tr>
<td width="120px">地址</td>
<td><%=owner_users.getOAddress()%></td>
</tr>
<tr>
<td width="120px">电话</td>
<td><%=owner_users.getOTelephone()%></td>
</tr>
</c:if>
<c:if test="${type == 1}">
<%Tenant_users tenant_users = (Tenant_users) session.getAttribute("user");%>
<tr>
<td width="120px">身份</td>
<td>租赁者</td>
</tr>
<tr>
<td width="120px">用户id</td>
<td><%=tenant_users.getTID()%></td>
</tr>
<tr>
<td width="120px">用户名</td>
<td><%=tenant_users.getUserName()%></td>
</tr>
<tr>
<td width="120px">密码</td>
<td><%=tenant_users.getPassword()%></td>
</tr>
<tr>
<td width="120px">姓名</td>
<td><%=tenant_users.getTName()%></td>
</tr>
<tr>
<td width="120px">地址</td>
<td><%=tenant_users.getTAddress()%></td>
</tr>
<tr>
<td width="120px">电话</td>
<td><%=tenant_users.getTTelephone()%></td>
</tr>
<tr>
<td width="120px">性别</td>
<td><%=tenant_users.getTSex()%></td>
</tr>
</c:if>
</table>
</div>
</body>
</html>
(4)主页
<%@page contentType="text/html; charset=utf-8" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>系统首页</title>
<link rel="stylesheet" href="${basePath}static/css/styles.css" />
<link rel="stylesheet" href="${basePath}static/css/font-awesome-4.7.0/css/font-awesome.min.css" />
<script src="${basePath}static/js/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(function(){
$('.menux p').click(function(){
$(this).siblings('ul').slideUp(200);
$(this).next('ul').slideToggle(200);
});
$('.menux p:first').trigger("click");
$('.menux ul a').click(function(){
$('iframe').attr("src",$(this).attr("url"));
$('.menu_title').html($(this).attr("title"));
});
$('.logout').click(function(){
if(confirm("确定要退出吗?")){
window.location.href = "logout";
}
});
})
</script>
</head>
<body>
<div class="header">
<div class="logo">房屋管理系统</div>
<div class="user">
<i class="fa fa-caret-down point"></i>
<i class="fa fa-user"></i>
${
user.userName}
<ul>
<li><a target="mainFrame" href="info.jsp">个人信息</a></li>
<li><a href="javascript:void(0)" class="logout">退出登录</a></li>
</ul>
</div>
</div>
<div class="left">
<div class="title">
<i class="fa fa-home"></i>
系统功能
</div>
<div class="menux">
<c:if test="${type == 0}">
<p>
<i class="fa fa-info-circle"></i>
<i class="fa fa-angle-right point"></i>
房屋管理
</p>
<ul>
<li>
<a href="javascript:void(0);" url="http://localhost:8080/untitled1_war_exploded/owner_users?method=listHouse" title="已注册房屋">
<i class="fa fa-caret-right"></i>
已注册房屋
</a>
</li>
<li>
<a href="javascript:void(0);" url="page/Owner_users/addHouse.jsp" title="添加房屋">
<i class="fa fa-caret-right"></i>
添加房屋
</a>
</li>
</ul>
<p>
<i class="fa fa-info-circle"></i>
<i class="fa fa-angle-right point"></i>
租房论坛
</p>
<ul>
<li>
<a href="javascript:void(0)" url="http://localhost:8080/untitled1_war_exploded/forum?method=getForum" title="查看论坛">
<i class="fa fa-caret-right"></i>
查看论坛
</a>
</li>
<li>
<a href="javascript:void(0)" url="page/leaveMessage.jsp" title="留言">
<i class="fa fa-caret-right"></i>
留言
</a>
</li>
</ul>
</c:if>
<c:if test="${type == 1}">
<p>
<i class="fa fa-info-circle"></i>
<i class="fa fa-angle-right point"></i>
租 房
</p>
<ul>
<li>
<a href="javascript:void(0)" url="http://localhost:8080/untitled1_war_exploded/tenant_users?method=getVacantHouse" title="查看房屋">
<i class="fa fa-caret-right"></i>
查看房屋
</a>
</li>
<li>
<a href="javascript:void(0)" url="http://localhost:8080/untitled1_war_exploded/tenant_users?method=getSeenHouse" title="已看房屋">
<i class="fa fa-caret-right"></i>
已看房屋
</a>
</li>
<li>
<a href="javascript:void(0)" url="http://localhost:8080/untitled1_war_exploded/tenant_users?method=getRentedHouse" title="已租房屋">
<i class="fa fa-caret-right"></i>
已租房屋
</a>
</li>
</ul>
<p>
<i class="fa fa-info-circle"></i>
<i class="fa fa-angle-right point"></i>
租房论坛
</p>
<ul>
<li>
<a href="javascript:void(0)" url="http://localhost:8080/untitled1_war_exploded/forum?method=getForum" title="查看论坛">
<i class="fa fa-caret-right"></i>
查看论坛
</a>
</li>
<li>
<a href="javascript:void(0)" url="page/leaveMessage.jsp" title="留言">
<i class="fa fa-caret-right"></i>
留言
</a>
</li>
</ul>
</c:if>
</div>
</div>
<div class="main">
<div class="location">
<i class="fa fa-home"></i>
<span class="menu_title"></span>
</div>
<iframe src="main.jsp" scrolling="no" width="100%" height="90%" name="mainFrame" id="mainFrame" frameborder="0px"></iframe>
</div>
</body>
</html>
(5)分页
package util;
import java.util.List;
public class PageInfo<T> {
private Integer pageNo;
private int pageSize = 10;
private Long totalCount;
private List<T> list;
public PageInfo(Integer pageNo) {
if(pageNo == null) {
this.pageNo = 1;
}else {
this.pageNo = pageNo;
}
}
public long getTotalPage() {
Long totalPage = totalCount/pageSize;
if(totalCount%pageSize!=0 || totalPage == 0) {
totalPage++;
}
return totalPage;
}
public int getNextPage() {
Integer nextPage = 0;
if(nextPage<this.getTotalPage()) {
nextPage = pageNo+1;
}else {
nextPage = pageNo;
}
return nextPage;
}
public int getPrePage() {
Integer prePage = 0;
if(pageNo>1) {
prePage = pageNo-1;
}else {
prePage = pageNo;
}
return prePage;
}
public boolean isFirstPage() {
boolean isFirstPage = false;
if(pageNo>1) {
isFirstPage = false;
}else {
isFirstPage = true;
}
return isFirstPage;
}
public boolean isLastPage() {
boolean isLastPage = false;
if(pageNo<this.getTotalPage()) {
isLastPage = false;
}else {
isLastPage = true;
}
return isLastPage;
}
public Integer getPageNo() {
return pageNo;
}
public void setPageNo(Integer pageNo) {
this.pageNo = pageNo;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public List<T> getList() {
return list;
}
public void setList(List<T> list) {
this.list = list;
}
public Long getTotalCount() {
return totalCount;
}
public void setTotalCount(Long totalCount) {
this.totalCount = totalCount;
}
}
(6)登陆servlet
package servlet;
import java.io.IOException;
import java.sql.SQLException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import entity.*;
import dao.*;
import org.apache.commons.lang3.StringUtils;
@WebServlet("/login")
public class LoginServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String userName = req.getParameter("userName");
String password = req.getParameter("password");
String type = req.getParameter("type");
if(StringUtils.isBlank(userName) || StringUtils.isBlank(password) || StringUtils.isBlank(type)) {
req.setAttribute("error", "录入信息不能为空!");
req.getRequestDispatcher("login.jsp").forward(req, resp);
return;
}
HttpSession session = req.getSession();
if(session==null){
System.out.println("wrong");
}
session.setAttribute("type",type);
if(StringUtils.isNotBlank(type)) {
try {
if("0".equals(type)) {
Owner_users owner_users = DaoFactory.getInstance().getOwner_usersDao().login(userName, password);
if(owner_users != null) {
session.setAttribute("user", owner_users);
session.setAttribute("type", type);
resp.sendRedirect("index.jsp");
}else {
req.setAttribute("error", "用户名或密码错误!");
req.getRequestDispatcher("login.jsp").forward(req, resp);
}
}else if("1".equals(type)) {
Tenant_users tenant_users = DaoFactory.getInstance().getTenant_usersDao().login(userName, password);
if(tenant_users != null) {
session.setAttribute("user", tenant_users);
session.setAttribute("type", type);
resp.sendRedirect("index.jsp");
}else {
System.out.println(userName+password);
req.setAttribute("error", "用户名或密码错误!");
req.getRequestDispatcher("login.jsp").forward(req, resp);
}
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
(7)登出servlet
package servlet;
import java.io.IOException;
import java.sql.SQLException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.commons.lang3.StringUtils;
@WebServlet("/logout")
public class LogoutServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.getSession().invalidate();
resp.sendRedirect("login.jsp");
}
}
(8)房主servlet
package servlet;
import dao.DaoFactory;
import entity.House;
import entity.Owner_users;
import org.apache.commons.lang3.StringUtils;
import util.PageInfo;
import util.PathUtils;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.Path;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.net.DatagramPacket;
import java.sql.SQLException;
@WebServlet("/owner_users")
public class Owner_usersServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req,resp);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String method = request.getParameter("method");
System.out.println("接受到请求为"+method);
if("listHouse".equals(method)) {
this.listHouse(request,response);
} else if("addHouse".equals(method)) {
this.addHouse(request,response);
} else if("deleteHouse".equals(method)) {
this.deleteHouse(request,response);
} else if("editHouse".equals(method)) {
this.findByHID(request,response);
} else if("editSubmit".equals(method)) {
this.editSubmit(request,response);
} else if("register".equals(method)) {
this.register(request,response);
}
}
private void register(HttpServletRequest request, HttpServletResponse response) {
String userName = request.getParameter("userName");
String password = request.getParameter("password");
String OName = request.getParameter("OName");
String OAddress = request.getParameter("OAddress");
String OTelephone = request.getParameter("OTelephone");
Owner_users owner_users = new Owner_users();
owner_users.setUserName(userName);
owner_users.setPassword(password);
owner_users.setOName(OName);;
owner_users.setOAddress(OAddress);
owner_users.setOTelephone(OTelephone);
try {
DaoFactory.getInstance().getOwner_usersDao().add(owner_users);
response.sendRedirect("http://localhost:8080/untitled1_war_exploded/login.jsp");
} catch (Exception e) {
e.printStackTrace();
}
}
private void listHouse(HttpServletRequest request, HttpServletResponse response) {
Integer pageNo = getIntParameter(request,"pageNo");
House house = new House();
HttpSession session = request.getSession();
Owner_users owner_users = (Owner_users) session.getAttribute("user");
PageInfo<House> pageInfo = new PageInfo<>(pageNo);
try {
pageInfo = DaoFactory.getInstance().getHouseDao().listHouse(owner_users,pageInfo);
} catch (Exception e1) {
e1.printStackTrace();
}
try {
request.setAttribute("pageInfo",pageInfo);
request.setAttribute("house",house);
request.getRequestDispatcher("page/Owner_users/listHouse.jsp").forward(request,response);
} catch (Exception e) {
e.printStackTrace();
}
}
public void addHouse(HttpServletRequest request, HttpServletResponse response) {
String HAddress = request.getParameter("HAddress");
String layout = request.getParameter("layout");
Integer capacity = getIntParameter(request,"capacity");
Integer rent = getIntParameter(request,"rent");
Boolean con = getBoolParameter(request,"con");
HttpSession session = request.getSession();
Owner_users owner_users = (Owner_users) session.getAttribute("user");
Integer OID = owner_users.getOID();
House house = new House();
house.setHAddress(HAddress);
house.setCapacity(capacity);
house.setLayout(layout);
house.setRent(rent);
house.setCon(con);
house.setOID(OID);
try {
DaoFactory.getInstance().getHouseDao().add(house);
response.sendRedirect(PathUtils.getBasePath(request)+"owner_users?method=listHouse");
} catch (SQLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public void deleteHouse(HttpServletRequest request, HttpServletResponse response) {
String HID = request.getParameter("HID");
try {
DaoFactory.getInstance().getHouseDao().delete(Integer.parseInt(HID));
response.sendRedirect(PathUtils.getBasePath(request)+"owner_users?method=listHouse");
} catch(Exception e) {
e.printStackTrace();
}
}
public void editSubmit(HttpServletRequest request, HttpServletResponse response) {
Integer HID = getIntParameter(request,"HID");
String HAddress = request.getParameter("HAddress");
String layout = request.getParameter("layout");
Integer capacity = getIntParameter(request,"capacity");
Integer rent = getIntParameter(request,"rent");
Boolean con = getBoolParameter(request,"con");
HttpSession session = request.getSession();
Owner_users owner_users = (Owner_users) session.getAttribute("user");
Integer OID = owner_users.getOID();
House house = new House();
house.setHID(HID);
house.setHAddress(HAddress);
house.setCapacity(capacity);
house.setLayout(layout);
house.setRent(rent);
house.setCon(con);
house.setOID(OID);
try {
DaoFactory.getInstance().getHouseDao().update(house);
response.sendRedirect(PathUtils.getBasePath(request)+"owner_users?method=listHouse");
} catch (SQLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public Integer getIntParameter(HttpServletRequest request,String name) {
if(StringUtils.isNoneBlank(request.getParameter(name))) {
return Integer.parseInt(request.getParameter(name));
}else {
return null;
}
}
public Boolean getBoolParameter(HttpServletRequest request,String name) {
if(StringUtils.isNoneBlank(request.getParameter(name))) {
return Boolean.parseBoolean(request.getParameter(name));
}
else {
return null;
}
}
private void findByHID(HttpServletRequest request, HttpServletResponse response) {
String HID = request.getParameter("HID");
try {
House house = DaoFactory.getInstance().getHouseDao().findByHID(Integer.parseInt(HID));
request.setAttribute("house",house);
request.getRequestDispatcher("page/Owner_users/editHouse.jsp").forward(request,response);
} catch (Exception e) {
e.printStackTrace();
}
}
}
(9)租赁者servlet
package servlet;
import dao.DaoFactory;
import entity.*;
import entity.Record;
import org.apache.commons.lang3.StringUtils;
import util.PageInfo;
import util.PathUtils;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.sql.SQLException;
@WebServlet("/tenant_users")
public class Tenant_usersServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req,resp);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String method = request.getParameter("method");
System.out.println("接受到请求为"+method);
if("getVacantHouse".equals(method)) {
this.getVacantHouse(request,response);
} else if("seeHouse".equals(method)) {
this.seeHouse(request,response);
} else if("getSeenHouse".equals(method)) {
this.getSeenHouse(request,response);
} else if("rentHouse".equals(method)) {
try {
this.rentHouse(request,response);
} catch (SQLException e) {
e.printStackTrace();
}
} else if("register".equals(method)) {
this.register(request,response);
} else if("getRentedHouse".equals(method)) {
this.getRentedHouse(request,response);
} else if("checkItOut".equals(method)) {
this.checkItOut(request,response);
}
}
private void checkItOut(HttpServletRequest request, HttpServletResponse response) {
String CID = request.getParameter("CID");
try {
DaoFactory.getInstance().getChargeDao().delete(Integer.parseInt(CID));
response.sendRedirect(PathUtils.getBasePath(request)+"tenant_users?method=getVacantHouse");
} catch(Exception e) {
e.printStackTrace();
}
}
private void seeHouse(HttpServletRequest request, HttpServletResponse response) {
HttpSession session = request.getSession();
Tenant_users tenant_users = (Tenant_users) session.getAttribute("user");
Integer TID = tenant_users.getTID();
Integer HID = getIntParameter(request,"HID");
Record record = new Record();
record.setHID(HID);
record.setTID(TID);
try {
DaoFactory.getInstance().getRecordDao().add(record);
response.sendRedirect("http://localhost:8080/untitled1_war_exploded/tenant_users?method=getSeenHouse");
} catch (Exception e) {
e.printStackTrace();
}
}
private void getSeenHouse(HttpServletRequest request, HttpServletResponse response) {
Integer pageNo = getIntParameter(request,"pageNo");
PageInfo<SeenHouse> pageInfo = new PageInfo<>(pageNo);
HttpSession session = request.getSession();
Tenant_users tenant_users = (Tenant_users) session.getAttribute("user");
System.out.println("租赁者的id为"+tenant_users.getTID());
try {
pageInfo = DaoFactory.getInstance().getSeenHouseDao().getSeenHouse(tenant_users,pageInfo);
} catch (Exception e1) {
e1.printStackTrace();
}
try {
request.setAttribute("pageInfo",pageInfo);
request.getRequestDispatcher("page/Tenant_users/seenHouse.jsp").forward(request,response);
} catch (Exception e) {
e.printStackTrace();
}
}
private void getRentedHouse(HttpServletRequest request, HttpServletResponse response) {
Integer pageNo = getIntParameter(request,"pageNo");
PageInfo<RentedHouse> pageInfo = new PageInfo<>(pageNo);
HttpSession session = request.getSession();
Tenant_users tenant_users = (Tenant_users) session.getAttribute("user");
try {
pageInfo = DaoFactory.getInstance().getRentedHouseDao().getRentedHouse(tenant_users,pageInfo);
} catch (Exception e1) {
e1.printStackTrace();
}
try {
request.setAttribute("pageInfo",pageInfo);
request.getRequestDispatcher("page/Tenant_users/rentedHouse.jsp").forward(request,response);
} catch (Exception e) {
e.printStackTrace();
}
}
private void register(HttpServletRequest request, HttpServletResponse response) {
String userName = request.getParameter("userName");
String password = request.getParameter("password");
String TName = request.getParameter("OName");
String TAddress = request.getParameter("OAddress");
String TTelephone = request.getParameter("OTelephone");
String TSex = request.getParameter("TSex");
Tenant_users tenant_users = new Tenant_users();
tenant_users.setUserName(userName);
tenant_users.setPassword(password);
tenant_users.setTName(TName);;
tenant_users.setTAddress(TAddress);
tenant_users.setTTelephone(TTelephone);
tenant_users.setTSex(TSex);
try {
DaoFactory.getInstance().getTenant_usersDao().add(tenant_users);
response.sendRedirect("http://localhost:8080/untitled1_war_exploded/login.jsp");
} catch (Exception e) {
e.printStackTrace();
}
}
private void rentHouse(HttpServletRequest request, HttpServletResponse response) throws SQLException {
HttpSession session = request.getSession();
Tenant_users tenant_users = (Tenant_users) session.getAttribute("user");
Integer TID = tenant_users.getTID();
Integer HID = getIntParameter(request, "HID");
Integer RID = DaoFactory.getInstance().getRecordDao().getRID(TID,HID);
Integer charge = getIntParameter(request, "charge");
Double amount = 0.0;
if(charge > 10000) {
amount += (charge-10000)*0.1;
charge -= 10000;
}
if(charge > 1000) {
amount += (charge-1000)*0.05;
charge -= 1000;
}
if(charge > 100) {
amount += (charge-100)*0.01;
charge -= 100;
}
Charge entity = new Charge();
entity.setRID(RID);
entity.setAmount(amount);
try {
DaoFactory.getInstance().getChargeDao().add(entity);
response.sendRedirect("http://localhost:8080/untitled1_war_exploded/tenant_users?method=getRentedHouse");
} catch (Exception e) {
e.printStackTrace();
}
}
private void getVacantHouse(HttpServletRequest request, HttpServletResponse response) {
Integer pageNo = getIntParameter(request,"pageNo");
PageInfo<VacantHouse> pageInfo = new PageInfo<>(pageNo);
try {
pageInfo = DaoFactory.getInstance().getVacantHouseDao().seeVacantHouse(pageInfo);
} catch (Exception e1) {
e1.printStackTrace();
}
try {
request.setAttribute("pageInfo",pageInfo);
request.getRequestDispatcher("page/Tenant_users/seeHouse.jsp").forward(request,response);
} catch (Exception e) {
e.printStackTrace();
}
}
public Integer getIntParameter(HttpServletRequest request,String name) {
if(StringUtils.isNoneBlank(request.getParameter(name))) {
return Integer.parseInt(request.getParameter(name));
}else {
return null;
}
}
}
(10)房主用户Dao
package dao;
import entity.Owner_users;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import util.PropertiesUtils;
import java.sql.SQLException;
import java.util.List;
public class Owner_usersDao {
public void add(Owner_users owner_users) throws SQLException {
QueryRunner queryRunner = new QueryRunner(PropertiesUtils.getDataSource());
String sql = "INSERT INTO owner_users(userName,password,OName,OAddress,OTelephone) VALUES (?,?,?,?,?)";
Object[] params = {
owner_users.getUserName(), owner_users.getPassword(), owner_users.getOName(), owner_users.getOAddress(), owner_users.getOTelephone()};
queryRunner.update(sql, params);
System.out.println("注册成功!");
}
public void delete(String ID) throws SQLException {
QueryRunner queryRunner = new QueryRunner(PropertiesUtils.getDataSource());
String sql = "DELETE FROM owner_users WHERE OID = ?";
Object[] params = {
ID};
queryRunner.update(sql, params);
}
public Owner_users login(String userName,String password) throws SQLException {
QueryRunner queryRunner = new QueryRunner(PropertiesUtils.getDataSource());
String sql = "SELECT * FROM owner_users WHERE userName = ? AND password = ?";
Object[] params = {
userName,password};
Owner_users entity = queryRunner.query(sql, new BeanHandler<>(Owner_users.class),params);
return entity;
}
}
(11)Daofactory
package dao;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
public class DaoFactory {
private static DaoFactory factory = new DaoFactory();
private Map<String, Object> map = new ConcurrentHashMap<>();
private DaoFactory() {
}
public static DaoFactory getInstance() {
return factory;
}
public Owner_usersDao getOwner_usersDao() {
Owner_usersDao dao = (Owner_usersDao) map.get("Owner_usersDao");
if(dao != null) {
return dao;
}else {
dao = new Owner_usersDao();
map.put("Owner_usersDao", dao);
}
return dao;
}
public Tenant_usersDao getTenant_usersDao() {
Tenant_usersDao dao = (Tenant_usersDao) map.get("Tenant_usersDao");
if(dao != null) {
return dao;
}else {
dao = new Tenant_usersDao();
map.put("Tenant_usersDao", dao);
}
return dao;
}
public HouseDao getHouseDao() {
HouseDao dao = (HouseDao) map.get("HouseDao");
if(dao != null) {
return dao;
}else {
dao = new HouseDao();
map.put("HouseDao", dao);
}
return dao;
}
public VacantHouseDao getVacantHouseDao() {
VacantHouseDao dao = (VacantHouseDao) map.get("VacantHouseDao");
if(dao != null) {
return dao;
}else {
dao = new VacantHouseDao();
map.put("VacantHouseDao", dao);
}
return dao;
}
public ChargeDao getChargeDao() {
ChargeDao dao = (ChargeDao) map.get("ChargeDao");
if(dao != null) {
return dao;
}else {
dao = new ChargeDao();
map.put("ChargeDao", dao);
}
return dao;
}
public RecordDao getRecordDao() {
RecordDao dao = (RecordDao) map.get("RecordDao");
if(dao != null) {
return dao;
}else {
dao = new RecordDao();
map.put("RecordDao", dao);
}
return dao;
}
public RentedHouseDao getRentedHouseDao () {
RentedHouseDao dao = (RentedHouseDao) map.get("RentedHouseDao");
if(dao != null) {
return dao;
}else {
dao = new RentedHouseDao();
map.put("RentedHouseDao", dao);
}
return dao;
}
public SeenHouseDao getSeenHouseDao() {
SeenHouseDao dao = (SeenHouseDao) map.get("SeenHouseDao");
if(dao != null) {
return dao;
}else {
dao = new SeenHouseDao();
map.put("SeenHouseDao", dao);
}
return dao;
}
public MessageDao getMessageDao() {
MessageDao dao = (MessageDao) map.get("MessageDao");
if(dao != null) {
return dao;
}else {
dao = new MessageDao();
map.put("MessageDao", dao);
}
return dao;
}
}
(11)论坛主界面
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>论坛</title>
<link rel="stylesheet" href="${basePath}static/css/styles.css" />
<link rel="stylesheet" href="${basePath}static/css/font-awesome-4.7.0/css/font-awesome.min.css" />
<script src="${basePath}static/js/jquery.min.js" type="text/javascript"></script>
</head>
<body>
<table class="tablelist">
<thead>
<tr>
<th>留言编号</th>
<th>留言内容</th>
<th>留言时间</th>
<th>用户身份</th>
<th>用户编号</th>
</tr>
</thead>
<c:forEach items="${pageInfo.list}" var="message">
<tr>
<td>${
message.MID}</td>
<td>${
message.content}</td>
<td><fmt:formatDate value="${message.createDate}" type="both"/></td>
<c:if test="${message.OID!=null}">
<td>房主</td>
<td>${
message.OID}</td>
</c:if>
<c:if test="${message.TID!=null}">
<td>租赁者</td>
<td>${
message.TID}</td>
</c:if>
</tr>
</c:forEach>
</table>
<%@include file="include/page.jsp"%>
</form>
</body>
</html>