1、毕业设计房屋租赁信息管理系统学生姓名学 号学 院计算机与信息工程学院专 业计算机科学与技术班 级指导教师职 称湖 南 商 学 院2013年5月湖南商学院本科毕业设计(论文)诚信声明本人郑重声明:所呈交的本科毕业设计(论文),是本人在指导老师的指导下,独立进行研究工作所取得的成果,成果不存在知识产权争议,除文中已经注明引用的内容外,本论文不含任何其他个人或集体已经发表或撰写过的作品成果。对本文的研究做出重要贡献的个人和集体均已在文中以明确方式标明。本人完全意识到本声明的法律结果由本人承担。 本科毕业设计(论文)作者签名: 年 月 日内容摘要随着互联网络的发展,现实生活中各行各业都向着网络化发展,
2、其中房屋出租也由传统的张贴广告发展到互联网。当下,经济快速发展,越来越多的人对房屋的租赁有更大的需求,如何高效快速的获取有效的房屋信息,又不通过第三方中介通过收取手续费来提供信息,是本系统开发的意义所在。本系统提供了出租,求租,留言和查询等几个主要功能。普通游客通过访问该网站可以浏览该网站其他注册用户发布的出租和求租信息。如果想通过本系统发布免费的出租,求租信息需要注册成为该网站的会员。发布后的信息,若通过管理员的审核,将在前台页面显示,其他浏览该网站的用户可以看到该条信息。本系统是一个基于JAVA EE开发的WEB系统,采用B/S结构,使用SERVLET+JSP开发模式。由于该网站是小型应用
3、网站,所以数据库使用的是MYSQL,其中前台界面使用了CSS+DIV实现网页的布局,还用到了当下流行的前台框架bootstrap。关键词房屋租赁;JSP;SERVLET;B/S;WEB系统ABSTRACTAlong with the development of the Internet, all walks of life are all in real life to network development, including rental housing also has developed from a traditional AD posted to the Internet. A
4、t present, rapid economic development, more and more people have a greater demand on housing rental, how efficient and rapid access to effective information, and not through a third party mediation by charging fees to provide information, is the meaning of this system development.This system provide
5、s a rental, inquiry, message and the query and so on several major functions. Regular visitors by accessing the website of other registered users can browse the web site, rental and price information. If you want to release free rent by this system, soliciting the information need to be registered a
6、s members of the site. After the release of information, if through the administrator of the audit, will be at the front desk page shows, other users can browse the site to see this message.This system USES the traditional SERVLET + JSP development mode. Because the site is a small application, so u
7、sing a MYSQL database, including the front desk interface using a CSS + DIV realization of web page layout, also use the bootstrap current popular front desk framework.KEY WORDSHouse lease; The JSP; The Servlet; B/S; WEB system目 录1. 绪论.11.2 系统开发背景与意义.11.2 系统的设计过程. .21.3 本文主要内容和章节安排.22. 系统需求分析.32.1 用
8、户角色分析.32.2 功能需求分析.52.2 数据需求分析.73. 系统总体设计.83.1 总体框架.83.2 开发平台与语言.83.3 软件结构.103.4 数据库逻辑设计.104. 系统详细设计.124.1 数据库的设计与实现.124.2 功能模块的设计与实现.174.2.1 登录注册模块.174.2.2 租赁信息发布模块.184.2.3 租赁信息查询模块.204.2.4 租赁信息审核模块.214.2.5 用户中心管理模. .225. 系统测试. .235.1 Tomcat服务器的检测.235.2 检测MySQL数据库是否连接成功.245.3 用户管理功能测试.255.4 房屋租赁信息发布
9、功能测试.265.5 房屋租赁信息查询功能测试.26总结与展望.28参考文献.29致谢.31房屋租赁信息管理系统1. 绪 论本系统是一个简单的WEB房屋租赁管理系统,网民可以通过本网站获取系统用户发布的出租房屋信息和求租房屋信息。本系统与其他大型房屋租赁管理系统网站的最大区别就是不通过第三方中介提供房源信息,减免了中介费用,是真正从用户角度出发,为用户利益考虑的房租租赁管理系统。1.1 系统开发背景与意义随着整个社会经济的进步,城市现代化建设步伐不断加快,现在房屋租赁已开始转变为社会生活的一个重要组成部分。所以无论是房屋出租抑或是房屋求租,现在都面临着巨大的需求。 现在社会上存在这大量的房屋中
10、介现象,但是不论是对于房东来说还是对于求租者来说,面对各种各样的的中介公司让人感到无从下手,大量的复杂的房产信息让他们感受到很彷徨,甚至迷茫,难以快速、准确地从众多房屋信息中找到比较适合自己的房屋信息。其次,出租和承租双方在进行交易的时候还要通过中介,这样使得这个交易过程更加冗长繁琐。而且,中介公司一般会收取一定比例的中介费用,这给房屋租赁者带来了很多大的负担。所以,我们需要提供一些没有中介公司参与其中的房屋出租者与房屋求租者的房屋信息,以此来弥补中介公司的很多不足。以房屋租赁信息管理系统作为毕业设计的题目的意义在于,伴随着经济的发展,越来越多的人开始从农村涌进城市谋生,当前住房问题越来越紧张
11、,人们对住房信息的需求越来越庞大,集中、有效、详细的住房信息能够为广大房屋需求者提供方便。因此,随着网络的发展,互联网开始走进千家万户,现在人们的生活基本上离不开电脑。人们日常生活中的各种需求也能通过互联网得到供应。各种网站的出现,与房屋租赁信息有关的版面越来越受到大家的欢迎。我选择这个课题,是因为这个系统与我们的日常生活息息相关。人们的生活离不开衣食住行,所以住房问题是我们不可逃避的话题,同时也是我们比较熟悉的问题,从生活需求出发,使得我的毕业设计更具有现实意义。比如随着我们毕业走向社会,我们首先要面对的就是住房问题,但是在人生地不熟的环境中,很难得到实用可靠的住房信息。所以如果有个集中有效
12、的途径获得房源信息,能给我们的生活带来极大的方便。房屋租赁系统,能给需要租房的人提供丰富的房源信息,从这里选择适合自己的房子居住。1.2 系统的设计过程本课题的开发要求基于WEB数据库来实现,通过查找大量资料,找出本类型网站的基本需求,然后从分析用户身份认证方面的问题出发,结合本次毕业设计的相关要求写出需求分析;其次,综合运用以前所学的相关知识(包括软件工程、计算机网络安全等),选择所熟悉的开发工具和开发平台(如myeclipse,tomcat等)进行本毕业设计的开发;在设计中以需求分析为基础,按照软件工程的思想,将需求分析转化为功能需求,搭建本系统的基本框架,写出系统的主要实现方法,在开发的
13、同时进行相关功能的完整性测试。最后,在系统开发完毕后,对系统进行整体的功能测试,找出其中存在的问题,进行修改和完善。1.3 本文主要内容和章节安排本文分为系统需求分析、总体设计、系统详细设计、系统测试和总结等五个主要部分,章节安排为:第1章绪论,主要介绍系统设计的背景和意义以及本课题的设计过程。第2章系统系统分析,主要是进行用户角色分析、功能需求分析和数据需求分析,获取房屋租赁管理系统开发的业务流程,确定不同系统角色对系统功能的需求,整理相关信息,确定系统的开发范围。第3章系统总体设计,主要是对系统的总体框架和数据库进行设计,并介绍本系统开发采用的开发平台和语言。第4章系统详细设计与实现,主要
14、是表述数据库和功能模块的详细设计。第5章系统测试,主要是对系统的主要功能模块的实现进行测试,验证其是否能完成相应的功能。第6章总结与展望,主要是对本系统的完成情况、不足之处进行总结。2. 系统构成与工作原理鉴于当前房租租赁信息管理系统的发展现状与未来趋势,本系统旨在提供一个能及时发布、查询房屋租赁信息的平台。考虑到房屋租赁系统信息发布实时性与便捷性,本系统采用B/S模式进行开发。本章将从用户角色分析、功能需求分析和数据需求分析三个主要方面进行系统需求分析。2.1 用户角色分析我们通常描述系统和参与者之间的相互作用是通过用例图来实现。用例图是从用户的角度出发来对如何使用系统的一种描述方式。这里我
15、们先解释几个用例图中用到的名词,见下图2.1所示。图2.1 用例图名词介绍通过分析,本房屋租赁信息管理系统的角色可以分为三类,分别为普通用户,系统会员和系统管理员。不同的角色在系统中有不同的权限和功能。该房屋租赁信息管理系统的管理员,注册会员和普通用户的用例图分别如下图所示。任何普通用户即通过浏览器浏览该房屋租赁体统但没有注册成为该系统用户的游客,可以浏览、查看经过审核的所有房屋租赁信息。 图2.1 普通用户用例图系统会员,即已注册成为该系统用户的网民,通过登录成功该系统,可以发布个人的房屋租赁信息。图2.2 注册用户用例图拥有系统管理员身份的人,登录该系统后可以对系统注册用户发布的出租和求租
16、信息进行审核,只有通过管理员审核后的租赁信息才会在前台显示,其他用户才能得到该租赁信息的详细情况。图2.3 管理员用例图2.2 功能需求分析在本房屋租赁信息管理系统中,从实际出发,通过分析,确定本系统应该具备登录注册功能,房屋租赁信息发布功能,房屋租赁信息查询功能,房屋租赁信息审核功能,用户个人中心管理功能等五个基本功能模块。软件的主要模块和功能如下:(1)登录注册要想使用该房屋租赁系统的功能,必须注册成为该系统的用户。注册时用户需要选择一个头像,填写“用户名”,“密码”,“联系方式”,“性别”和“联系方式”等基本信息。其中用户名是用户用来登录该系统的帐号,具有唯一性,因此在用户注册时系统需要
17、检查此用户名是否已经存在。只有成功登录该系统的用户才能免费发布房屋租赁信息,用户登录时需要填写“用户名”和“密码”两个验证信息。(2)房屋租赁信息发布房屋租赁类型分为“出租”、“整组”、“合租”三种。用户在发布房屋租赁信息时需要选择发布信息的类型。发布租赁信息需要填写的信息有“标题”、“期望租金”、“期望地点”,其中发布“出租”信息还可以选择提供“房屋设备”、“房屋简介”、“房屋图片”等详细情况,发布“求租”信息同样可以附加“求租要求”、“个人图片”等信息,以便其他用户更加了解你的需求和信息。用户发布的租赁信息需要通过后台管理员的审核才能供其他用户使用。(3)房屋租赁信息查询通过“房屋租赁信息
18、查询”功能,用户可以根据不同的查询条件来过滤需要的租赁信息。本系统提供的查询条件包括根据“租赁类型”查询,根据“房屋地址”查询,根据“租赁信息标题”查询。在得到的租赁信息列表页面用户点击某条信息的标题,进入该信息的详细信息界面,查看该租赁信息的详情,并且可以针对该条信息留言。(4)房屋租赁信息审核系统管理员的主要工作就是审核前台用户发布的房屋租赁信息。所以“房屋租赁信息审核”功能是系统管理员才能操作的。管理员通过登录后台管理系统,审核前台用户提交的房屋租赁信息。只有通过了管理员审核的信息才能在系统前台界面显示,才能被其他浏览该系统的用户看见。(5)用户个人中心管理通过“用户个人中心管理”模块,
19、系统用户可以修改个人基本信息和登录密码,其中个人基本信息包括修改“头像”,“用户名”,“性别”,“联系方式”等。在用户个人中心界面按照“发布时间”逆序列出用户所有的租赁信息,包括信息的“标题”,“期望租金”,“期望地点”,“审核状态”等,同时提供了删除租赁信息的操作,用户可以删除已经不需要的租赁信息。此删除操作为数据库的物理删除,意味着用户本人也不能再查看该条信息的情况。系统主要功能模块之间的关系通过系统功能结构图来反应,通过系统功能结构图简单明了的表现出它们的相互关系。系统功能需求如图2.4所示。图4 系统功能结构图 2.3 数据需求分析通过对系统的功能需求分析,我们可以初步得出该系统所需的
20、数据库表的设计情况。该系统将有六张表,分别为角色表,用户表,出租房屋表,求租房屋表,求租类型表和留言表。其中角色表包括两个角色,为普通会员和管理员;求租类型表分为整组跟合租两种。出租表,求租表,用户表和留言表之间的关系为:一个用户可以发布一条或多条出租求租信息,同时也可正对他人发布的信息,进行留言。一个用户可以针对一条信息发布多条留言。系统数据库表的E-R图如下图2.5所示。图2.5 数据库E-R图3. 系统总体设计3.1 总体框架本系统是基于WEB的房屋租赁信息管理系统,系统采用当下流行的B/S构架。在B/S结构下,用户界面可以通过浏览器实现,一部分的事务逻辑在前端实现,主要事务逻辑在服务器
21、端实现。浏览器通过Web服务器同数据库进行数据交互。B/S模式的体系结构的原理如图3.1所示。图3.1 B/S模式体系结构原理图3.2 开发平台与语言在本系统的开发中,选用JAVA作为开发语言,采用了MyEclipse作为系统编程工具,Tomcat作为web服务器,JSP作为系统前端开发语言,MySQL作为数据库。其中前端使用到了bootstrap框架,使用了AJAX异步访问技术。开发本系统的软硬件基本配置如表3.2所示:表3.2 系统的软硬件基本配置硬件配置软件配置服务器端处理器:Intel Pentium 4 2.4G(R);内存:1G;硬盘:80GB;显示器:1366 x 768 分辨率
22、,32位色;输入设备:鼠标、键盘。操作系统:Windows 7;数据库:MySQL;开发工具包:JDK1.6.0;JSP服务器:Tomcat6.0;客户端处理器:Intel Pentium 4 1.8G;内存:1G;显示器:1366 x 768 分辨率,32位色;输入设备:鼠标、键盘。操作系统:Windows XP浏览器:Google Chrome 26.0.1410.64 m 。本系统采用的系统平台及工具说明如下:本系统开发语言选用Java,JSP,所以采用MyEclipse,Tomcat为主要开发工具,MySQL数据库管理系统与Windows 7操作系统进行。Tomcat是一个免费的web
23、服务器,能自动检测到部署在其webapp目录下的打成war包的项目,并将其解压。所以部署应用程序在tomcat下很容易。MyEclipse可以快速的部署项目到Tomcat服务器。由于B/S结构的使用越来越多,特别是由需求推动了AJAX技术的发展,它的程序也能在客户端电脑上进行部分处理,从而大大的减轻了服务器的负担;并增加了交互性,能进行局部实时刷新。以上开发平台和技术都是我们在学校常用的。下面主要介绍我在本系统中使用到的前端框架Bootstrap。Bootstrap是一种轻量级的开发前端的框架,提供了各式各样的前端插件,能美化我们的前端界面,在节省开发时间的同时,使前端质量大大提升。Boots
24、trap是Twitter推出的一个开源的用于前端开发的工具包。它由Twitter的设计师Mark Otto和Jacob Thornton合作开发,是一个CSS/HTML框架。Bootstrap提供了优雅的HTML和CSS规范,它即是由动态CSS语言Less写成。Bootstrap一经推出后颇受欢迎,一直是GitHub上的热门开源项目,包括NASA的MSNBC(微软全国广播公司)的Breaking News都使用了该项目。在下载的压缩包中你可以看到如下的文件结构和内容。所有文件按逻辑进行分类存储,并且提供了编译和压缩两个版本的文件。图3.3 Bootstrap的基本结构如上图3.3所示,这就是B
25、ootstrap的基本结构:编译后的文件可以快速应用于任何web项目。我们提供了编译版的CSS和JS文件 (bootstrap.*),也同时提供了编译并压缩之后的CSS和JS文件 (bootstrap.min.*)。图片文件是使用 ImageOptim 工具进行压缩的,这个工具是Mac平台上用于压缩PNG文件的一个app。3.3 软件结构系统的程序结构主要是严格按照MVC方式进行的开发的,注意系统层次结构和功能模块之间的联系。在本系统的租赁信息管理模块中,用户发布房屋出租信息和房屋求租信息的操作需要通过登录该系统后才能进行。租赁信息查询模块对可以浏览该网站的所有用户开放,方便用户查看相关的房屋
26、求租以及房屋出租等信息。文档的结构主要根据整个软件开发过程中的流程来书写。尽量做到思路清晰,文章结构层次清晰。本系统的主要流程图如下图3.4所示。图3.4 系统整体流程图3.4 数据库逻辑设计本系统的数据库逻辑设计就是将图2.5所示的E-R图转换为关系模型,即将图2.5所示的所有实体和关系转换成一系列的关系模式。将数据库E-R图转换成为关系模型,得到角色表(role)、用户基本信息表(user)、出租信息表(rent_out)、求租信息表(rent_in)、租赁类型表(type)、留言表(message)六张数据库表。(1)角色表(role)Role表用来记录该系统用户的角色。目前系统持久化的
27、角色有两种,系统注册用户和系统管理员。(2)出租信息表(rent_out)Rent_out表用来记录用户发布的出租信息。由于用户发布的出租信息与求租信息,有很多不同的要求,所以把出租求租两者分开。因此,需要一张单独的出租表来记录出租信息,方便后台管理。(3)求租信息表(rent_in)Rent_in表用来记录用户发布的求租信息。由于用户发布的出租信息与求租信息,有很多不同的要求,所以把出租求租两者分开。因此,需要一张单独的求租表来记录求租信息,方便后台管理。(4)租赁类型表(type)Type表用来记录房屋租赁类型,包括出租、整组和合租三种租赁类型。(5)用户基本信息表(user)User表用
28、来存放用户基本信息。本系统在设计时普通会员和管理员共用同一张表,由于普通会员和管理员拥有不同的身份,所以有角色字段来区分二者的身份,系统根据角色决定登录后跳转到前台还是后台界面。(6)留言表(message)Message表用来记录留言信息。当用户查看出租信息详情时,可以对该条记录的发布者留言,方便用户之间的交流。同时,也为其他浏览该条信息的用户提供消息。4 系统详细设计本章将从数据库和功能实现两个方便,综合运用业务流程图、程序设计流程图、图形界面和关键代码四种方式来说明系统的详细设计。本系统包括对登录注册功能,房屋租赁信息发布功能,房屋租赁信息查询功能,房屋租赁信息审核功能,用户个人中心管理
29、功能等5大模块的实现。4.1 数据库的设计与实现根据我们在学校所学的数据库方面的知识以及结合平常的实践经验,我们知道数据库设计的好坏将对系统产生重大的影响,数据库是为应用提供服务的,好的数据库设计首先应该要能满足应用系统的业务需求以及准确的表达数据之间的关系。其次好的数据库设计要能保证数据的准确性和一致性,通过建立表字段的各种约束条件保证数据的健壮。最后,要能提高数据查询的效率。通过对系统的功能需求分析,我们可以初步得出该系统所需的数据库表的设计情况。这个过程是对现实世界数据的抽象,即模型。从抽象出数据到将数据存进数据库整个过程我们图4.1描述。图4.1 数据抽象到存储的过程该系统将有六张表,
30、分别为角色表,用户表,出租房屋表,求租房屋表,求租类型表和留言表。其中角色表包括两个角色,为普通会员和管理员;求租类型表分为整组跟合租两种。出租表,求租表,用户表和留言表之间的关系为:一个用户可以发布一条或多条出租求租信息,同时也可正对他人发布的信息,进行留言。一个用户可以针对一条信息发布多条留言。本系统采用mysql5.0作为数据库。在安装好数据库后,将数据库root用户的密码改为“password”,然后在mysql中创建数据库,命名为“webhouse”。使用mysql建表工具workbench建立表与表之间的关系。你可以用MySQL Workbench设计和创建新的数据库图示,建立数据
31、库文档,以及进行复杂的MySQL 迁移。MySQL Workbench 为数据库管理员、程序开发者和系统规划师提供可视化设计、模型建立、以及数据库管理功能。其中建立表之间的关系如下。图4.2 数据库表之间的关系下面针对上述表的设计,给出具体的说明。(1)角色表(role)Role表用来记录系统角色。目前系统持久化的角色有两种,系统管理员和系统注册用户。该表是user表的外键,不同的角色登录系统后能进行不同的操作。各个字段详细设计说明如表4.3所示。表4.3 角色表列名类型约束说明Role_idintPrimary key主键Role_nameVarchar(10)Not null角色名(2)用
32、户基本信息表(user)该表记录用户的基本信息,其中user_name唯一,是登录系统时的帐号。各个字段详细设计说明如表4.4所示。表4.4 用户基本信息表列名类型约束说明user_idintPrimary key主键user_nameVarchar(20)Not null, unique用户名passwordpasswordNot null密码roleintNot null角色telephoneVarchar(11)Not null 联系电话 head_imagetextNot null头像sexcharNot null性别(3) 租赁类型表(type)Type表用来记录求租信息的类型,分为
33、出租、整组跟合租三种。其中各个字段详细设计说明如表4.5所示。表4.5 租赁类型表列名类型约束说明Type_idintPrimary key主键Type_nameVarchar(10)Not null类型名 (4)求租表(rent_in)该表记录求租信息。其中publisher为外键,是该条信息的发布者。Rent_in_type记录求租类型,1为整组,0为合租。Legal记录该条信息是否审核通过,若通过,则在前端显示该条记录,否则不显示该条记录。但是用户自己可以看到该条记录的相关状态。Checked记录该条信息是否已审核。其中各个字段详细设计说明如表4.6所示。表4.6 求租表列名类型约束说明
34、in_idintPrimary key主健publisherintForeign key发布者(外键)Publish_timedatetimeNot null发布时间PictureTextNot null图片titleVarchar(10)Not null标题AddressVarchar(45)Not null求租地址Rent_in_typeintNot null求租类型MoneyfloatNot null期望租金PicturesTextNot null个人图片DetailtextNot null特别说明LegalcharNot null是否审核通过CheckedCharNot null是否审
35、核Checked_timeDatetimeNot null审核时间(5) 出租表(rent_out)该表记录求租信息。其中publisher为外键,是该条信息的发布者。Legal记录该条信息是否审核通过,若通过,则在前端显示该条记录,若没通过,则前端不显示该条记录。但是用户自己可以看到该条记录的相关状态。Checked记录该条信息是否已审核。其中各个字段详细设计说明如表4.7所示。表4.7 出租表列名类型约束说明Out_idintPrimary key主健publisherintForeign key发布者(外键)Publish_timedatetimeNot null发布时间equipmen
36、tTextNot null房屋设备titleVarchar(10)Not null标题AddressVarchar(45)Not null出租地址MoneyfloatNot null期望租金PicturesTextNot null个人图片DetailtextNot null特别说明LegalcharNot null是否审核通过CheckedCharNot null是否审核Checked_timeDatetimeNot null审核时间(6)留言表(message)Message表是记录留言。系统当前登录用户,可以观看其他用户发布的租赁信息,并且可以在该条信息的详细页面进行留言。其中sender为该条留言信息的留言者,getter为该条留言信息的接收者,rent_in和rent_out在同一条记录中,只能有一个有值,即该条留言信息是针对哪一条出租信息或者哪一条求租信息发布的。其中各个字段详细设