版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
网上房屋出租出售系统的设计与实现摘要随着大城市的不断壮大,本就居住在该城市中的人以及过来城市中工作人员也不断增加,住房需求不断升高,同时随着经济的发展,房东的出租出售需求也与日俱增。而现在是一个互联网的大时代,互联网在不停发展,同时房东与房客对于出租出售的需求也在不断增长。这时也便有了网上房屋出租出售系统。该系统很好的解决了以前传统的地产业中介的某些弊端,例如覆盖率不够广泛,由于之前大部分的信息转递是通过小广告,或者在报纸上刊登等的方式。本网上房屋出租出售系统从用户的角度可以分为两个模块,如管理员模块,以及用户模块,管理员模块主要负责审核用户提交上来的需要出租或出售的房子,并进行选择通过或者不通过。用户模块主要有登录注册、买房、租房、以及出租出售功能,同时可以管理自己的订单,对加入到自己订单中的订单进行管理,可以删除订单,或者进行下单。该系统还有推荐房屋功能,给不同的用户按其所需进行推荐房屋。本系统是遵循模块化设计的,前端使用JSP页面,后台是使用JAVA作为开发语言,并使用SpringMVC、Spring、Mybatis框架进行搭建实现的,后台数据库采用了Mysql数据库。关键词:网上房屋,出租,出售,JAVA
AbstractAsthebigcitiescontinuetogrow,therearemoreandmorepeopleinthecityandmigrantworkers,housingdemandisrising,andwiththedevelopmentoftheeconomy,thelandlord'srentalandsalesdemandisalsoincreasing.NowisabigeraoftheInternet,theInternetisconstantlydeveloping,andthedemandforlandlordandtenantsforrentalsalesisalsogrowing.Atthistime,thereisalsoanonlinehouserentalsystem.Thesystemsolvessomeoftheshortcomingsofthetraditionalindustryagency,suchascoverageisnotwideenough,becausemostofthepreviousinformationtransferisthroughsmallads,orpublishedinnewspapers.Theonlinehouserentalandsalesystemcanbedividedintotwomodulesfromtheuser'spointofview,suchasanadministratormoduleandausermodule.Theadministratormoduleismainlyresponsibleforreviewingthehousessubmittedbytheuserforrentorsale,andmakingaselectionornot..Theusermodulemainlyhasthefunctionsofloginregistration,buyingahouse,rentingahouse,andrentingandselling.Atthesametime,itcanmanageitsownorders,managetheordersaddedtoitsownorders,deleteorders,orplaceorders.Thesystemalsohasarecommendedhousefunctiontorecommenddifferenthousestodifferentusers.Thesystemfollowsamodulardesign,thefrontendusesJSPpages,thebackgroundistouseJAVAasthedevelopmentlanguage,anduseSpringMVC,Spring,mybatisframeworktobuild,thebackgrounddatabaseusesMysqldatabase.Keywords:Onlinehouse,rent,sell,JAVA
目录1 绪论 绪论题目背景及目的本题目为网上房屋出租出售系统的设计与实现,背景为在当今这个互联网的时代下,将传统行业与互联网联系起来是必不可少的,传统的线下房屋出租出售由于其信息传播方式,如宣传单、电话推销或者朋友之间的推荐,其受众都有很大的局限性,也有很大的地域的局限性。因此网上房屋出租出售系统也应运而生,其很好的解决了房屋信息传播不够广泛的问题。如今,随着互联网的发展,国内的网民数量也达到了一个十分庞大的值,在国家最近进行的网民统查中,在这个统计中显示,截止至2018年12月,我国网上冲浪人员已经拥有8.29亿了。基于这个巨大的数量,基于互联网的网上房屋出租出售系统便能更好地传递房屋信息。网上房屋出租出售系统是一个提供用户进行出租出售房屋的平台,同时用户也可以在该网站上进行选择自己所需要的房屋。本网上房屋出租出售系统是根据当前社会中用户的需求进行需求分析,同时再观看如今比较成熟的网上房屋网站是怎么设计的,如链家、安居客等的网站,根据这些网站再修改自己的设计并不断的完善,使本网上房屋出租出售系统更加贴合社会的需要。国内外研究状况如今国内外的网上房屋出租出售系统大多都是选择B/S架构,即是基于网站进行开发与设计,这样对用户的友好度会更加的高,无论是在电脑端或者是手机端,当用户想要使用时只要打开浏览器到相对应的网站,便可以根据其所需寻找自己所需要的房屋,对于新用户的友好度会更加的高,而无需要下载相应的软件,当然软件端也拥有其特有的优势,对老用户来说依存性会比较高,而某些操作也可以交到本地运行,而无需在服务器端上。而目前国内的比较成熟的网上房屋出租出售系统有如链家与安居客等的网站,而国外有airbnb以及缤客等的网站。而本系统的设计也是将会参考这些成熟网站的某些功能进行开发设计,使得本系统更加贴合当前社会的需要。而网站的样式选择,也会进行部分参考,然后再自己进行调整,设计出比较适合当前审美的网站,做到整体的风格是比较简洁的,让用户看起来是比较舒服的,采用的色彩都是比较浅色调的,在例如价格等的才会采用亮色调,可以让用户第一眼就可以看见比较重要的信息,提高用户的体验感。论文构成及研究内容本论文先通过摘要以及第一章的绪论,即描述题目背景及目的和国内外研究情况先大致讲诉当前网上出租出售系统的情况。而第二章为可行性分析,讲述了本人设计的系统在当前的社会以及潮流下是否可行,并进行分析,同时也对本系统使用到的技术进行介绍。第三章是进行需求分析,对本系统所需要做的任务和需求进行大概的说明,同时描述了系统功能模块的设计,并画图展示,也介绍了本系统的数据库是如何设计的,表的结构与属性。第四章则是详细设计,将本系统的功能按照游客模块、用户模块、管理员模块进行描述是如何进行设计的。第五章则是系统测试,对本系统进行单元测试以及进行压力测试。然后最后则是结论、参考文献以及致谢。
可行性分析社会可行性如今国内人数十分之多,空闲的房源,以及需要住房的人更是数不胜数。从市场来说是十分需要一个网上出租出售系统提供用户去销售房子或者租赁房子。在大城市里,外来务工人员的人数不断增多。同时生活节奏也在变快,人们接受信息的来源越来越依靠于网络,人们在地铁上或者公交上时大多都是在刷手机,而如果有住房需求的话在网上进行查看消息,比看身边的小广告来得更直接也快速,同时也能更好的对比房源,找到一个更适合自己的房间。虽然说在网上房间的信息很方便,但也因其便利性让房间的虚假性便出现了问题,这时就必须要有一定的审核机制,要进行实地考察之类的。同时国家的法律法规对于网上的监控性还仍不够完善,但并不会过于影响网上出租出售系统的发展,毕竟这也是大境所需。便利和快捷总是这个快节奏的时代所必然需要的,问题是可以解决的,法律法规也是可以一步一步进行完善的。技术可行性 如今的系统一般有两种架构,一般分为C/S架构,即桌面级应用,以及B/S架构,即基于浏览器的应用,便是常见的网站。本系统是基于B/S架构采用java语言开发的web网站,采用Spring、SpringMVC、Mybatis框架进行搭建的。前端页面是使用jsp进行实现的,然后采用Bootstrap框架,并使用JavaScript与jQuery进行对页面进行动态控制,或者发起请求,或者完成某些响应。由于采用的技术都是如今仍算流行的技术,从实现来说是没有太大的问题,而系统的性能也是比较好的。而数据库是选择MySQL,基于MySQL的特性是十分适合中小企业的,而作为本系统的数据库,毋庸置疑也是十分适合的。操作可行性本系统的研发和开发是充分从用户的角度进行考虑的,是比较人性化的,用户的体验度会比较好,用户界面友好,拥有一定的互联网知识,便可以很快进行操作。同时也是根据用户的需求进行制定系统的功能,也参考了如今比较流行成熟的网上出租出售系统,学习这些网站的页面排版以及功能,使本系统更加符合社会的需求。系统的技术介绍JavaScriptJavaScript是一种直译式脚本语言[1],对web开发来说是一个不可或缺的一个技术,其的跨平台性是十分好的。它是基于浏览器运行的,并不会受到不同语言开发的影响。其功能与作用十分多样,主要是动态的修改网页的效果,对例如点击事件、聚焦事件等做出响应,还可以将数据提交到服务端进行校验,或者做对应的处理。亦可以对cookies进行控制,根据函数进行对用户存进cookies里的信息进行修改,或者是创建新的信息存进cookies里。JavaScript也是一种十分简单的语言,其里面采用的都是弱类型的变量类型,都是采用var来定义,并不会有许多的具体类型来定义,如整型、浮点型、字符型、布尔类型等。JavaScript也是以中跨平台的语言,无论是使用什么样的系统,都可以使用JavaScript,因为它是在浏览器中运行的,只要所使用的浏览器支持JavaScript便可。JavaScript是一种基于对象的语言,其类似于java也是一样可以创建对象以及对已经存在的对象进行修改,但这只是部分相似,大体还是有许多不一样,不止是从语言的设计来说还是从所属的公司等等。而一个完整的JavaScript实现是由三个部分组成的:核心(ECMAScript)、文档对象模型(DOM)、浏览器对象模型(BOM)[2]。jQueryjQuery是一个JavaScript库,也是JavaScript在世界中使用最广泛的一个库,它简化了人们使用JavaScript进行编程[3]。同时它也优化了对事件的处理、还有使用Ajax的交互等。jQuery是一个轻量级的“写的少,做的多”的JavaScript库[3],其设置宗旨就是简化人们的操作,同时消除浏览器的差异,再也不需要写冗长的代码来针对不同浏览器来绑定事件以及编写Ajax等。也可以更加简洁的操作DOM方法,也可以更加方便的修改CSS。jQuery库包含以下等功能:CSS操作、HTML元素选取、HTML元素操作、HTM事件函数、JavaScript特效和动画、HTMLDOM遍历和修改、AJAX、Utilities。BootstrapBootstrap是由美国公司Twitter进行研发和设计的一个前端开发框架,其是基于HTML、CSS、JAVASCRIPT的,十分简洁,让web开发人员能更快更方便的进行开发。Bootsrap拥有十分多的的web组件,如对CSS样式中有网格系统、排版、表格、表单、按钮、图片等。而在布局组件中可以提供了下拉菜单、导航栏、分页、标签、警告、进度条。同时也提供JavaScript插件,如模拟态、滚动监听、弹出框、警告框、轮播等。MySQLMySQL是一个关系型数据库管理系统,也是目前最流行的其中一个[4]。MySQL数据库是按照数据结构来来管理数据的,通过不同的API来进行管理数据[5]。MySQL是多线程的,能十分有效的利用资源。它不仅能作为一个单独的软件进行运行同时可以作为一个库加入到其他的软件中。InnoDB事务型数据库的首选引擎,支持ACID事务,支持行级锁定[6]。SSMSSM是Spring、SpringMVC、Mybatis的简称,是如今最流行的WEB框架之一[7]。Spring有两个重大的特性,IOC和AOP,IOC为控制反转,AOP为面向切面编程。控制反转中有两个十分重要的,依赖注入,以及控制反转,通过这两个特性,将对象的管理交给了Spring通过注解进行先定义,就无需通过new自己创建一个对象。而面向切面编程可以让技术人员更加简洁便利的进行编程,可以把共有功能抽取出来,使用在不同的业务中。需要设置切入面和切入点,然后通过通知进行实现。通知可以分为五种,如:前置通知(Before)、后置通知(AfterReturning)、异常通知(AfterThrowing)、最终通知(After)和环绕通知(Around)[7]。SpringMVC是属于SpringFrameWork的一个产品,其大致可分为Model、View、Controller,即为模型、视图、控制器[8]。其原理是通过DispatcherServlet即前端控制器拦截请求,然后再转发到对应的Controller中,其中其是通过@Controller这一个注解进行将某个类设置为controller,然后通过@RequestMapping这一个注解设置value,然后通过匹配url来将请求转发到controller里的具体的一个方法,而可以通过配置xml文件将返回值为String类型的直接进行跳转到某个所对应的jsp文件中。在此注解中可以通过定义method来定义此方法是get、post、update、delete中的一个。MyBatis是apache旗下的一个开源项目,此框架的主要目的是与数据库进行打交道[9]。进行配置后,可以通过接口调用xml中的sql语句,这样便可以将sql语句从java类中分离出来,只是存在于xml文件中。而通过创建一个bean,其属性与数据库中表的字段相同,便可以将返回值直接进行赋值给这个bean,这大大提高了开发人员的开发速度。协同过滤算法协同过滤算法一般可以分为三种。第一种是基于用户(user-based)的协同过滤,第二种是基于项目(item-based)的协同过滤,第三种是基于模型(modelbased)的协同过滤[10]。基于用户(user-based)的协同过滤是寻找用户与用户之间的相似度,用相似统计的方法得到具有相似爱好的用户,并通过搜索目标用户的最近邻居,根据最近邻居来对目标用户进行推荐[10]。可以通过收集用户信息,如对某个物品的打分评价、浏览记录或者是购买记录等来进行分析。然后依据用户对物品的评价计算得到所有用户的相似度,选出与当前用户最相似的n个用户,再将这n个用户评价最高的且当前用户还没有浏览过的物品推荐给当前的用户。基于项目(item-based)的协同过滤是寻找物品和物品之间的相似度,其原理与基于用户的协同过滤类似,但计算相似度时不是从用户的角度,而是从物品的角度,基于用户对物品的偏好找到相似的物品,然后再将评分最高的若干个相似物品推荐给目标用户[10]。比如在某些网上书城买书时,当用户曾经买过关于数据挖掘的书,就会推荐给用户有关数据挖掘、大数据等的相关书籍。基于模型的协同过滤,其相关算法有十分之多,而如今比较流行的算法大致为:关联算法、聚类算法、分类算法、回归算法、矩阵分解、神经网络、图模型以及隐语义模型[10]。系统开发平台及运行环境使用语言:Java、Javascript、HTML、CSS数据库:MySQL5.7开发工具:IntelliJIDEA开发平台:Windows10辅助工具:NavicatPremium12、Notepad++开发框架:Spring,SpringMVC,Mybatis应用服务器:Tomcat9.0客户端浏览器:谷歌、Safari、Microsoftedge等的主流浏览器压力测试软件:ApacheJmeter
需求分析与概要设计任务概述本次的任务是设计一个网上出租出售系统,能够展示出租出售的房子给用户看。从用户的角度来说,可分为三个模块。游客可以对房子进行分页查看,但不可以点击房间名字从而跳转到详情页,会先直接跳转到登录页面,要先进行登录后才可以对房子信息进行详情查看。在游客的情况下导航栏仅提供首页、租房、买房、登录、注册。用户登录后会跳转到用户模块,在首页可以通过房屋名字进行模糊查询,同时还有推荐系统,利用基于用户的协同过滤算法,推荐给当前用户最适合的房子。此时用户可以通过拖动或者点击下一个可以查看其他推荐的房子。此时也可以通过点击房子名字到房屋的详情页,房屋的详情页提供房屋的具体信息,同时也有出租出售人的某些信息,如姓名、邮箱、电话号码等。此时在房屋详情页时多了加入订单,和立即下单按钮。点击加入订单按钮,将会将房屋加入到我的订单中,在导航栏中我的订单可以查看相关的信息,并可以管理操作,进行删除,或者是下单。点击下单会跳转到支付页面。在导航栏中也多了我要出租与我要出售,这两个功能是提供给用户可以出租出售自己的房子,通过填写相关的房屋信息,再点击提交,便可以提交房屋信息,等待管理员的审核。管理员登录后,导航栏会多一个审核房屋信息,在此中可以查看用户提交上来的房屋信息,进行选择通过还是不通过审核。通过审核后,用户便可以在浏览房屋页面看到相对应的房屋。本系统的页面都是风格统一,比较简洁的。需求规定游客能使用的功能如表3.2-1所示。表STYLEREF1\s3.SEQ表\*ARABIC\s11游客功能表编号功能名称使用者功能概述1登录游客根据账号名和密码进行登录2注册游客填写账号密码邮箱进行注册3租房查看游客分页查看出租房的信息4买房查看游客分页查看出售房的信息5房屋搜索游客根据房屋名进行模糊查询6房屋推荐游客推荐用户喜欢的房屋用户能使用的功能如表3.2-2所示。表STYLEREF1\s3.SEQ表\*ARABIC\s12用户功能表编号功能名称使用者功能概述1注销用户注销当前保留在session中的用户信息2租房查看用户分页查看出租房的信息3买房查看用户分页查看出售房的信息4房屋搜索用户根据房屋名进行模糊查询5房屋推荐用户推荐用户喜欢的房屋6房屋出租用户填写出租房屋信息并提交7房屋出售用户填写出售房屋信息并提交8个人信息管理用户可以修改个人的信息如头像和电话等9我的订单用户管理个人的订单信息10立即下单用户进行下单并跳转到支付页面管理员能使用的功能如表3.2-3所示。表STYLEREF1\s3.SEQ表\*ARABIC\s13管理员功能表编号功能名称使用者功能概述1注销管理员注销当前保留在session中的用户信息2审核房屋管理员审核用户提交上来的房屋选择是否通过3租房查看管理员分页查看出租房的信息4买房查看管理员分页查看出售房的信息5房屋搜索管理员根据房屋名进行模糊查询6房屋推荐管理员推荐用户喜欢的房屋7个人信息管理管理员可以修改个人的信息如头像和电话等系统功能模块设计本系统总体的功能模块设计如图3.3-1所示,总体可以分为三个模块。用户模块的功能大概为:用户注销、房屋查看、房屋搜索、房屋出租、房屋出售、我的订单、房屋推荐、立即下单、个人信息管理。游客模块的功能大概为:用户登录、用户注册、房屋查看、房屋搜索、房屋推荐。管理员模块的功能大概为:用户注销、审核房屋信息、房屋查看、房屋搜索、个人信息管理。用户与游客与管理员的功能有相交的也有不同的,其中的功能是通过对其权限进行控制,即是在数据库中的用户表里的某个字段state进行区分是user还是admin,游客即是在session中没有相对应的信息。在编码的时候,后端需要根据模块,每一层每一层的代码区分好,易读性高。前端可共用界面、脚本抽取出来、分好包。图STYLEREF1\s3.SEQ图\*ARABIC\s11系统的总体功能模块数据库设计数据库表物理模型用户表的主键与属性图STYLEREF1\s3.SEQ图\*ARABIC\s12用户表(user)房屋表的主键与属性图STYLEREF1\s3.SEQ图\*ARABIC\s13房屋表(house)订单表的主键与属性图STYLEREF1\s3.SEQ图\*ARABIC\s14订单表(orderform)审核房屋信息表的主键与属性图STYLEREF1\s3.SEQ图\*ARABIC\s15审核房屋表(identification)浏览房屋信息表的主键与属性图STYLEREF1\s3.SEQ图\*ARABIC\s16浏览表(browse)数据库表设计这是主要数据表的基本信息的基本定义。用户表user表存储了用户的基本信息,用户通过校验account与password进行登录,然后根据state的不同来进行权限控制。当state为user时,即当前用户是以用户的角色登录,当state为admin时,即当前用户时以管理员权限登录,会拥有管理员的权限。user_id为用户表的主键,而具体信息如表3.4-1所示。表STYLEREF1\s3.SEQ表\*ARABIC\s14user用户表属性名数据类型长度是否可为空备注user_idint11否用户主键,自动增长accountvarchar50否用户账号passwordvarchar50否用户密码emailvarchar50否用户邮箱namevarchar50是用户名字phonevarchar50是用户电话statevarchar50是用户属性picturevarchar50是用户头像图片房屋表house房屋表存储了房屋的基本信息,此表是需要在审核表中的房屋通过审核后才会新增到house房屋表中,house_id为房屋表的主键,而具体信息如表3.4-2所示。表STYLEREF1\s3.SEQ表\*ARABIC\s15house房屋表属性名数据类型长度是否可为空备注house_idint11否房屋主键,自动增长stylevarchar50是房屋风格addressvarchar50是房屋地址areaint11是房屋roomvarchar50是几房几厅moneyint11是房屋owner_idint11是房屋所属人roomer_idint11是房客statetinyint4是0普通状态1出售2出租picturevarchar50是房屋图片namevarchar50是房间名introductionvarchar255是房屋简介订单表orderform订单表存储了订单的基本信息,此表是保留用户将房屋加入订单时的信息。order_id为订单表主键,而具体信息如表3.4-3所示。表STYLEREF1\s3.SEQ表\*ARABIC\s16orderform订单表属性名数据类型长度是否可为空备注order_idint11否订单主键,自动增长create_timetimestamp50否订单创建时间house_idint11否房屋iduser_idint11否用户idstatetinyint4是0订单状态1下单状态2取消状态审核房屋信息表identification审核房屋信息表存储了需要审核的房屋的基本信息,此表是保留用户提交上给管理员审核的房屋信息,只有管理员拥有权限去对此表进行修改。identi_id为审核房屋信息表的主键,而具体信息如表3.4-4所示。表STYLEREF1\s3.SEQ表\*ARABIC\s17identification审核房屋信息表属性名数据类型长度是否可为空备注identi_idint11否审核的房屋主键,自动增长stylevarchar50是房屋风格addressvarchar50是房屋地址areaint11是房屋roomvarchar50是几房几厅moneyint11是房屋owner_idint11是房屋所属人roomer_idint11是房客statetinyint4是0普通状态1出售2出租picturevarchar50是房屋图片namevarchar50是房间名introductionvarchar255是房屋简介浏览表browse浏览表存储了用户浏览记录的基本信息,如保留浏览的房屋id以及当前用户的id,当每点击一次房屋详情页时,都会触发新插入一条数据进浏览表中。browse_id为浏览表的主键,而具体信息如表3.4-5所示。表STYLEREF1\s3.SEQ表\*ARABIC\s18browse浏览表属性名数据类型长度是否可为空备注browse_idint11否订单主键,自动增长house_idint11是房屋iduser_idint11是用户id
详细设计功能模块用户功能模块用户进行登录之后才会进入用户模块,而在登录之后会进行校验,若是用户则会进入用户模块,若是管理员则会进入管理员模块。用户功能模块如图4.1-1所示。用户功能模块与游客模块是十分相似的,但在登录之后才可以查看房屋的详细信息,以及对自己的订单管理,以及在个人信息管理里修改自己的个人信息。图STYLEREF1\s4.SEQ图\*ARABIC\s11用户功能模块图游客功能模块当用户尚未登录就直接访问本系统时,将默认进入游客模块,游客模块的功能对比用户模块比较简单,只要是为了提供给用户进行登录和注册,和简单的房屋查看和搜索,这是为了引起用户的兴趣从而进行驻车登录,通过观看到喜欢的房屋,点击后会跳转到登录页面,而新用户就必须先注册。游客功能模块如图4.1-2所示。图STYLEREF1\s4.SEQ图\*ARABIC\s12游客功能模块图管理员功能模块当用户登录时,系统校验完毕后,发现账号是管理员后,系统将会进入到管理员模块。管理员模块最重要的是审核房屋信息模块,在此模块需要进行审核房屋信息,只有通过管理员审核后,房屋才会展示给用户看。管理员功能模块如图4.1-3所示。图STYLEREF1\s4.SEQ图\*ARABIC\s13管理员功能模块图游客模块由于游客模块的部分功能与用户模块是相交的,因此在此模块注重讲解用户登录和注册功能,其他功能将于用户模块一起展示。用户登录功能简述用户使用此功能进行登录,为了使用户体验更佳,使用Ajax异步提交请求,然后将数据提交到后台进行校验,校验在数据库中是否有该用户,以及对应的用户账号密码是否一致,若一致的话跳转到系统的首页,并将用户信息存入session中,若不一致,则弹窗提示账号密码错误。登录页面还提供记住用户名复选框,当选中该复选框再进行登录时,会将该用户的用户名写入cookie中,当用户再次点开登录页面时会将用户名进行回显。在此页面的右下角还有一个跳转到注册页面的超链接,只要点击未有账号,去注册这一个超链接,便可直接跳转到注册页面去进行注册。执行步骤用户输入账号密码,点击登录,提交数据。点击按钮时触发js方法,以Ajax的方式提交数据到后台的UserController中,在此方法中再调用checkUser方法校验用户的账号密码,若数据库中有该用户且密码是对的,则在map集合中添加一个数据为result为success,若不对则设置会fail,并将map结果返回给前台。前台的js根据返回的结果进行做出相对的响应,若为success,则跳转到首页,并将用户信息存入session中,否则弹窗提醒用户账号密码错误。页面截图登录页面的url是采用Restful的风格进行设置,如图4.2-1所示。图STYLEREF1\s4.SEQ图\*ARABIC\s14登录的url登录页面的输入情况如图4.2-2所示,账号会进行显示,而密码默认是不显示的。图STYLEREF1\s4.SEQ图\*ARABIC\s15登录页面在点击密码框后的眼睛,即密码可视后,将会看见自己输入的密码,以防用户输错。图STYLEREF1\s4.SEQ图\*ARABIC\s16登录密码框点击记住用户名之后的情况。图STYLEREF1\s4.SEQ图\*ARABIC\s17记住用户名图STYLEREF1\s4.SEQ图\*ARABIC\s18用户名回显图STYLEREF1\s4.SEQ图\*ARABIC\s19用户名在cookie中的情况用户注册功能简述用户使用此功能进行注册,此功能也是使用Ajax进行异步提交请求的。用户进行填写用户的账号、邮箱、密码进行注册。在输入账号后,当焦点离开账号输入框后,将会进行校验,账号在用户表中是否存在,若存在则提醒该用户名不可用,若不存在则提醒该用户名可用。输入完信后,点击注册用户便可以注册用户。执行步骤用户输入注册的账号,将会进行Ajax提交账号名到后台,然后再进行校验,返回数据到前台。前台根据返回的数据提醒用户该用户名是否可用。用户填完相关数据后进行异步提交请求,后台再返回数据到前台是否注册成功。前台根据返回的数据判断,若成功则提示注册成功并跳转到登录页面,否则弹窗提示注册失败。页面截图图STYLEREF1\s4.SEQ图\*ARABIC\s110用户名不可用图STYLEREF1\s4.SEQ图\*ARABIC\s111用户名可用图STYLEREF1\s4.SEQ图\*ARABIC\s112注册成功后用户模块用户注销功能简述本功能是提供给用户进行注销掉session中的用户信息的,当点击注销时,将会清除保留在session中的用户信息。执行步骤点击注销按钮触发js函数,提交请求到后台。后台对session进行操作,然后再跳转到首页。页面截图图STYLEREF1\s4.SEQ图\*ARABIC\s113注销前图STYLEREF1\s4.SEQ图\*ARABIC\s114注销后房屋查看功能简述本功能是提供给用户进行分页查看房屋信息,在导航栏中有两个选项进行查看房屋信息,点击租房时查看租房信息,点击买房是观看买房的信息。然后通过点击房屋的名字,跳转到房屋详情页,房屋详情页将会展示房屋的具体信息,以及房屋拥有者的信息。用户可以通过在详情页点击加入订单或下单,或者直接观看房屋拥有着的信息,进行电话邮箱联系。执行步骤用户点击租房或买房按钮,提交请求到后台。后台利用分页返回相对应的页面。点击房屋的名字,将会跳转到相对应的房屋详情页。页面截图图STYLEREF1\s4.SEQ图\*ARABIC\s115分页查看买房图STYLEREF1\s4.SEQ图\*ARABIC\s116分页查看租房图STYLEREF1\s4.SEQ图\*ARABIC\s117房屋基本信息详情页图STYLEREF1\s4.SEQ图\*ARABIC\s118房屋简介与拥有者信息房屋搜索功能简述此功能是提供给用户对自己需要的房屋进行搜索,这是房屋名字的模糊搜索,同时选择相对应的复选框,买房还是租房来区分不同的房屋,在输入框设置了提醒,提醒用户是输入自己需要的房屋名字。执行步骤用户输入数据,选择买房或租房,再点击搜索,通过Ajax提交数据到后台。后台处理完后再进行封装数据,并返回相对应的页面页面截图图STYLEREF1\s4.SEQ图\*ARABIC\s119带有提示的搜索图STYLEREF1\s4.SEQ图\*ARABIC\s120输入金之后的搜索框图STYLEREF1\s4.SEQ图\*ARABIC\s121搜索的结果展示房屋出租出售功能简述此功能是提供给用户进行上传自己的房屋信息,有两个按钮可以选择,出租或者出售,这两者之间的不同是输入的金额不同,一个是元/月,一个是万元。上传房屋图片时,后台会利用uuid重新命名图片的名字,再存储在upload目录下。使用uuid是防止用户上传时产生重名,从而进行文件覆盖的问题。上传完毕后会将新的图片名字赋值给隐藏的输入框picture,然后再保留在数据库中。用户输入完房屋信息后便可以提交,会先提交到管理员的审核表里面,通过审核后才会在房屋查看里展示。执行步骤用户上传房屋图片,点击上传图片后,通过Ajax异步提交图片并保存,然后回显新的图片名字给隐藏的输入框picture。输入完相关信息,点击提交后,会将数据提交给后台。后台返回数据给前端。若提交成功则会提示用户提交房屋信息成功,并跳转到首页,若失败则会在控制台打印错误信息。页面截图图STYLEREF1\s4.SEQ图\*ARABIC\s122房屋出售图STYLEREF1\s4.SEQ图\*ARABIC\s123房屋出租图STYLEREF1\s4.SEQ图\*ARABIC\s124房屋图片上传成功后进行回显房屋推荐功能简述本功能是使用基于用户的协同过滤算法进行房屋推荐,每个用户只进行推荐四个房屋。点击左右箭头可以进行展示上一个房屋或下一个房屋。此算法是通过Jaccard公式计算相似度,如图4.3-14所示,当前目标用户是用户C,通过计算找出预期相似度最高的是用户A,此时将推荐用户A中有的物品,而用户C没有的,即推荐物品C。在本系统中是将推荐的房屋封装起来存进List里面,然后再将数据返回到前台进行展示。图STYLEREF1\s4.SEQ图\*ARABIC\s125推荐算法基于用户的协同过滤执行步骤先判断当前是否是用户已经登录的状态,或者浏览表中是否存在这当前用户的信息,若不存在,则是冷启动问题,此时直接将评分较高的房屋直接推荐给用户。若用户已经登录,则根据浏览表中的数据,进行调用函数计算,计算出相似度最高的一个,并将其作为参考。根据参考的样本,将本用户还没查看过而存在在参考中的房屋数据,封装到List中,再首页进行展示给用户查看。页面截图图STYLEREF1\s4.SEQ图\*ARABIC\s126为你精选的房屋我的订单功能简述这个功能是负责展示用户自己的订单情况,用户在详情页点击下加入订单即可添加到我的订单进行管理。在此页面可以对订单进行管理,点击删除将会删除该订单,点击下单则会跳转到支付页面,在支付整个流程结束后将会改订单给删除。执行步骤点击加入订单,加入我的订单进行管理。在我的订单页面点击下单,进入支付流程。支付流程结束后,将会跳转回系统首页。页面截图图STYLEREF1\s4.SEQ图\*ARABIC\s127在房屋详情页点击加入订单图STYLEREF1\s4.SEQ图\*ARABIC\s128我的订单展示图STYLEREF1\s4.SEQ图\*ARABIC\s129展示房屋支付信息图STYLEREF1\s4.SEQ图\*ARABIC\s130让用户选择支付方式个人信息管理功能简述用户可以根据自己的想法任意编辑自己的所属信息,如用户姓名、电话邮箱和密码等。同时也可以修改用户的个人头像,点击上传头像后即可上传头像,并且在页面进行回显,可以看到自己的头像在实际页面上的情况。点击修改按钮后将会弹窗提示用户修改成功,然后将会再次加载个人信息管理页面,用户可以在此看到自己最新的个人信息。页面截图图STYLEREF1\s4.SEQ图\*ARABIC\s131个人信息管理页面图STYLEREF1\s4.SEQ图\*ARABIC\s132修改成功后进行弹窗提示图STYLEREF1\s4.SEQ图\*ARABIC\s133个人信息修改成功后进行回显管理员模块由于管理员部分的功能与用户的是重叠的,因此已经在用户模块描述过,因此在管理员模块将会将重心都放在描述审核房屋信息功能。审核房屋信息功能描述这是拥有管理员权限才有的功能,管理员在此功能下可以进行审核用户提交上来的出租出售房屋,点击进详情页后查看房屋的详细信息后,选择是否通过。只有在房屋通过管理员的审核后,才可以在房屋展示功能下展示给用户看。页面的截图图STYLEREF1\s4.SEQ图\*ARABIC\s134审核房屋信息的显示图STYLEREF1\s4.SEQ图\*ARABIC\s135审核房屋信息的详情页系统测试单元测试单元测试是为了提早发现问题,因此本系统,主要是对dao层的代码进行测试,以
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度新能源汽车批量订购合同4篇
- 2025年度体育赛事代理运营管理合同样本4篇
- 2025年度生态停车场车位购置协议4篇
- 生物活性营养土项目可行性研究报告模板范文(立项备案项目申请)
- 2025年新生入学教育法律协议书(综合服务)3篇
- 2025年度个人信用评分服务协议3篇
- 2025年度个人股权交易合同范本:股权转让流程与税务筹划4篇
- 2025年度企业项目合作协议范本4篇
- 2025年浙江泽兴环保工程有限公司招聘笔试参考题库含答案解析
- 二零二五年度林业生态恢复苗木采购合同文本4篇
- 安徽省合肥市包河区2023-2024学年九年级上学期期末化学试题
- 《酸碱罐区设计规范》编制说明
- PMC主管年终总结报告
- 售楼部保安管理培训
- 仓储培训课件模板
- 2025届高考地理一轮复习第七讲水循环与洋流自主练含解析
- GB/T 44914-2024和田玉分级
- 2024年度企业入驻跨境电商孵化基地合作协议3篇
- 《形势与政策》课程标准
- 2023年海南省公务员录用考试《行测》真题卷及答案解析
- 桥梁监测监控实施方案
评论
0/150
提交评论