test房产信息管理系统
房产信息管理系统
2019级《JAVA语言程序设计》
上机考试试题
2020.12.20
考试要求
一、本试卷为2019级《JAVA语言程序设计》上机考试试卷;
二. 注意编程规范:
(1)通过Eclipse添加类的方式建立类;
(2)程序开头部分注释班级、作者、学号、日期;
(3)注意程序代码中必要的空格与缩进;
(4)注意类、变量、方法的命名原则;
三. 考试结束后,将整个项目工程文件夹中的文件源代码和数据库备份文件放入文件夹,以“班级学号姓名”方式命名,并压缩成同名的压缩包文件,考试结束后提交给课代表统一上交。
房产信息管理系统(50分)
1、项目需求:
某房产公司,欲开发一个房产信息管理系统,其主要功能描述如下:
(1)公司销售的房产,房产信息包括,房产编号(唯一性)、房产证明,地址,建造年份,建造面积,销售报价,房产照片以及销售状态 (在售,待售,意向,售出,停售)等信息。
2. 公司雇佣了多名房产经纪,负责销售房产,系统中需要存储房产经纪的基本信息,包括:姓名,家庭住址,联系电话等等。一套房产同一时间仅由一名房产经纪负责销售,
3.系统用户包括顾客、房产经纪、系统管理员,顾客需经过系统身份验证之后,才能登录系统,可以浏览、查询、购买相应房产。房产经纪登录系统之后,可以浏览负责销售的房产信息,但需要经过系统管理员的审批授权。
4.系统管理员可以从系统中导出所有房产的信息列表,系统管理员定期将信息和销售的房产,进行归纳,若公司确定不再销售某套房产,系统管理员将房产信息从系统中删除。
2.系统要求与评分标准:
2.1 页面要求
(1)系统可以通过浏览器直接访问;(1分)
(2)各个功能页面整体风格统一;
(3)首页为用户登录页面,系统管理员、房产经纪、顾客三种角色用户登录后,进入相应的功能页,只能看到角色允许访问功能模块,用户登录界面包含用户、密码两个文本框,以及登录和注册两个按钮;(3分)
(4)顾客注册:点击用户登录页面的注册按钮,顾客进入用户注册页面,注册信息包括身份证号、姓名、性别、手机号码、家庭住址。(4分)
(6)顾客功能页:共包括查看个人信息、修改个人密码、浏览房产信息,查询房产,购买房产五项功能模块。
(7)房产经纪功能页:包括查看个人信息、浏览房产信息、房产交易、查询房产、修改个人密码五项功能模块;
图1 房产信息管理系统功能结构图
(8)系统管理员功能页:新添房产信息、房产授权、停售房产、查询房产信息,顾客审核、新增房产经纪人,密码重置七项功能模块。
2.2 功能要求
(1)新增房产信息:房产编号(唯一性)(编码规则:年月日(登记入库时间)+四位顺序号,例如:202012200001)、户型(单选项:选项内容包括以下六项:四室两厅、四室一厅、三室两厅、三室一厅、两室两厅、两室一厅),房产地址(地址格式:XX省XX市XX区(县)XX街道XX小区XX号楼XX单元XXX门牌),建造年份,建造面积,销售报价,销售状态(在售,待售,意向,售出,停售,缺省为“在售”)。(5分)
(2)新增房产经纪人信息:房产经纪人基本信息包括:工号(八位数字:年份+四位序号),姓名,家庭住址,手机。(2分)
(3)顾客注册:点击用户登录页面的“注册”按钮,顾客进入用户注册页面,注册信息包括身份证号(判断条件18位,最后一位可以是字母“X”)、姓名、性别(男或女单选)、手机号码(11位数字)、家庭住址(地址格式:XX省XX市XX区(县)XX街道XX小区XX号楼XX单元XXX门牌)。(4分)
(4)顾客审核:顾客注册后,系统管理员后台可以以列表形式查看顾客基本信息, 点击顾客姓名,可以查看顾客详细信息,在顾客详细信息页面点击通过按钮,可以通过审核。通过审核的顾客才可以在前台登录界面登录主页面。(3分)
(5)查看个人信息:房产经纪或者顾客登录后,可以查看个人的详细信息。(2分)
(6)浏览房产信息:顾客登录后,可以查看所有在售房产信息;房产经纪人登录后,只能查看系统管理员授权的房产信息;系统管理员登录后可以查看全部房产信息(四种房产状态)。(3分)
(7)查询房产信息:可以按照户型、地址、建造年份、建造面积,销售报价五个条件进行综合查询,查询结果以列表形式显示,显示结果信息包括序号、地址、销售报价,点击地址,可以查看该套房产的详细信息;顾客可以看到的结果为所有在售的房产,房产经纪人看到的结果为所有授权给自己销售的房产信息,系统管理员可以查询所有房产信息。(6分)
(8)购买房产:顾客在浏览房产信息后,点击查看房产详细信息界面时,可以点击“交易”按钮,该房产状态信息改为 “意向”状态。(3分)
(9)房产交易:房产经纪人以列表形式显示待售房产信息和顾客名称,显示列表包括序号、地址、售价、顾客名称,房产经纪人点击地址可以查看房产和顾客详细信息,单击“交易”按钮,该房产状态信息改为“售出”状态。(3分)
(10)房产授权:系统管理员登录后可以浏览所有的在售房产信息,显示结果信息包括序号、地址、销售报价,点击地址,可以查看该套房产的详细信息,输入房产经纪人姓名,如果房产经纪人信息不存在,提示错误信息,不允许授权;如果正确,点击“授权”按钮,该房产状态信息改为“待售”状态。(3分)
(11)停售房产:系统管理员登录后可以浏览所有的在售房产信息,显示结果信息包括序号、地址、销售报价,点击地址,可以查看该套房产的详细信息,,点击“停售”按钮,该房产状态信息改为“停售”状态。(3分)
(12)个人密码修改:顾客或者房产经纪人登录后,可以输入旧密码、新密码、新密码确认修改个人密码,需要判断旧密码是否正确,新密码和新密码确认是否一致;(2分)
(13)重置密码:管理员可以修改房产经纪人的个人密码,先按照房产经纪人工号查询,显示出基本信息后,点击密码重置,将房产经纪人密码统一修改为“123456”。(2分)
(14)数据库评分标准:按照题目要求创建房产基本信息表、房产经纪人基本信息表、顾客记录表,(3分),实现数据库连接正常(2分)。
数据表结构样式参考下表所示:
表1房产基本信息表
|
序 号 |
字段名称 |
中文含义 |
|
1 |
HouseID |
房产编号(唯一性) |
|
2 |
RoomType |
户型 |
|
3 |
Address |
房产地址 |
|
4 |
Year |
建造年份 |
|
5 |
Area |
建造面积 |
|
6 |
Sales |
销售报价 |
|
7 |
Status |
销售状态 |
|
8 |
AgentID |
房产经纪人ID |
|
9 |
UserID |
顾客ID |
表2房产经纪人基本信息表
|
序 号 |
字段名称 |
中文含义 |
|
1 |
AgentID |
工号(房产经纪人ID) |
|
2 |
AgentName |
房产经纪人姓名 |
|
3 |
AgentAddress |
家庭住址 |
|
4 |
Phone |
手机 |
表3顾客基本信息表
|
序 号 |
字段名称 |
中文含义 |
|
1 |
UserID |
顾客ID |
|
2 |
UserName |
姓名 |
|
3 |
sex |
性别 |
|
4 |
IdNumber |
身份证号 |
|
5 |
Phone |
手机 |
|
6 |
User |
家庭住址 |
代码:
使用mybatis+Mapper代理来实现功能
使用到的jar包:mybatis、jQuery(进行js校验)、mysql
配置文件
1.mybatis-config.xml
<?xml version="1.0" encoding="utf-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <!-- properties 标签中的配置可以供整个配置文件使用,在任何位置都可以引入其中配置的值。 properties 标签可以通过子标签 property 标签来配置一些子元素信息,也可以配置外部的动态文件。 --> <properties resource="mysql.properties"/> <!-- 也可以配置 url,但是 url和resource只能存在一个 --> <!-- 类型别名 --> <!-- <typeAliases>--> <!-- <typeAlias type="com.xxxx.entity.User" alias="User"/>--> <!-- </typeAliases>--> <!-- 对事物的管理和连接池的配置 --> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <!--连接池信息--> <dataSource type="POOLED"> <property name="driver" value="${driver}"/> <property name="url" value="${url}"/> <property name="username" value="${username}"/> <property name="password" value="${password}"/> </dataSource> </environment> </environments> <!--mappers映射器--> <mappers> <!--映射文件方式1.一个一个的配置--> <!-- <mapper resource="com/xxxx/mapper/UserMapper.xml"/>--> <!-- <mapper class="com.xxxx.mapper.UserMapper"/>--> <!--映射文件方式2.自动扫描包内的Mapper接口和配置文件--> <package name="com.xxxx.mapper"/> </mappers> </configuration>
2.mysql.properties
driver=com.mysql.cj.jdbc.Driver url=jdbc:mysql://127.0.0.1:3306/course?serverTimezone=UTC&useSSL=false&characterEncoding=UTF-8 username=root password=123456
实体类
3.Agent.java(房产经理类)
package com.xxxx.entity; public class Agent { private String agid;//经理id private String agname;//经理姓名 private String agaddress;//经理地址 private String agphone;//经理电话 public Agent(String agid, String agname, String agaddress, String agphone) { this.agid = agid; this.agname = agname; this.agaddress = agaddress; this.agphone = agphone; } public String getAgid() { return agid; } public void setAgid(String agid) { this.agid = agid; } public String getAgname() { return agname; } public void setAgname(String agname) { this.agname = agname; } public String getAgaddress() { return agaddress; } public void setAgaddress(String agaddress) { this.agaddress = agaddress; } public String getAgphone() { return agphone; } public void setAgphone(String agphone) { this.agphone = agphone; } public Agent() { } }
4.House.java(房产类)
package com.xxxx.entity; public class House { private String hoid;//房子ID private String hotype;//户型 private String hoaddress;//房地址 private String hoyear;//建造年份 private String hoarea;//面积 private String hosale;//销售价格 private String hostatus;//销售状态 private String aid;//经理id private String uid;//顾客id public String getHoid() { return hoid; } public House(String hoid, String hotype, String hoaddress, String hoyear, String hoarea, String hosale, String hostatus) { this.hoid = hoid; this.hotype = hotype; this.hoaddress = hoaddress; this.hoyear = hoyear; this.hoarea = hoarea; this.hosale = hosale; this.hostatus = hostatus; } public void setHoid(String hoid) { this.hoid = hoid; } public String getHotype() { return hotype; } public void setHotype(String hotype) { this.hotype = hotype; } public String getHoaddress() { return hoaddress; } public void setHoaddress(String hoaddress) { this.hoaddress = hoaddress; } public String getHoyear() { return hoyear; } public void setHoyear(String hoyear) { this.hoyear = hoyear; } public String getHoarea() { return hoarea; } public void setHoarea(String hoarea) { this.hoarea = hoarea; } public String getHosale() { return hosale; } public void setHosale(String hosale) { this.hosale = hosale; } public String getHostatus() { return hostatus; } public void setHostatus(String hostatus) { this.hostatus = hostatus; } public String getAid() { return aid; } public void setAid(String aid) { this.aid = aid; } public String getUid() { return uid; } public void setUid(String uid) { this.uid = uid; } public House() { } public House(String hoid, String hotype, String hoaddress, String hoyear, String hoarea, String hosale, String hostatus, String aid, String uid) { this.hoid = hoid; this.hotype = hotype; this.hoaddress = hoaddress; this.hoyear = hoyear; this.hoarea = hoarea; this.hosale = hosale; this.hostatus = hostatus; this.aid = aid; this.uid = uid; } }
5.Login(登录类)
package com.xxxx.entity; public class Login { private String uname;//登录账号 private String upwd;//登录密码 private String type;//登录类型 public Login(String uname, String upwd, String type) { this.uname = uname; this.upwd = upwd; this.type = type; } public String getUname() { return uname; } public void setUname(String uname) { this.uname = uname; } public String getUpwd() { return upwd; } public void setUpwd(String upwd) { this.upwd = upwd; } public String getType() { return type; } public void setType(String type) { this.type = type; } public Login() { } }
6.User(顾客类)
package com.xxxx.entity; public class User { private int usid;//顾客id private String usname;//顾客名字 private String ussex;//顾客性别 private String usidnum;//身份证 private String usphone;//顾客电话 private String usaddress;//顾客地址 private String usstatus="0";//顾客状态:0为注册;1为可以登录 public String getUsstatus() { return usstatus; } public void setUsstatus(String usstatus) { this.usstatus = usstatus; } public User() { } public User(int usid, String usname, String ussex, String usidnum, String usphone, String usaddress) { this.usid = usid; this.usname = usname; this.ussex = ussex; this.usidnum = usidnum; this.usphone = usphone; this.usaddress = usaddress; } public int getUsid() { return usid; } public void setUsid(int usid) { this.usid = usid; } public String getUsname() { return usname; } public void setUsname(String usname) { this.usname = usname; } public String getUssex() { return ussex; } public void setUssex(String ussex) { this.ussex = ussex; } public String getUsidnum() { return usidnum; } public void setUsidnum(String usidnum) { this.usidnum = usidnum; } public String getUsphone() { return usphone; } public void setUsphone(String usphone) { this.usphone = usphone; } public String getUsaddress() { return usaddress; } public void setUsaddress(String usaddress) { this.usaddress = usaddress; } }
Mapper代理
7.AgentMapper.java(接口类)
package com.xxxx.mapper; import com.xxxx.entity.Agent; public interface AgentMapper { void add(Agent agent); Agent selectByagname(String agname); Agent selectByagid(String agid); }
8.AgentMapper.xml
<?xml version="1.0" encoding="UTF-8"?> <!--<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"--> <!-- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"--> <!-- xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"--> <!-- version="4.0">--> <!--</web-app>--> <!DOCTYPE mapper PUBLIC "-//mybatis.org/DTD Mapper 3.0" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!--namespace:命名空间--> <mapper namespace = "com.xxxx.mapper.AgentMapper"> <insert id="add"> insert into agent (agid,agname,agaddress,agphone) values (#{agid},#{agname},#{agaddress},#{agphone}); </insert> <select id="selectByagname" resultType="com.xxxx.entity.Agent"> select * from agent where agname=#{agname}; </select> <select id="selectByagid" resultType="com.xxxx.entity.Agent"> select * from agent where agid=#{agid}; </select> </mapper>
9.HouseMapper.java(接口类)
package com.xxxx.mapper; import com.xxxx.entity.House; import org.apache.ibatis.annotations.Param; public interface HouseMapper { void add(House house); House[] selectBy(House house); House selectByhoid(String hoid); House[] selectAll(); void updateByhoidagid(@Param("hoid") String hoid,@Param("aid") String aid); void updateByhoid(String hoid); House[] selectAllus(); void updateStaByhoid(@Param("hoid") String hoid, @Param("uid") String uid); House[] selectByaid(String agid); House[] selectBysta(); void updateStatusByhoid(String hoid); }
10.HouseMapper.xml
<?xml version="1.0" encoding="UTF-8"?> <!--<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"--> <!-- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"--> <!-- xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"--> <!-- version="4.0">--> <!--</web-app>--> <!DOCTYPE mapper PUBLIC "-//mybatis.org/DTD Mapper 3.0" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!--namespace:命名空间--> <mapper namespace = "com.xxxx.mapper.HouseMapper"> <insert id="add"> insert into house (hoid,hotype,hoaddress,hoyear,hoarea,hosale,hostatus) values (#{hoid},#{hotype},#{hoaddress},#{hoyear},#{hoarea},#{hosale},#{hostatus}); </insert> <update id="updateByhoidagid"> update house set aid =#{aid},hostatus="待售" where hoid=#{hoid}; </update> <update id="updateByhoid"> update house set hostatus="停售" where hoid=#{hoid}; </update> <update id="updateStaByhoid"> update house set hostatus ="意向",uid=#{uid} where hoid=#{hoid}; </update> <update id="updateStatusByhoid"> update house set hostatus ="售出" where hoid=#{hoid}; </update> <select id="selectBy" resultType="com.xxxx.entity.House"> select * from house <where> <if test="hotype !=null and hosale!=''"> and hotype=#{hotype} </if> <if test="hoaddress!=null and hoaddress!=''"> and hoaddress=#{hoaddress} </if> <if test="hoyear!=null and hoyear!=''"> and hoyear=#{hoyear} </if> <if test="hoarea!=null and hoarea!=''"> and hoarea=#{hoarea} </if> <if test="hosale!=null and hosale!=''"> and hosale=#{hosale} </if> </where> </select> <select id="selectByhoid" resultType="com.xxxx.entity.House"> select * from house where hoid=#{hoid}; </select> <select id="selectAll" resultType="com.xxxx.entity.House"> select * from house; </select> <select id="selectAllus" resultType="com.xxxx.entity.House"> select * from house where hostatus="在售"; </select> <select id="selectByaid" resultType="com.xxxx.entity.House"> select * from house where aid=#{agid}; </select> <select id="selectBysta" resultType="com.xxxx.entity.House"> select * from house where hostatus="意向"; </select> </mapper>
11.LoginMapper.java(接口类)
package com.xxxx.mapper; import com.xxxx.entity.Login; import org.apache.ibatis.annotations.Param; public interface LoginMapper { Login selectByunametype(@Param("uname") String uname, @Param("type") String type); void updateByuname(String uname); Login selectByuname(String uname); void updateByunameupwd(@Param("uname") String uname, @Param("upwd") String upwd); }
12.LoginMapper.xml
<?xml version="1.0" encoding="UTF-8"?> <!--<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"--> <!-- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"--> <!-- xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"--> <!-- version="4.0">--> <!--</web-app>--> <!DOCTYPE mapper PUBLIC "-//mybatis.org/DTD Mapper 3.0" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!--namespace:命名空间--> <mapper namespace = "com.xxxx.mapper.LoginMapper"> <update id="updateByuname"> update login01 set upwd = "123456" where uname=#{uname}; </update> <update id="updateByunameupwd"> update login01 set upwd =#{upwd} where uname=#{uname}; </update> <select id="selectByunametype" resultType="com.xxxx.entity.Login"> select * from login01 where type=#{type} and uname=#{uname}; </select> <select id="selectByuname" resultType="com.xxxx.entity.Login"> select * from login01 where uname=#{uname}; </select> </mapper>
13.UserMapper.java(接口类)
package com.xxxx.mapper; import com.xxxx.entity.User; public interface UserMapper { User[] selectusstatus(String usstatus); User selectByusidnum(String usidnum); void updateusstatus(String usidnum); void register(User user); User selectByusname(String usname); User selectByusid(String uid); }
14.UserMapper.xml
<?xml version="1.0" encoding="UTF-8"?> <!--<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"--> <!-- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"--> <!-- xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"--> <!-- version="4.0">--> <!--</web-app>--> <!DOCTYPE mapper PUBLIC "-//mybatis.org/DTD Mapper 3.0" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!--namespace:命名空间--> <mapper namespace = "com.xxxx.mapper.UserMapper"> <insert id="register"> insert into user(usidnum,usname,ussex,usphone,usaddress,usstatus) values (#{usidnum},#{usname},#{ussex},#{usphone},#{usaddress},"0"); </insert> <update id="updateusstatus"> update user set usstatus = "1" where usidnum=#{usidnum}; </update> <select id="selectusstatus" resultType="com.xxxx.entity.User"> select * from user where usstatus=#{usstatus}; </select> <select id="selectByusidnum" resultType="com.xxxx.entity.User"> select * from user where usidnum=#{usidnum}; </select> <select id="selectByusname" resultType="com.xxxx.entity.User"> select * from user where usname=#{usname}; </select> <select id="selectByusid" resultType="com.xxxx.entity.User"> select * from user where usid=#{uid}; </select> </mapper>
Servlet层
15.addagServlet(管理员:添加经理信息)
package com.xxxx.servlet; import com.xxxx.entity.Agent; import com.xxxx.mapper.AgentMapper; import com.xxxx.util.GetSqlSession; import org.apache.ibatis.session.SqlSession; 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 java.io.IOException; @WebServlet("/addagServlet") public class addagServlet extends HttpServlet { @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8"); response.setContentType("text/html;charset=utf-8"); String agid =request.getParameter("agid");//经理id String agname =request.getParameter("agname");//经理姓名 String agaddress=request.getParameter("agaddress");//经理地址 String agphone =request.getParameter("agphone") ;//经理电话 Agent agent=new Agent(agid,agname,agaddress,agphone); SqlSession sqlSession= GetSqlSession.CreateSqlSession(); AgentMapper agentMapper=sqlSession.getMapper(AgentMapper.class); agentMapper.add(agent); response.getWriter().write("添加经理信息成功"); response.getWriter().close(); sqlSession.close(); } }
16.addhoServlet(管理员:添加房产信息)
package com.xxxx.servlet; import com.xxxx.entity.House; import com.xxxx.mapper.HouseMapper; import com.xxxx.util.GetSqlSession; import org.apache.ibatis.session.SqlSession; 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 java.io.IOException; @WebServlet("/addhoServlet") public class addhoServlet extends HttpServlet { @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8"); response.setContentType("text/html;charset=utf-8"); String hoid =request.getParameter("hoid");//房子ID String hotype =request.getParameter("hotype") ;//户型 String hoaddress=request.getParameter("hoaddress") ;//房地址 String hoyear =request.getParameter("hoyear") ;//建造年份 String hoarea =request.getParameter("hoarea") ;//面积 String hosale =request.getParameter("hosale") ;//销售价格 String hostatus =request.getParameter("hostatus") ;//销售状态 House house=new House(hoid,hotype,hoaddress,hoyear,hoarea,hosale,hostatus); SqlSession sqlSession= GetSqlSession.CreateSqlSession(); HouseMapper houseMapper=sqlSession.getMapper(HouseMapper.class); houseMapper.add(house); response.getWriter().write("添加房产信息成功"); response.getWriter().close(); sqlSession.close(); } }
17.addusServlet(管理员:审核顾客信息)
package com.xxxx.servlet; import com.xxxx.mapper.UserMapper; import com.xxxx.util.GetSqlSession; import org.apache.ibatis.session.SqlSession; 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 java.io.IOException; /** * 管理员审核顾客功能:通过审核,把user表中的usstatus设置为1,说明审核通过了 */ @WebServlet("/addusServlet") public class addusServlet extends HttpServlet { @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8"); response.setContentType("text/html;charset=utf-8"); String usidnum=request.getParameter("usidnum"); SqlSession sqlSession= GetSqlSession.CreateSqlSession(); UserMapper userMapper=sqlSession.getMapper(UserMapper.class); userMapper.updateusstatus(usidnum); response.getWriter().write("审核成功"); response.getWriter().close(); sqlSession.close(); } }
18.agjiaoyiServlet(房产经理:房产交易)
package com.xxxx.servlet; import com.xxxx.mapper.HouseMapper; import com.xxxx.util.GetSqlSession; import org.apache.ibatis.session.SqlSession; 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 java.io.IOException; @WebServlet("/agjiaoyiServlet") public class agjiaoyiServlet extends HttpServlet { @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8"); response.setContentType("text/html;charset=utf-8"); String hoid=request.getParameter("hoid"); SqlSession sqlSession= GetSqlSession.CreateSqlSession(); HouseMapper houseMapper=sqlSession.getMapper(HouseMapper.class); houseMapper.updateStatusByhoid(hoid); response.getWriter().write("交易成功"); response.getWriter().close(); sqlSession.close(); } }
19.registerServlet(注册)
package com.xxxx.servlet; import com.xxxx.entity.User; import com.xxxx.mapper.UserMapper; import com.xxxx.util.GetSqlSession; import org.apache.ibatis.session.SqlSession; 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 java.io.IOException; @WebServlet("/registerServlet") public class registerServlet extends HttpServlet { @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8"); response.setContentType("text/html;charset=utf-8"); String usidnum=request.getParameter("usidnum"); String usname=request.getParameter("usname"); String ussex=request.getParameter("ussex"); String usphone=request.getParameter("usphone"); String usaddress=request.getParameter("usaddress"); User user=new User(); user.setUsidnum(usidnum);user.setUsname(usname);user.setUssex(ussex);user.setUsphone(usphone);user.setUsaddress(usaddress); SqlSession sqlSession = GetSqlSession.CreateSqlSession(); UserMapper userMapper =sqlSession.getMapper(UserMapper.class); userMapper.register(user); response.getWriter().write("注册成功,等待审核"); response.getWriter().close(); sqlSession.close(); } }
20.selecthoone(管理员:房产授权:查看经理信息)
package com.xxxx.servlet; import com.xxxx.entity.Agent; import com.xxxx.mapper.AgentMapper; import com.xxxx.mapper.HouseMapper; import com.xxxx.util.GetSqlSession; import org.apache.ibatis.session.SqlSession; 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 java.io.IOException; /** * 房产授权中,需要查询是否有这个经理 * 无-->返回错误信息 * 有-->在该房产中 aid=agid(把经理的id添加到房产信息中),并且把房产状态信息改成“待售”状态 */ @WebServlet("/selecthoone") public class selecthoone extends HttpServlet { @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8"); response.setContentType("text/html;charset=utf-8"); String agname=request.getParameter("agname"); String hoid= (String) request.getSession().getAttribute("hoid"); SqlSession sqlSession= GetSqlSession.CreateSqlSession(); AgentMapper agentMapper=sqlSession.getMapper(AgentMapper.class); Agent agent=agentMapper.selectByagname(agname); if(agent==null){ //第一步的写法会出现问题,就是跳转回去之后,没有hoid等数据对房产信息进行查询,所以我直接在页面提示错误信息,就不跳转回去了 // request.setAttribute("msg","房产经纪人信息不存在"); // request.getRequestDispatcher("selecthoone.jsp").forward(request,response); response.getWriter().write("房产经纪人信息不存在"); response.getWriter().close(); } else{//房产经理的名字存在,进行授权,房产状态为:待售 HouseMapper houseMapper=sqlSession.getMapper(HouseMapper.class); houseMapper.updateByhoidagid(hoid,agent.getAgid()); response.getWriter().write("更新成功"); response.getWriter().close(); } sqlSession.close(); } }
21.selecthoServlet(管理员:查询房产信息,动态查询)
package com.xxxx.servlet; import com.xxxx.entity.House; import com.xxxx.mapper.HouseMapper; import com.xxxx.util.GetSqlSession; import org.apache.ibatis.session.SqlSession; 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 java.io.IOException; /** * 可以按照户型、地址、建造年份、建造面积,销售报价五个条件进行综合查询 * -->问题在于,不知道哪一个为空,在mapper中写的时候需要动态查询 */ @WebServlet("/selecthoServlet") public class selecthoServlet extends HttpServlet { @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8"); response.setContentType("text/html;charset=utf-8"); String hotype=request.getParameter("hotype"); String hoaddress=request.getParameter("hoaddress"); String hoyear=request.getParameter("hoyear"); String hoarea=request.getParameter("hoarea"); String hosale=request.getParameter("hosale"); System.out.println("hotype "+hotype+" hoaddress "+hoaddress+" hoyear "+hoyear+" hoarea "+hoarea+" hosale "+hosale); if((hotype==null||"".equals(hotype.trim()))&&(hoaddress==null||"".equals(hoaddress.trim()))&&(hoyear==null||"".equals(hoyear.trim()))&&(hoarea==null||"".equals(hoarea.trim()))&&(hosale==null||"".equals(hosale.trim()))){ request.setAttribute("msg","请填入查询信息!!"); request.getRequestDispatcher("selectho.jsp").forward(request,response); } House house=new House(); house.setHotype(hotype);house.setHoaddress(hoaddress);house.setHoyear(hoyear);house.setHoarea(hoarea);house.setHosale(hosale); SqlSession sqlSession= GetSqlSession.CreateSqlSession(); HouseMapper houseMapper=sqlSession.getMapper(HouseMapper.class); House[] house1=houseMapper.selectBy(house); if(house1==null){ request.setAttribute("msg","不存在该房产信息"); request.getRequestDispatcher("selectho.jsp").forward(request,response); } else { request.setAttribute("house",house1); request.getRequestDispatcher("selecthors.jsp").forward(request,response); } sqlSession.close(); } }
22.tinghoServlet(管理员:房产停售)
package com.xxxx.servlet; import com.xxxx.mapper.HouseMapper; import com.xxxx.util.GetSqlSession; import org.apache.ibatis.session.SqlSession; 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 java.io.IOException; /** * 房产停售操作 */ @WebServlet("/tinghoServlet") public class tinghoServlet extends HttpServlet { @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8"); response.setContentType("text/html;charset=utf-8"); String hoid=request.getParameter("hoid"); SqlSession sqlSession= GetSqlSession.CreateSqlSession(); HouseMapper houseMapper=sqlSession.getMapper(HouseMapper.class); houseMapper.updateByhoid(hoid); response.getWriter().write("房产状态更新成功"); response.getWriter().close(); sqlSession.close(); } }
23.upupwdServlet(管理员:密码重置)
package com.xxxx.servlet; import com.xxxx.entity.Agent; import com.xxxx.mapper.AgentMapper; import com.xxxx.util.GetSqlSession; import org.apache.ibatis.session.SqlSession; 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 java.io.IOException; /** * 管理员密码重置中,先查询工号,判断工号是否存在 * 不存在-->返回错误信息 * 存在-->详细信息显示页面 */ @WebServlet("/upupwdServlet") public class upupwdServlet extends HttpServlet { @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8"); response.setContentType("text/html;charset=utf-8"); String agid=request.getParameter("agid"); SqlSession sqlSession= GetSqlSession.CreateSqlSession(); AgentMapper agentMapper=sqlSession.getMapper(AgentMapper.class); Agent agent=agentMapper.selectByagid(agid); if(agent==null){ request.setAttribute("msg","工号不存在"); request.getRequestDispatcher("upupwd.jsp").forward(request,response); }else{ request.getSession().setAttribute("agent",agent); response.sendRedirect("upupwdsel.jsp"); } sqlSession.close(); } }
24.upupwdServlet2(管理员:密码重置2)
package com.xxxx.servlet; import com.xxxx.mapper.LoginMapper; import com.xxxx.util.GetSqlSession; import org.apache.ibatis.session.SqlSession; 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 java.io.IOException; @WebServlet("/upupwdServlet2") public class upupwdServlet2 extends HttpServlet { @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8"); response.setContentType("text/html;charset=utf-8"); String uname=request.getParameter("uname"); SqlSession sqlSession= GetSqlSession.CreateSqlSession(); LoginMapper loginMapper=sqlSession.getMapper(LoginMapper.class); loginMapper.updateByuname(uname); response.getWriter().write("密码重置成功"); response.getWriter().close(); sqlSession.close(); } }
25.usliulanServlet(顾客:房产交易)
package com.xxxx.servlet; import com.xxxx.mapper.HouseMapper; import com.xxxx.util.GetSqlSession; import org.apache.ibatis.session.SqlSession; 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 java.io.IOException; @WebServlet("/usliulanServlet") public class usliulanServlet extends HttpServlet { @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8"); response.setContentType("text/html;charset=utf-8"); String uid= request.getParameter("uid"); String hoid= request.getParameter("hoid"); SqlSession sqlSession= GetSqlSession.CreateSqlSession(); HouseMapper houseMapper=sqlSession.getMapper(HouseMapper.class); houseMapper.updateStaByhoid(hoid,uid); response.getWriter().write("交易提交成功"); response.getWriter().close(); sqlSession.close(); } }
26.uspwdServlet(顾客和房产经理:修改密码)
package com.xxxx.servlet; import com.mysql.cj.log.Log; import com.xxxx.entity.Login; import com.xxxx.mapper.LoginMapper; import com.xxxx.util.GetSqlSession; import org.apache.ibatis.session.SqlSession; 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 java.io.IOException; @WebServlet("/uspwdServlet") public class uspwdServlet extends HttpServlet { @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8"); response.setContentType("text/html;charset=utf-8"); String uname= (String) request.getSession().getAttribute("uname"); String upwd=request.getParameter("upwd2"); SqlSession sqlSession=GetSqlSession.CreateSqlSession(); LoginMapper loginMapper=sqlSession.getMapper(LoginMapper.class); loginMapper.updateByunameupwd(uname,upwd); response.getWriter().write("修改成功"); response.getWriter().close(); sqlSession.close(); } }
27.yemianServlet(登录校验,根据登录身份跳转特定功能页面)
package com.xxxx.servlet; import com.xxxx.entity.Login; import com.xxxx.mapper.LoginMapper; import com.xxxx.util.GetSqlSession; import org.apache.ibatis.session.SqlSession; 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 java.io.IOException; /** * 登录校验:正确-->重定向到不同的功能jsp * 错误-->根据情况返回错误消息到yemian.jsp登录页面 */ @WebServlet("/yemianServlet") public class yemianServlet extends HttpServlet { @Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8"); response.setContentType("text/html;charset=utf-8"); String uname=request.getParameter("uname"); String upwd=request.getParameter("upwd"); String type=request.getParameter("type"); SqlSession sqlSession= GetSqlSession.CreateSqlSession(); LoginMapper loginMapper=sqlSession.getMapper(LoginMapper.class); Login login=loginMapper.selectByunametype(uname,type); if(login==null){ request.setAttribute("msg","用户不存在"); request.getRequestDispatcher("yemian.jsp").forward(request,response); }else{ if(upwd.equals(login.getUpwd())){ request.getSession().setAttribute("uname",uname); if(type.equals("顾客")) response.sendRedirect("user.jsp");//顾客 else if(type.equals("房产经理")) response.sendRedirect("agent.jsp");//房产经理 else response.sendRedirect("admin.jsp");//系统管理者 } else{ request.setAttribute("msg","密码错误"); request.getRequestDispatcher("yemian.jsp").forward(request,response); } } sqlSession.close(); } }
工具类
28.GetSqlSession.java
package com.xxxx.util; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import java.io.IOException; import java.io.InputStream; public class GetSqlSession { /** * 获取SqlSession对象 */ public static SqlSession CreateSqlSession() throws IOException { String resource = "mybatis-config.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); //获取SqlSession对象 SqlSession sqlSession = sqlSessionFactory.openSession(true);//关闭事物,否则要手动提交事务 return sqlSession; } }
JSP页面
29.addag.jsp(管理员:新添房产经理信息jsp)
<%-- Created by IntelliJ IDEA. User: 22466 Date: 2022/11/19 Time: 20:34 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>addag.jsp</title> </head> <%--新添房产经理信息--%> <body> <table align="center" border="1" width="800"> <form action="addagServlet" method="post" id="addagForm"> <tr> <td>工号</td> <td><input type="text" name="agid" id="agid"> </td> </tr> <tr> <td>姓名</td> <td><input type="text" name="agname" id="agname"> </td> </tr> <tr> <td>家庭住址</td> <td><input type="text" name="agaddress" id="agaddress"> </td> </tr> <tr> <td>手机</td> <td><input type="text" name="agphone" id="agphone"> </td> </tr> <tr align="center"> <td colspan="2"><button>添加</button></td> </tr> </form> </table> </body> </html>
30.addho.jsp(管理员:新添房产信息)
<%-- Created by IntelliJ IDEA. User: 22466 Date: 2022/11/19 Time: 20:33 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>addho.jsp</title> </head> <body> <table align="center" border="1" width="800"> <form action="addhoServlet" method="post" id="addhoForm"> <tr> <td>房产编号</td> <td><input type="text" name="hoid" id="hoid"> </td> </tr> <tr> <td>户型</td> <td> <input type="radio" name="hotype" value="四室两厅">四室两厅<br> <input type="radio" name="hotype" value="四室一厅">四室一厅<br> <input type="radio" name="hotype" value="三室两厅">三室两厅<br> <input type="radio" name="hotype" value="三室一厅">三室一厅<br> <input type="radio" name="hotype" value="两室两厅">两室两厅<br> <input type="radio" name="hotype" value="两室一厅">两室一厅<br> </td> </tr> <tr> <td>房产地址</td> <td><input type="text" name="hoaddress" id="hoaddress"> </td> </tr> <tr> <td>建造年份</td> <td><input type="text" name="hoyear"></td> </tr> <tr> <td>建造面积</td> <td><input type="text" name="hoarea"></td> </tr> <tr> <td>销售报价</td> <td><input type="text" name="hosale"></td> </tr> <tr> <td>销售状态</td> <td> <select name="hostatus"> <option value="在售" selected>在售</option> <option value="待售">待售</option> <option value="意向">意向</option> <option value="售出">售出</option> <option value="停售">停售</option> </select> </td> </tr> <tr align="center"> <td colspan="2"><button>添加</button></td> </tr> </form> </table> </body> </html>
31.addus.jsp(管理员:顾客审核)
<%@ page import="org.apache.ibatis.session.SqlSession" %> <%@ page import="com.xxxx.util.GetSqlSession" %> <%@ page import="com.xxxx.mapper.UserMapper" %> <%@ page import="com.xxxx.entity.User" %><%-- Created by IntelliJ IDEA. User: 22466 Date: 2022/11/19 Time: 20:33 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>addus.jsp</title> </head> <%--管理员:顾客审核,再顾客表中,找到usstatus=0的顾客,意味着注册但没审核通过的,点击顾客姓名,可以查询详信息--%> <body> <table width="400" align="center"> <tr> <td>姓名</td> </tr> <% SqlSession sqlSession= GetSqlSession.CreateSqlSession(); UserMapper userMapper=sqlSession.getMapper(UserMapper.class); User[] users=userMapper.selectusstatus("0"); for (User user:users){ %> <tr> <td><a href="addus2.jsp?usidnum=<%=user.getUsidnum()%>"><%=user.getUsname()%></a></td> </tr> <% } %> </table> </body> </html>
32.addus2.jsp(管理员:顾客审核中顾客详细信息显示)
<%@ page import="org.apache.ibatis.session.SqlSession" %> <%@ page import="com.xxxx.util.GetSqlSession" %> <%@ page import="com.xxxx.mapper.UserMapper" %> <%@ page import="com.xxxx.entity.User" %><%-- Created by IntelliJ IDEA. User: 22466 Date: 2022/11/26 Time: 19:01 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>addus2.jsp</title> </head> <%--管理员审核顾客中:显示详细的顾客信息--%> <body> <table width="800" align="center"> <% String usidnum=request.getParameter("usidnum");//身份证号 SqlSession sqlSession= GetSqlSession.CreateSqlSession(); UserMapper userMapper=sqlSession.getMapper(UserMapper.class); User user=userMapper.selectByusidnum(usidnum); %> <tr> <td>顾客ID</td><td>姓名</td><td>性别</td><td>身份证号</td><td>手机</td><td>家庭住址</td><td></td> </tr> <tr> <td><%=user.getUsid()%></td><td><%=user.getUsname()%></td><td><%=user.getUssex()%></td><td><%=user.getUsidnum()%></td> <td><%=user.getUsphone()%></td><td><%=user.getUsaddress()%></td><td><a href="addusServlet?usidnum=<%=user.getUsidnum()%>">通过审核</a></td> </tr> </table> </body> </html>
33.admin.jsp(管理员总功能选择页面)
<%-- Created by IntelliJ IDEA. User: 22466 Date: 2022/11/19 Time: 19:28 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>admin.jsp</title> </head> <%--系统管理者功能页 其中房产授权和停售房产都要先查看所有房产信息然后点击地址再进行不同的操作,可以再后面再分开操作 --%> <body> <a href="addho.jsp">新添房产信息</a><br> <a href="shouho.jsp">房产授权</a><br> <a href="shouho.jsp">停售房产</a><br> <a href="selectho.jsp">查询房产</a><br> <a href="addus.jsp">顾客审核</a><br> <a href="addag.jsp">新增房产经理人</a><br> <a href="upupwd.jsp">密码重置</a> </body> </html>
34.agent.jsp(房产经理总功能选择页面)
<%@ page import="org.apache.ibatis.session.SqlSession" %> <%@ page import="com.xxxx.util.GetSqlSession" %> <%@ page import="com.xxxx.mapper.AgentMapper" %> <%@ page import="com.xxxx.entity.Agent" %><%-- Created by IntelliJ IDEA. User: 22466 Date: 2022/11/19 Time: 19:28 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>agent.jsp</title> </head> <%--房产经理管理页--%> <body> <% String agname= (String) request.getSession().getAttribute("uname"); SqlSession sqlSession= GetSqlSession.CreateSqlSession(); AgentMapper agentMapper=sqlSession.getMapper(AgentMapper.class); Agent agent=agentMapper.selectByagname(agname); %> <a href="agifo.jsp?agid=<%=agent.getAgid()%>">查看个人信息</a><br> <a href="agliulan.jsp?agid=<%=agent.getAgid()%>">浏览房产信息</a><br> <a href="agjiaoyi.jsp?agid=<%=agent.getAgid()%>">房产交易</a><br> <a href="agliulan.jsp?agid=<%=agent.getAgid()%>">查询房产</a><br> <a href="uspwd.jsp?uname=<%=agname%>">修改个人密码</a><br> </body> </html>
35.agifo.jsp(房产经理查询个人信息)
<%@ page import="org.apache.ibatis.session.SqlSession" %> <%@ page import="com.xxxx.util.GetSqlSession" %> <%@ page import="com.xxxx.mapper.AgentMapper" %> <%@ page import="com.xxxx.entity.Agent" %><%-- Created by IntelliJ IDEA. User: 22466 Date: 2022/11/29 Time: 14:03 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>agifo.jsp</title> </head> <%--经理查询个人信息--%> <body> <% String agid= request.getParameter("agid"); SqlSession sqlSession= GetSqlSession.CreateSqlSession(); AgentMapper agentMapper=sqlSession.getMapper(AgentMapper.class); Agent agent=agentMapper.selectByagid(agid); %> <table align="center" width="800"> <tr> <td>工号</td><td>姓名</td><td>家庭住址</td><td>手机</td> </tr> <tr> <td><%=agent.getAgid()%></td><td><%=agent.getAgname()%></td><td><%=agent.getAgaddress()%></td><td><%=agent.getAgphone()%></td> </tr> </table> </body> </html>
36.agjiaoyi.jsp(房产经理房产交易)
<%@ page import="org.apache.ibatis.session.SqlSession" %> <%@ page import="com.xxxx.util.GetSqlSession" %> <%@ page import="com.xxxx.mapper.HouseMapper" %> <%@ page import="com.xxxx.entity.House" %><%-- Created by IntelliJ IDEA. User: 22466 Date: 2022/11/29 Time: 14:49 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>agjiaoyi.jsp</title> </head> <%--房产经理房产交易功能:查看意向的房产信息,点击地址可以查看详细信息--%> <body> <table align="center" width="800"> <tr> <td>房产编号</td><td>房产地址</td><td>销售报价</td><td>顾客id</td> </tr> <% String agid=request.getParameter("agid"); SqlSession sqlSession= GetSqlSession.CreateSqlSession(); HouseMapper houseMapper=sqlSession.getMapper(HouseMapper.class); House[] houses=houseMapper.selectBysta(); for (House house:houses ) { %> <tr> <td><%=house.getHoid()%></td><td><a href="agjiaoyirs.jsp?hoid=<%=house.getHoid()%>&uid=<%=house.getUid()%>"><%=house.getHoaddress()%></a></td><td><%=house.getHosale()%></td><td><%=house.getUid()%></td> </tr> <% } %> </table> </body> </html>
37.agjiaoyirs.jsp(房产经理:房产交易详细信息显示)
<%@ page import="org.apache.ibatis.session.SqlSession" %> <%@ page import="com.xxxx.util.GetSqlSession" %> <%@ page import="com.xxxx.mapper.HouseMapper" %> <%@ page import="com.xxxx.entity.House" %> <%@ page import="com.xxxx.mapper.UserMapper" %> <%@ page import="com.xxxx.entity.User" %><%-- Created by IntelliJ IDEA. User: 22466 Date: 2022/11/29 Time: 15:02 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>agjiaoyirs.jsp</title> </head> <%--房产经理房产交易详细信息--%> <body> <table align="center" width="800"> <tr> <td>房产编号</td><td>户型</td><td>房产地址</td><td>建造年份</td><td>建造面积</td><td>销售报价</td><td>销售状态</td> <td>顾客ID</td><td>姓名</td><td>性别</td><td>身份证号</td><td>手机</td><td>家庭住址</td><td>操作</td> </tr> <% String hoid=request.getParameter("hoid"); String uid=request.getParameter("uid"); SqlSession sqlSession= GetSqlSession.CreateSqlSession(); UserMapper userMapper=sqlSession.getMapper(UserMapper.class); User user=userMapper.selectByusid(uid); HouseMapper houseMapper=sqlSession.getMapper(HouseMapper.class); House house=houseMapper.selectByhoid(hoid); %> <tr> <td><%=house.getHoid()%></td><td><%=house.getHotype()%></td><td><%=house.getHoaddress()%></td><td><%=house.getHoyear()%></td><td><%=house.getHoarea()%></td><td><%=house.getHosale()%></td><td><%=house.getHostatus()%></td> <td><%=user.getUsid()%></td> <td><%=user.getUsname()%></td><td><%=user.getUssex()%></td><td><%=user.getUsidnum()%></td><td><%=user.getUsphone()%></td><td><%=user.getUsaddress()%></td> <td><a href="agjiaoyiServlet?hoid=<%=house.getHoid()%>">交易</a></td> </tr> </table> </body> </html>
38.agliulan.jsp(房产经理:浏览自己管理的房产信息)
<%@ page import="org.apache.ibatis.session.SqlSession" %> <%@ page import="com.xxxx.util.GetSqlSession" %> <%@ page import="com.xxxx.mapper.AgentMapper" %> <%@ page import="com.xxxx.entity.Agent" %> <%@ page import="com.xxxx.mapper.HouseMapper" %> <%@ page import="com.xxxx.entity.House" %><%-- Created by IntelliJ IDEA. User: 22466 Date: 2022/11/29 Time: 14:08 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>agliulan.jsp</title> </head> <%--房产经理浏览房产信息:只能浏览自己管理的房产信息--%> <body> <table align="center" width="800"> <tr> <td>房产编号</td><td>户型</td><td>房产地址</td><td>建造年份</td><td>建造面积</td><td>销售报价</td><td>销售状态</td> </tr> <% String agid=request.getParameter("agid"); SqlSession sqlSession= GetSqlSession.CreateSqlSession(); HouseMapper houseMapper=sqlSession.getMapper(HouseMapper.class); House[] houses=houseMapper.selectByaid(agid); for (House house : houses) { %> <tr> <td><%=house.getHoid()%></td><td><%=house.getHotype()%></td><td><%=house.getHoaddress()%></td><td><%=house.getHoyear()%></td><td><%=house.getHoarea()%></td><td><%=house.getHosale()%></td><td><%=house.getHostatus()%></td> </tr> <% } %> </table> </body> </html>
39.register.jsp(用户注册jsp)
<%-- Created by IntelliJ IDEA. User: 22466 Date: 2022/11/27 Time: 17:20 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>register.jsp</title> </head> <%--用户注册页面--%> <body> <table align="center" width="800"> <form method="post" action="registerServlet" name="registerForm" id="registerForm"> <tr> <td>身份证号</td> <td><input type="text" name="usidnum" id="usidnum"> </td> </tr> <tr> <td>姓名</td> <td><input type="text" name="usname" id="usname"></td> </tr> <tr> <td>性别</td> <td><input type="radio" name="ussex" value="男">男 <input type="radio" name="ussex" value="女">女 </td> </tr> <tr> <td>手机号</td> <td><input type="text" name="usphone" id="usphone"> </td> </tr> <tr> <td>家庭住址</td> <td><input type="text" name="usaddress" id="usaddress"></td> </tr> <tr align="center"> <td colspan="2"><button type="button" id="tijiao">提交</button> </td> </tr> </form> </table> <script type="text/javascript" src="js/jquery-3.6.1.js"></script> <script type="text/javascript"> $("#tijiao").click(function (){ // 身份证验证18位+手机号验证11位 var usidnum=$("#usidnum").val(); var usphone=$("#usphone").val(); var reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/ ; var find=0; if(isNaN(usphone)||usphone.length!=11) { alert("手机号有误");find=1; } if(!reg.test(usidnum)) { alert("身份证有误");find=1; } if(find==0) $("#registerForm").submit(); }) </script> </body> </html>
40.selectho.jsp(管理员:查询房产信息)
<%-- Created by IntelliJ IDEA. User: 22466 Date: 2022/11/19 Time: 20:33 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>selectho.jsp</title> </head> <%--管理员查询房产信息--%> <body> <table align="center" width="400" > <form method="post" action="selecthoServlet"> <tr> <td>户型</td> <td><input type="text" name="hotype"> </td> </tr> <tr> <td>地址</td> <td><input type="text" name="hoaddress"> </td> </tr> <tr> <td>建造年份</td> <td><input type="text" name="hoyear"> </td> </tr> <tr> <td>建造面积</td> <td><input type="text" name="hoarea"> </td> </tr> <tr> <td>销售报价</td> <td><input type="text" name="hosale"> </td> </tr> <tr align="center"> <td colspan="2"><span style="font-size: 16px;color: red">${msg}</span> </td> </tr> <tr align="center"> <td colspan="2"><button>查询</button></td> </tr> </form> </table> </body> </html>
41.selecthoone.jsp(管理员:查询房产信息中的详细信息)
<%@ page import="org.apache.ibatis.session.SqlSession" %> <%@ page import="com.xxxx.util.GetSqlSession" %> <%@ page import="com.xxxx.mapper.HouseMapper" %> <%@ page import="com.xxxx.entity.House" %><%-- Created by IntelliJ IDEA. User: 22466 Date: 2022/11/19 Time: 23:19 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>selecthoone.jsp</title> </head> <%--点击地址,查询房户详情信息--%> <body> <table align="center" width="800" border="1"> <% String hoid=request.getParameter("hoid"); SqlSession sqlSession= GetSqlSession.CreateSqlSession(); HouseMapper houseMapper=sqlSession.getMapper(HouseMapper.class); House house=houseMapper.selectByhoid(hoid); request.getSession().setAttribute("hoid",hoid);//向Servlet传递房产信息 %> <tr> <td>房产编号</td><td>户型</td><td>房产地址</td><td>建造年份</td><td>建造面积</td><td>销售报价</td><td>销售状态</td><td>操纵</td> </tr> <tr><td><%=house.getHoid()%></td><td><%=house.getHotype()%></td><td><%=house.getHoaddress()%></td><td><%=house.getHoyear()%></td><td><%=house.getHoarea()%></td><td><%=house.getHosale()%></td><td><%=house.getHostatus()%></td><td><a href="tinghoServlet?hoid=<%=hoid%>">停售</a> </td></tr> </table> <form method="post" action="selecthoone"> 输入房产经理姓名:<input type="text" name="agname"><br> <span style="font-size: 16px;color: red">${msg}</span> <button>授权</button> </form> </body> </html>
42.selecthors.jsp(管理员:查询房产信息结果)
<%@ page import="com.xxxx.entity.House" %><%-- Created by IntelliJ IDEA. User: 22466 Date: 2022/11/19 Time: 22:02 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>selecthors.jsp</title> </head> <%--管理员查询房产信息显示::结果--%> <body> <table align="center" width="800" border="1"> <tr> <td>房产编号</td><td>户型</td><td>房产地址</td><td>建造年份</td><td>建造面积</td><td>销售报价</td><td>销售状态</td> </tr> <% House[] houses= (House[]) request.getAttribute("house"); for (House house:houses) { %> <tr><td><%=house.getHoid()%></td><td><%=house.getHotype()%></td><td><%=house.getHoaddress()%></td><td><%=house.getHoyear()%></td><td><%=house.getHoarea()%></td><td><%=house.getHosale()%></td><td><%=house.getHostatus()%></td></tr> <% } %> </table> </body> </html>
43.shouho.jsp(房产授权)
<%@ page import="org.apache.ibatis.session.SqlSession" %> <%@ page import="com.xxxx.util.GetSqlSession" %> <%@ page import="com.xxxx.mapper.HouseMapper" %> <%@ page import="com.xxxx.entity.House" %><%-- Created by IntelliJ IDEA. User: 22466 Date: 2022/11/19 Time: 22:57 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>shouho.jsp</title> </head> <%--房产授权:浏览所有的在售房产信息,显示序号、地址、价格,点击地址可看详情--%> <body> <table align="center" width="800" border="1"> <tr> <td>房产编号</td><td>房产地址</td><td>销售报价</td><td>销售状态</td> </tr> <% SqlSession sqlSession= GetSqlSession.CreateSqlSession(); HouseMapper houseMapper=sqlSession.getMapper(HouseMapper.class); House[] houses=houseMapper.selectAll(); for (House house:houses) { %> <tr><td><%=house.getHoid()%></td><td><a href="selecthoone.jsp?hoid=<%=house.getHoid()%>"><%=house.getHoaddress()%><a/></td><td><%=house.getHosale()%></td></tr> <% } %> </table> </body> </html>
44.upupwd.jsp(管理员:密码重置)
<%-- Created by IntelliJ IDEA. User: 22466 Date: 2022/11/19 Time: 20:34 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>upupwd.jsp</title> </head> <%--管理员密码重置 工号查询->点击重置:123456 --%> <body> <form action="upupwdServlet" method="post"> 输入房产经理的工号id:<input type="text" name="agid"><br> <span style="font-size: 16px;color: red" name="msg">${msg}</span><br> <button>查询</button> </form> </body> </html>
45.upupwdsel.jsp(管理员:密码重置查询详细信息)
<%@ page import="com.xxxx.entity.Agent" %><%-- Created by IntelliJ IDEA. User: 22466 Date: 2022/11/26 Time: 17:16 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>upupwdsel.jsp</title> </head> <%--管理员重置密码,查到工号对应的经理信息,点击重置可以重置密码--%> <body> <table align="center" border="1" width="800"> <tr> <td>工号</td><td>姓名</td><td>家庭住址</td><td>手机</td><td>密码重置</td> </tr> <tr> <td>${agent.getAgid()}</td><td>${agent.getAgname()}</td><td>${agent.getAgaddress()}</td><td>${agent.getAgphone()}</td><td><a href="upupwdServlet2?uname=${agent.getAgname()}">密码重置</a></td> </tr> </table> </body> </html>
46.user.jsp(顾客总功能选择页面)
<%-- Created by IntelliJ IDEA. User: 22466 Date: 2022/11/19 Time: 19:28 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>user.jsp</title> </head> <%--顾客功能页--%> <body> <% String uname=(String) request.getSession().getAttribute("uname"); %> <table align="center" width="400"> <a href="usinfo.jsp?usname=<%=uname%>">查看个人信息</a><br> <a href="uspwd.jsp?uname=<%=uname%>">修改个人密码</a><br> <a href="usliulan.jsp?usname=<%=uname%>">浏览房产信息</a><br> <a href="usliulan.jsp?usname=<%=uname%>">购买房产</a><br> </table> </body> </html>
47.usinfo.jsp(顾客查看个人信息)
<%@ page import="org.apache.ibatis.session.SqlSession" %> <%@ page import="com.xxxx.util.GetSqlSession" %> <%@ page import="com.xxxx.mapper.UserMapper" %> <%@ page import="com.xxxx.entity.User" %><%-- Created by IntelliJ IDEA. User: 22466 Date: 2022/11/28 Time: 21:53 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>usinfo.jsp</title> </head> <%--顾客功能:查看个人信息页面--%> <body> <% String usname=request.getParameter("usname"); SqlSession sqlSession= GetSqlSession.CreateSqlSession(); UserMapper userMapper=sqlSession.getMapper(UserMapper.class); User user=userMapper.selectByusname(usname); %> <table align="center" width="800"> <tr> <td>顾客ID</td><td>姓名</td><td>性别</td><td>身份证号</td><td>手机</td><td>家庭住址</td> </tr> <tr><td><%=user.getUsid()%></td> <td><%=user.getUsname()%></td><td><%=user.getUssex()%></td><td><%=user.getUsidnum()%></td><td><%=user.getUsphone()%></td><td><%=user.getUsaddress()%></td> </tr> </table> </body> </html>
48.usliulan.jsp(顾客浏览房产信息)
<%@ page import="org.apache.ibatis.session.SqlSession" %> <%@ page import="com.xxxx.util.GetSqlSession" %> <%@ page import="com.xxxx.mapper.HouseMapper" %> <%@ page import="com.xxxx.entity.House" %> <%@ page import="com.xxxx.mapper.UserMapper" %> <%@ page import="com.xxxx.entity.User" %><%-- Created by IntelliJ IDEA. User: 22466 Date: 2022/11/29 Time: 13:05 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>usliulan.jsp</title> </head> <%--顾客浏览房产信息--%> <body> <table align="center" width="800"> <tr> <td>房产编号</td><td>户型</td><td>房产地址</td><td>建造年份</td><td>建造面积</td><td>销售报价</td><td>销售状态</td><td>操作</td> </tr> <% SqlSession sqlSession= GetSqlSession.CreateSqlSession(); UserMapper userMapper=sqlSession.getMapper(UserMapper.class); User user=userMapper.selectByusname(request.getParameter("usname")); HouseMapper houseMapper=sqlSession.getMapper(HouseMapper.class); House[] houses=houseMapper.selectAllus(); for (House house:houses) { %> <tr> <td><%=house.getHoid()%></td><td><%=house.getHotype()%></td><td><%=house.getHoaddress()%></td><td><%=house.getHoyear()%></td><td><%=house.getHoarea()%></td><td><%=house.getHosale()%></td><td><%=house.getHostatus()%></td> <td><a href="usliulanServlet?hoid=<%=house.getHoid()%>&uid=<%=user.getUsid()%>">交易</a></td> </tr> <% } %> </table> </body> </html>
49.uspwd.jsp(顾客、房产经理修改个人密码)
<%@ page import="org.apache.ibatis.session.SqlSession" %> <%@ page import="com.xxxx.util.GetSqlSession" %> <%@ page import="com.xxxx.mapper.LoginMapper" %> <%@ page import="com.xxxx.entity.Login" %><%-- Created by IntelliJ IDEA. User: 22466 Date: 2022/11/28 Time: 22:00 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>uspwd.jsp</title> </head> <%--顾客修改个人密码页面,要判断:输入的密码是否和旧密码相同--%> <body> <% String uname=request.getParameter("uname"); request.getSession().setAttribute("uname",uname); SqlSession sqlSession= GetSqlSession.CreateSqlSession(); LoginMapper loginMapper=sqlSession.getMapper(LoginMapper.class); Login login=loginMapper.selectByuname(uname); %> <form action="uspwdServlet" method="post" id="uspwdForm"> 输入旧密码:<input type="password" name="upwd1" id="upwd1"><br> 输入新密码:<input type="password" name="upwd2" id="upwd2"><br> 确认新密码:<input type="password" name="upwd3" id="upwd3"><br> <button type="button" id="uspwdBtn">修改</button> </form> <script type="text/javascript" src="js/jquery-3.6.1.js"></script> <script type="text/javascript"> $("#uspwdBtn").click(function (){ var upwd1=$("#upwd1").val(); var upwd2=$("#upwd2").val(); var upwd3=$("#upwd3").val(); if(upwd1 != <%=login.getUpwd()%>)alert("旧密码有误"); else { if(upwd2 != upwd3) alert("两次输入的新密码不相同"); else $("#uspwdForm").submit(); } }) </script> </body> </html>
50.yemian.jsp(用户登录页面)
<%-- Created by IntelliJ IDEA. User: 22466 Date: 2022/11/19 Time: 18:53 To change this template use File | Settings | File Templates. --%> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>yemian.jsp</title> </head> <%--用户登录页面:选择登录身份,账户密码校验,跳转指定的功能页面--%> <body> <h2 align="center" >用户登录页面</h2> <table align="center" width="400" > <form id="yemianForm" method="post" action="yemianServlet"> <tr> <td> 账号:<input type="text" name="uname"> </td> </tr> <tr> <td>密码:<input type="password" name="upwd"></td> </tr> <tr> <td>身份:<input type="radio" name="type" value="顾客" checked>顾客 <input name="type" type="radio" value="房产经理">房产经理 <input name="type" type="radio" value="系统管理员">系统管理员</tr></td><tr> <td><span style="font-size: 16px;color: red" >${msg}</span></td></tr> <tr> <td> <button>登录</button> <button type="button" onclick="register()">注册</button> </td> </tr> </form> </table> <script type="text/javascript" src="js/jquery-3.6.1.js"></script> <script type="text/javascript"> function register(){ window.location="register.jsp"; } </script> </body> </html>
三、
java.lang.NullPointerException - yuanse - 博客园 (cnblogs.com)
房产信息管理系统--配置文件+工具类+实体类+登录选择页面+登录校验 - yuanse - 博客园 (cnblogs.com)
房产信息管理系统--系统管理员功能实现 - yuanse - 博客园 (cnblogs.com)
房产信息管理系统--注册功能实现 - yuanse - 博客园 (cnblogs.com)
浙公网安备 33010602011771号