本科毕业设计-房屋销售管理系统的设计与实现_第1页
本科毕业设计-房屋销售管理系统的设计与实现_第2页
本科毕业设计-房屋销售管理系统的设计与实现_第3页
本科毕业设计-房屋销售管理系统的设计与实现_第4页
本科毕业设计-房屋销售管理系统的设计与实现_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

图4-13系统流程图4.3系统实现工具房屋销售管理系统的设计中,采用了MeEclipse6.0作为开发工具,Oracle10g作为数据库,Tomca6.0作为项目发布的服务器。开发了基于浏览器/服务器(Browser/Server,B/S)模式的网站应用管理程序。4.4系统安全问题考虑 一个好的网站不仅仅要有良好的用户体验,安全也是非常重要的,但后者常被程序员所忽略。本系统处于安全的考虑,把所有的jsp页面都放到Tomcat服务器下的WEB-INF文件夹下。WEB-INF是一个非常安全的文件,在页面中不能直接访问其中的文件,必须通过web.xml文件对要访问的文件进行相应的映射才能访问。 在这样做的情况下,仅通过浏览器根本看不到某个页面的具体路径。

5系统的具体实现5.1数据库模块实现数据库的概念结构及逻辑结构设计完毕后,现在可以开始根据它们做出具体的数据表结构。5.1.1数据库的建立启动Oracle数据库配置助手,根据提示创建数据库orcl如图5-1所示。图5-1数据库orcl数据库创建完后以管理员身份登录sqlplus(如图5-2所示),创建表空间以及用户。创建表空间:CREATETABLESPACEts_houseDATAFILE'%oracle_base%\oradata\house.dbf'SIZE20MREUSEAUTOEXTENDONNEXT5MMAXSIZE150M;创建用户:CREATEUSERhouseIDENTIFIEDBYhouse;图5-2管理员身份登录sqlplus表结构的设计完全是按照逻辑结构设计中为各表设计的结构来实现的,各字段的设置在逻辑结构设计中也有详细说明。这里仅以GD_HOUSE_TB表为例,展示表的设计结果如图5-3所示。图5-3GD_HOUSE_TB表5.1.2数据库的连接数据库完成后就要与网页建立动态连接。本系统采用连接池方式连接。因为用到Struts与Spring,所以数据库信息在perties文件中。jdbc.xml文件进行读取。在具体用的时候直接注入到类中即可。这里只给出登录应用的例子,其他的类似,只是业务逻辑不一样。******************************perties*******************************database.url=jdbc:oracle:thin:@14:1521:orcldatabase.driver=oracle.jdbc.driver.OracleDriverdatabase.username=housedatabase.password=house**********************************************************************************************Jdbc.xml中读取资源文件的重要代码********************<beanid="propertyConfigure" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <propertyname="location"value="/WEB-INF/perties"/> </bean> <beanid="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <propertyname="driverClassName"value="${database.driver}"></property> <propertyname="url"value="${database.url}"></property> <propertyname="username"value="${database.username}"></property> <propertyname="password"value="${database.password}"></property></bean>*****************************************************************************************************spring.xml中注入与调用的重要代码**************<!--注入登录Dao--> <beanid="loginDao"class="mon.LoginDaoImpl"> <propertyname="dataSource"ref="dataSource"></property></bean><!--登录--> <beanname="/login"class="com.af.house.action.LoginAction"> <propertyname="dao"ref="loginDao"></property> </bean>*************************************************************************这样的话,就没有像以前那钟具体的数据连接代码了,只用在写实现类的时候继承JdbcDaoSupprot类即可。****************LoginDaoImpl.java实现类中重要代码************************publicclassLoginDaoImplextendsJdbcDaoSupportimplementsLoginDao{ /** *检查登录方法 */ publicbooleancheckLogin(Stringusername,Stringpassword){ Stringsql="select*fromgd_person_tbwhereperson_username=?andperson_password=?"; Object[]args={username,password}; intx=this.getJdbcTemplate().update(sql,args); if(x==1){ returntrue; }else{ returnfalse; }}}*************************************************************************SS下的连接池数据库应用就是上面所介绍的。本系统的其他牵扯到数据库连接的应用也是如此。5.2主页面的框架的实现主页面是本系统的框架页面,从登录页面进入后基本上一直停留的页面:login.jsp:登录页面(如图5-4所示);图5-4登录页面main.jsp:主页面(如图5-5所示)。在本系统中,呈现给用户的主页面main.jsp。该页面由如下页面组成:顶部top.jsp:页头,由一个时间显示和标题图片组成;左部left.jsp:菜单选项。右部right.jsp:内容显示去。图5-5主页面5.3房屋销售模块的实现 房屋销售是本系统的重要模块,在实现过程中,花费了比较多的时间。业务逻辑比较复杂,各个方面因素都要考虑周全。 预订房屋:这块要首先从数据库中动态的读取顾客信息以及可用房屋信息,而且能够根据顾客的需求进行查询,查询后主页面不能刷新(刷新主要面的缺点:首先页面会闪,用户的眼睛感觉到不舒服;其次输入的查询条件会随着页面的刷新而消失。),所以只能采用Ajax的异步传输机制,进行局部刷新。部分实现代码如下:*****************************部分Ajax实现代码******************************$.ajax({ url:"fwxs.do?method=queryPersonByIdentityno", type:"post", data:{ person_identityno:person_identityno.val() }, cache:false, dataType:"json", timeout:20000, error: function(){ alert("服务器超时"); }, success: function(data){ //获得现实顾客信息的表 vartab=$("#tb_person_view"); tab.empty(); tab.append("<trclass='title'>"+ "<tdwidth='6%'><inputtype='checkbox'disabled='disabled'></td>"+ "<tdwidth='10%'>姓名</td>"+ "<tdwidth='20%'>身份证号</td>"+ "<tdwidth='18%'>出生日期</td>"+ "<tdwidth='10%'>角色</td>"+ "<tdwidth='36%'>地址</td></tr>"); if(data==0){ tab.append("<tralign='center'><tdcolspan='6'><fontsize='6'>没有您要的信息!</font></td></tr>"); }else{ //查到有信息时把信息添加到列表中 $.each(data.person,function(i,n){ tab.append("<tr>"+ "<tdwidth='6%'align='center'><inputtype='checkbox'id='cb_person_id'class='cb_person_id'value='"+n.person_id+"'></td>"+ "<tdwidth='10%'>"+n.person_name+"</td>"+ "<tdwidth='20%'>"+n.person_identityno+"</td>"+ "<tdwidth='18%'>"+n.person_birth+"</td>"+ "<tdwidth='10%'>"+n.person_type+"</td>"+ "<tdwidth='36%'>"+n.person_address+"</td></tr>"); }); //设置表最下面一行 lastLine(6,data,tab); } }});*************************************************************************** 数据以json格式返回,传递给回调函数,回调函数根据页面表格格式进行相应的解析,然后展现给用户,从而解决这个页面刷新的问题。Json数据格式的业务处理代码如下:****************************部分处理json代码*******************************List<House>list=newArrayList<House>(); list=dao.queryHouseCondition(house_type,house_zone); if(list.size()!=0){ JSONObjectjson=newJSONObject(); JSONArrayjsonMember=newJSONArray(); for(Houseitem:list){ JSONObjectmember=newJSONObject(); member.put("house_id",item.getHouse_id()); member.put("house_area",item.getHouse_area()); member.put("house_type",item.getShouse_type()); member.put("house_zone",item.getShouse_zone()); member.put("house_address",item.getHouse_address()); member.put("house_date",item.getHouse_date()); member.put("house_price",item.getHouse_price()); member.put("house_info",item.getHouse_info()); jsonMember.put(member); } json.put("house",jsonMember); json.put("curPage",objectDao.getCurrPage()); json.put("totalPages",objectDao.getTotalPages()); json.put("totalRows",objectDao.getTotalRows()); out.print(json); }else{ out.print(0); } out.flush();out.close();*************************************************************************** 还应该考虑到系统的友好提示问题,用户操作不慎时应该给出相应的友好提示,避免不必要的错误出现,如此实现能给用户留下良好的用户体验。下面将展示此功能的一些具体实现的图片: 预订房屋功能的主页面(如图5-6所示)。图5-6预订房屋主页面 在预订之前要选择出顾客与房屋,可以查询所有信息,也可以根据查询条件进行查询。图5-7所示为默认查询。图5-7默认查询 条件查询结果(如图5-8所示)以及查询不到结果是的页面(如图5-9所示)。图5-8条件查询图5-9错误条件查询 当用户输入的查询条件格式有误时,给出提示(如图5-10所示)。图5-10条件格式有误查询 前置条件无误后便可以房屋预订了,预订成功后会给出成功提示,然后预订过的信息会被过滤掉,剩下的信息通过局部刷新后重新显现出来。如图5-11所示。图5-11房屋预订成功 房屋销售:在预订的基础之上才能进行销售,首先查询出预订好的房屋信息,然后选择其中一条,点击“签售合同”按钮,进行销售。如果没有选择预订信息,则给出提示(如图5-12),销售成功也会给出相应的提示(如图5-13)。图5-12友好提示图5-13销售成功提示5.4查询统计模块的实现 查询统计功能对于管理系统模块也非常重要。此模块中用到的核心方法与上个模块基本相同,就是根据页面做相应的展示,数据库操作有所不同。所以代码就不再列出。此模块增加了一个导出Excel的功能。下面展示个别功能实现图片。 销售业绩统计的实现,如图5-14所示。图5-14销售业绩统计 上图中列出业绩统计的结果,下面还有两个按钮,其中一个为不可用状态。按钮的作用是导出查询统计的结果。因为已预订房屋数量为0,所以它的按钮不可用,即没有数据可以导出。已售出房屋数量不为0,能够导出Excel表格,点击“导出售出的房屋”按钮后,则导出数据。如图5-15所示。图5-15导出Excel 点击“保存”按钮,选择具体路径存放。打开Excel查看数据,如图5-16所示。图5-16Excel数据 本模块中的其他查询统计功能都是如此,不仅能够根据组合条件查询,还能够导出查询的结果。此处不再累赘。5.5信息维护模块的实现这个功能模块只有管理权限才能够操作。其他身份登录后看不到此模块。用来维系统。房源信息:对房屋资源信息进行维护。只能对可用房屋资源进行维护,对已售出及已预订的房屋资源不能进行操作(这个很重要)。可以勾中前面的选择框,然后点击上面的功能名称进行维护,也可以点击后面的操作提示进行维护。 修改房源操作,点击“修改”后,页面后跳到修改信息页面,如图5-17所示。图5-17修改房源 修改成功后跳回刚才的页面,并且给出“修改成功”提示,如图5-18所示。图5-18修改成功提示 删除房源操作,做删除的时候一般都比较慎重,应该出提醒,如图5-19所以。当确图5-19删除提示认删除后才进行删除业务的处理。 对人员信息的维护也是如此,因此,不再累赘。5.6验证的实现很多操作都需要输入信息,对于用户来说,输入什么样的信息都有可能。错误的信息格式我们都应该考虑到,当用户输入格式不正确时,应当提醒其重新输入。下面展示一些验证提示:登录验证提示,如图5-20所示。图5-20登录验证提示 房源信息维护中增加房屋信息的验证提示,如图5-21所示。图5-21增加房源验证提示 增加人员信息的验证提示,如图5-22所示。这个验证相对要发杂一些,它不仅仅能图5-22增加人员验证提示判断是否为空。而且,如图中所显示,当身份证号中月份输入错误时,也可以进行提示。6系统测试和发布5.1系统测试房屋销售管理系统的程序开发完成之后,将进行项目的测试,从以下方面来测试。5.1.1界面测试界面测试是整个测试过程中比较简单直观的测试,但需要很大的耐心和足够的细心。在此阶段,需要对各个显示页面作了认真检查测试,基本保证每个页面没有错别字、没有出现一些读不懂的内容、没有明显的字体、字号的不同等一些页面常出现的错误。5.1.2功能测试功能测试主要是测试程序模块是否实现了设计中所要求的功能。在此阶段,主要测试了管理员登录模块的正确性、各类信息添加、修改、删除和查询后页面显示与数据库是否一致、填写信息模块的信息合法性检查以及查询功能。经过多次测试,各种功能的实现基本正确。5.1.3安全测试安全性测试,本人认为是本系统最重要的测试。首先要测试登录后直接粘贴地址栏的地址然后重新打开浏览器进行登录。测试结果说明本系统是安全的(如图6-1所示)。系统会自动跳回到登录页面并提示你“从这里图6-1登录页面安全性测试登录” 说明,本系统原计划在登录的时候采用MD5加密算法进行加密,考虑到答辩演示的时候不方便,就没有使用。MD5加密算法如下:*********************************MD5.java*********************************packagecom.af.house.util;importjava.security.MessageDigest;importjava.security.NoSuchAlgorithmException;/***MD5加密算法*@authoranfei**/publicclassMD5{ publicstaticStringmd(Stringstr){ MessageDigestmd=null; try{ md=MessageDigest.getInstance("MD5"); md.update(str.getBytes()); }catch(NoSuchAlgorithmExceptione){ e.printStackTrace(); } returnnewString(md.digest()); }}*************************************************************************6.2系统发布本机发布Web应用程序,这里选用JDK编译器和Tomcat服务器。在安装好JDK编译器和Tomcat服务器后,注意在安装Tomcat的时候默认端口设为:8080。安装完成之后,便可将新闻发布系统所有文件复制到C:\Tomcat6.0\webapps\目录下,在浏览器中输入http://localhost8080进行测试,点击TomcatManager进入http://localhost:8080/manager/html点击house(如图6-2所示)进入到登录页面,说明已经发布成功。图6-2项目发布

结束语随着计算机应用领域的迅速扩大,本文是针对房屋销售管理系统的设计与实现进行研究。通过这次毕业设计,使我对JSP、Struts、Spring、Ajax、JQu

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论