网上售楼系统的设计与实现.docx
《网上售楼系统的设计与实现.docx》由会员分享,可在线阅读,更多相关《网上售楼系统的设计与实现.docx(26页珍藏版)》请在冰豆网上搜索。
网上售楼系统的设计与实现
网上售楼系统的设计与实现
摘要
本文所要介绍的网上楼房销售系统是当前流行的网上商店的一种形式,它也是电子商务的一个缩影。
当前的网上楼房销售系统不少,但是采用J2EE架构开发的还是寥若晨星。
通过该系统的开发研究,不仅可以学到如何使用J2EE架构来开发一个比较完善的网上楼房销售系统,还可以由此扩展思路,开发出其它形式的服务于电子商务的应用系统。
本网站采用JAVA语言开发,后台数据库是与Java无缝连接、操作简单、易于使用的MYSQL,主要采用Struts框架技术,实现了一个基于web的B/S模式的网上楼房销售系统。
其主要功能包括对外沟通展示功能、信息发布功能、在线楼房展示功能、到在线洽谈功能、在线交易功能、在线采购功能、在线客户服务功能以及强大的系统管理员的功能等等。
本文阐述了在线购买楼房方式的优势,并对所做网站的分析、设计及实现过程做了详细介绍
关键词
J2EE;MVC;模型;售楼;
Abstract
Inthispaper,theonlineBuildingsalessystemintroducedisaformofthepopularonlinestore,Itisalsoamicrocosmofe-commerce.Thecurrentnumberofonlinebuildingsalessystem isnotafew,However,theadoptionofaframeworkforthedevelopmentofJ2EE israreasmorningstars.Thesystemdevelopedbytheresearch,notonlycanlearnhowtousetheJ2EEarchitecturetodevelopacompleteonlineBuildingsalessystem,canalsoextendthisideatodevelopotherformsofe-commerceservicesintheapplicationsystem.
MysystemisimplementedbyJAVA,usingStrutsinnormalprocessingofSoftwareDevelopmentandinB/SmodeofWebindesignanddevelopmentofSystemandbackgrounddatabasethathasseamlessconnectivitywithjava,issimpleandeasy-to-usedisMYSQL.Itsmainfunctionsincludedisplayofexternalcommunicationfunctions,informationpublishing,onlineBuildingdisplayfunctions,tonegotiateonlinefeatures,onlinetradingfeatures,onlineprocurementfunctions,onlinecustomerservicefunctionsandastrongsystemadministratorfunctions,andsoon.ThisthesisintroducesadvantagesofShopping oninternetandpresentsafurtherintroductiontoanalysis,designandprocessoftheweb.
Keywords
J2EE;MVC;module;Sales
第1章前言
在网络日趋普及的今天,基于因特网的一种新的商业模式已经开始走进很多人的生活,其特征是商务活动在因特网上以数字化电子方式完成。
1.1课题的研究背景
网上楼房销售系统是一种新兴的楼房销售平台。
随着全球经济一体化的逐步发展和深入,再加上计算机和网络技术的迅猛发展,传统建筑商因企业成本高、规模小,品种少已经阻碍了楼房市场的发展,网上楼房销售系统的应运而生,它有着其他形式的建筑商所不能比拟的优势:
不受时空的限制,一天24小时的营业时间。
全世界范围内都可以销售;它不需要店铺和庞大的销售网络,通过在网上直接订购、支付、结算,减少了中间的环节和开支,它以成本低,楼房数量多、品种齐全而备受消费者的青睐。
因此,在网上购买楼房已成为购买楼房的主要手段。
为了满足广大顾客的需要,所以推出了网上楼房的解决方案。
1.2国内现状
无论是出于仿效,还是迫于竞争,一些老牌的楼房销售商也加入网上建筑商的行列,如庞诺建筑商(B),疆界建筑商(B)等。
至少在1997年,国外网上建筑商达两百家以上。
而在国内,自杭州新华建筑商创办第一家网上建筑商后,网上建筑商如雨后春笋般涌现出来。
其中最为有名的莫过于1999年1月1日开通的上海销售商网上建筑商和3月9日正式营业的北京楼房大厦网上建筑商。
现在,国内网上建筑商数量数不胜数,因此我们很容易能看出国内网上建筑商竞争的激烈性。
1.3研究意义
楼房销售系统在国际互联网上可以实现的商务功能已经多样化,从基本的对外沟通展示功能、信息发布功能、在线楼房展示功能、到在线洽谈功能、在线交易功能、在线采购功能、在线客户服务功能、在线网站管理功能等等,几乎以往传统商店功能都可以在互联网上进行电子化的高效运作。
同传统的建筑商相比,网上楼房商店具有如下三点优势:
1)企业上网不仅给消费者和企业提供了更多的选择消费与开拓销售市场的机会,而且也是提供了更加密切的信息交流场所,从而提高了企业把握市场和消费者了解市场的能力。
同时企业上网扩大了企业的竞争领域,使企业从常规的广告竞争、促销手段等领域的竞争扩大到无形的虚拟竞争空间。
2)网上建筑商改变了企业竞争的交易成本。
网上建筑商具有投入成本低、批发数量大及用户多的优势。
电子商务也使企业规模影响竞争力的基础发生了改变。
例如在传统的销售渠道中,大书商与小书商之间的竞争差别很大。
电子商务使大书商与小书商之间规模差距的竞争变得几乎微不足道。
美国西雅图亚马逊公司在网上开办了一家大型建筑商,提供250万册楼房供在线购买。
只有两个人管理的网上建筑商提供的书目和服务,几乎可以与200人管理的传统建筑商提供的书目和服务一样。
3)网上建筑商的经验表明,如果网上建筑商可以为顾客提供品种齐全的楼房、折扣以及灵活的条件、可靠的安全性和友好的界面,在线购物者一般都愿意在网上进行楼房交易。
展望未来,网上楼房超市势必成为社会发展不可缺少的一部分,而其自身的发展趋势也必然更专业化、高质量化。
那么就要求我们提供的不仅仅是简单的在线查询、购买这么一个功能,而是要做到以客户的需求、爱好等各方面因素来改进我们的服务,使之更加专业,更有特色
1.4本章小结
本章介绍楼盘销售系统的可行性研究,其系统的目的,系统意义的简要介绍,对于系统开发前期阶段和过程起着重要的意义。
第2章相关技术介绍
本章介绍了在网上售楼系统中主要使用到的相关技术,如MVC、J2EE等。
本系统的设计与实现需要使用者对这些技术有一定的理解。
2.1JAVA开发语言的选择
现在,市场上可以选购的应用开发产品很多,流行的也有数十种。
目前在我国市场上最为流行,使用最多,最为先进的可用作企业级开发语言的产品有:
SUN公司的Java
Microsoft公司的VisualBasic
Microsoft公司的VisualC
Borland公司的Delphi
POWERSOFT公司的POWERBUILDER
在目前市场上这些众多的程序开发工具中,有些强调语言的弹性与执行效率;有些偏重于可视化程序开发工具所带来的便利性与效率的提高,各有各的优点和特色,也满足了不同用户的不同需求。
我的网站选择Java语言开发,其原因基于以下几点:
Java是一种简单的、面向对象的、分布式的、健壮的、安全的、结构中立的、可移植的、性能很优异的、多线程的、动态的语言[1]。
1)简单:
Java的风格类似于C++,并且摒弃了C++中容易引发程序错误的地方,如指针和内存管理。
此外Java提供了丰富的类库。
2)面向对象:
面向对象可以说是Java最重要的特性。
Java语言的设计完全是面向对象的。
Java支持静态和动态风格的代码继承及重用。
3)分布式:
Java包括一个支持HTTP和FTP等基于TCP/IP协议的子库[2]。
因此,Java应用程序可凭借URL打开并访问网络上的对象,其访问方式与访问本地文件系统几乎完全相同。
4)健壮:
Java致力于检查程序在编译和运行时的错误。
Java自己操纵内存减少了内存出错的可能性。
Java提供Null指针检测数组边界、检测异常出口、字节代码校验。
5)安全:
Java的安全性可从两个方面得到保证。
一方面,在Java语言里,像指针和释放内存等C++功能被删除,避免了非法内存操作。
另一方面,当Java用来创建浏览器时,语言功能和浏览器本身提供的功能结合起来,使它更安全。
6)结构中立:
为了建立Java作为网络的一个整体,Java将它的程序编译成一种结构中立的中间文件格式。
只要有Java运行系统的机器都能执行这种中间代码。
Java源程序被编译成一种高层次的与机器无关的byte-code格式语言[3],这种语言被设计在虚拟机上运行,由机器相关的运行调试器实现执行。
7)可移植的:
Java的可移植性一直是Java程序设计师们的精神指标,也是Java之所以能够受到程序设计师们喜爱的原因之一,最大的功臣就是JVM的技术[4]。
JAVA编译器产生的目标代码(J-Code)是针对一种并不存在的CPU--JAVA虚拟机(JAVAVirtualMachine),而不是某一实际的CPU。
JAVA虚拟机能掩盖不同CPU之间的差别,使J-Code能运行于任何具有JAVA虚拟机的机器上。
8)高性能:
Java可以在运行时直接将目标代码翻译成机器指令。
Sun用直接解释器一秒钟内可调用300,000个过程。
翻译目标代码的速度与C/C++的性能没什么区别。
9)多线程:
Java支持多线程,多线程功能使得在一个程序里可同时执行多个小任务。
线程,有时也称小进程,是一个大进程里分出来的小的独立的进程。
10)动态:
Java的动态特性是其面向对象设计方法的发展。
它允许程序动态地装入运行过程中所需要的类,这是C++语言进行面向对象程序设计所无法实现的。
Java编译器不是将对实例变量和成员函数的引用编译为数值引用,而是将符号引用信息在字节码中保存下传递给解释器,再由解释器在完成动态连接类后,将符号引用信息转换为数值偏移量。
2.2MVC设计模式
MVC(Model-View-Controller的简称)是XEROXPARC在20世纪80年代为编程语言Smalltalk-80发明的一种软件设计模式,至今已被广泛使用,目前是J2EE应所最常见的体系结构,它是一种设计模式,它把应用程序分成三个核心模块:
模型、视图、控制器,它们各自处理自己的任务。
视图是用户看到并与之交互的界面,也即应用程序的外观。
作用包括接收用户的输入,它并不包括任何实际的业务逻辑,它只是将数据转发给控制器。
同时,视图还负责展现模型传递给用户的数据,当后台模型更新数据时,视图也应当随之更新它的显示。
模型表示业务数据和业务逻辑,是应用程序的主体部分。
一个模型能为多个视图提供数据,因此提高了代码的可重用性。
控制器接受用户的输入并调用模型和视图去完成用户的需求。
当Web用户单击Web页面中的递交按钮来发送HTML表单时,控制器本身不输出任何东西和做任何处理。
控制器接收请求并决定调用哪个模型组件去处理请求,然后决定调用哪个视图来显示模型处理返回的数据。
MVC的优点表现在如下几个方面:
1) 首先,最重要的一点是多个视图能共享一个模型。
同一个模型可以被不同的视图重用,大大提高了代码的可重用性。
2) 由于MVC的三个模块相互独立,改变其中一个不会影响其他两个,所以依据这种设计思想能构造良好的松偶合的构件。
3) 此外,控制器提高了应用程序的灵活性和可配置性。
控制器可以用来联接不同的模型和视图去完成用户的需求,这样控制器可以为构造应用程序提供强有力的手段。
MVC的缺点表现如下:
在于它没有明确的定义,所以一个开发人员完全理解MVC并不是很容易。
使用MVC也需要精心的计划,由于它的内部原理比较复杂,所以开发者需要花费相当可观的时间去考虑如何将MVC运用到应用程序之中。
同时由于模型和视图要严格的分离,这样也给调试应用程序带来了一定的困难。
每个构件在使用之前都需要经过彻底的测试。
一旦构件经过了测试,就可以毫无顾忌的重用它们了。
还有开发MVC系统比简单的JSP开发要复杂许多,它需要更多的时间学习和掌握。
同时新东西的引入会带来新的问题,在选择MVC开发模式时必须仔细考虑这下问题:
1)必须基于MVC组件的方式重新思考和设计应用结构。
原来通过建立一个简单的JSP页面就能实现的应用现在变成了多个步骤的设计和实现过程。
2) 所有的页面和组件必须在MVC框架中实现,所以必须进行附加地开发工作。
MVC本身就是一个非常复杂的系统,所以采用MVC实现Web应用时,最好选一个现成的MVC框架,在此之下进行开发,从而取得事半功倍的效果[1]。
2.3Struts简介
Struts是Apache软件基金会(ASF)赞助的一个开源项目。
它最初是Jakarta项目中的子项目,并在2004年3月成为ASF的顶级项目。
它通过采用Java、Servlet/JSP技术,实现了基于JavaEE Web应用的Model-View-Controller〔MVC〕设计模式的应用框架〔Web Framework〕,是MVC经典设计模式中的一个经典产品[6]。
很多开发人员认为Struts目前尚不成熟,应用的成本较高。
附带的一点点建议:
Struts的优点主要集中体现在两个方面:
TAGLIB和页面导航。
TAGLIB是Struts的标记库,灵活动用,能大大提高开发效率。
Struts这个名字来源于在建筑和旧式飞机中使用的支持金属架。
它的目的是为了减少在运用MVC设计模型来开发Web应用的时间。
你仍然需要学习和应用该架构,不过它将可以完成其中一些繁重的工作。
Struts跟Tomcat、Turbine等诸多Apache项目一样,是开源软件,这是它的一大优点,使开发者能更深入的了解其内部实现机制。
2.4wel.xml配置
web.xml是JavaSERVLET规范所必需的web应用程序配置描述。
SERVLET/JSP容器使用这个文件来装载、配置应用程序,它用来通知SERVLET容器如何配置SERVLET和其他应用程序需要的高级对象。
struts-config.xml
struts-config.xml是Struts中核心文件[7]。
该文件配置各种组件,包括数据源DATASOURCE、表单类FORMBEAN、全局异常GLOBALEXCEPTION、全局转发GLOBALFORWARD、行为映射ACTIONMAPPINGS、控制器Controller、消息资源MESSAGERESOURCE及插件PLUGINS。
2.5tomcat容器
Tomcat是一个免费的开源的SERVLET容器,它是Apache基金会的Jakarta项目中的一个核心项目,由Apache,Sun和其它一些公司及个人共同开发而成[8]。
由于有了Sun的参与和支持,最新的SERVLET和JSP规范总能在Tomcat中得到体现。
Tomcat被JAVAWORLD杂志的编辑选为2001年度最具创新的java产品,可见其在业界的地位。
Tomcat4.0x中采用了新的SERVLET容器:
Catalina,完整的实现了Servlet2.3和Jsp1.2规范[9]。
由于Java的跨平台特性,基于Java的Tomcat也具有跨平台性。
与传统的桌面应用程序不同,Tomcat中的应用程序是一个WAR(WebArchive)文件。
WAR是Sun提出的一种Web应用程序格式,与JAR类似,也是许多文件的一个压缩包。
这个包中的文件按一定目录结构来组织:
通常其根目录下包含有Html和Jsp文件或者包含这两种文件的目录,另外还会有一个WEB-INF目录,这个目录很重要。
通常在WEB-INF目录下有一个web.xml文件和一个classes目录,web.xml是这个应用的配置文件,而classes目录下则包含编译好的SERVLET类和JSP或SERVLET所依赖的其它类(如JAVABEAN)。
通常这些所依赖的类也可以打包成JAR放到WEB-INF下的lib目录下,当然也可以放到系统的CLASSPATH中,但那样移植和管理起来不方便。
在Tomcat中,应用程序的部署很简单,你只需将你的WAR放到Tomcat的WEBAPP目录下,Tomcat会自动检测到这个文件,并将其解压。
你在浏览器中访问这个应用的JSP时,通常第一次会很慢,因为Tomcat要将JSP转化为SERVLET文件,然后编译[10]。
编译以后,访问将会很快。
Tomcat不仅仅是一个SERVLET容器,它也具有传统的Web服务器的功能:
处理Html页面。
但是与Apache相比,它的处理静态Html的能力就不如Apache.我们可以将Tomcat和Apache集成到一块,让Apache处理静态Html,而Tomcat处理JSP和SERVLET.这种集成只需要修改一下Apache和Tomcat的配置文件即可。
2.6本章小结
本章首先介绍的JAVA开发语言的相关概念和基础知识,然后进一步介绍MVC高内聚低耦合的开发模式的基本概念,最后介绍了本系统开发使用的开发语言及其搭建服务器的相关概念。
第3章需求分析与概述
网上楼房销售系统是一个基于内部网和外部网的应用程序,采用J2EE技术,提高系统数据的共享性,增加系统服务的对象。
3.1功能结构描述
3.1.1功能需求分析
本系统主要分为5大功能模块,楼盘管理模块,订单管理模块,交易管理模块,用户管理模块,管理员管理模块,各大模块中又分为多个2级模块,用户登录系统后便可以浏览楼盘信息,购买楼盘,查看订单信息,交易记录信息。
管理员登录系统可以添加,删除,更改楼盘信息等。
具体的功能细节如下图:
图3-1功能结构图
3.1.1系统数据流设计
根据功能结构描述和需求分析制定系统的数据流向,具体的管理员管理和用户管理的数据操作流向见下图:
图3-2系统数据流图
3.2系统整体分析与概述
本节将从功能,可行性,性能分析本系统。
3.2.1功能需求分析
整个功能分为两大分类,用户管理和管理员管理,用户登录后可以查看购买楼盘等,管理员的登录后可以添加,更改楼盘信息等,具体的需求如下。
(1)顾客可以方便地查看楼房信息,及了解每天的特价楼房。
(2)顾客可以方便地队购物车中的楼房进行增加、删除、修改和下订单。
(3)顾客可以反馈自己的满意和不满意意见。
(4)管理员可以方便地添加、删除、修改楼房和添加和删除、楼房类别。
(5)管理员可以方便地查看订单,可以方便执行订单。
(6)管理员可以方便地查看顾客留言信息和记录反馈信息的处理情况。
(7)管理员可以方便地添加、删除、修改推荐楼房,新上架楼房,畅销楼房。
(8)管理员可以方便地查看和冻结用户信息。
3.2.1可行性分析
本系统采用JSP开发语言,使用TOMCAT服务器,在windowsXP下开发网站,使用B/S结构开发系统其性能特性如下:
(1)响应时间:
对远程查询访问响应的平均时间是3秒,最长是10秒;Intranet程序的响应时间少于1秒。
(2)吞吐量:
每秒处理的事务数达到2000条。
(3)容量:
系统可以容纳的客户数是1000人同时使用。
具体是开发环境为应用的开发工具是JDK1.5、Tomcat6.0、DreamweaverMX8.0和MYSQL,设计的模块和性能将受到上述开发工具的约束。
3.2.1性能分析
使用数据对象关联查询提交楼盘检索速度,订单和交易记录分离管理降低功能模块的耦合,用户可以清晰的了解系统的模块分类。
3.2本章小结
本章介绍了系统的功能需求,并从功能,可行性,性能等方面详细对系统进行了描述。
使用数据
楼房浏览模块
楼房浏览模块是互联网程序,它的用户是顾客。
顾客可以分不同楼房种类浏览楼房的名称、种类、价钱、建造商和建造日期等;顾客可以输入楼房关键字查询楼房信息。
3.1.2楼房管理模块
楼房管理模块是应用程序,它的用户是后台系统管理员。
楼房信息管理员可以添加、删除、修改楼房的种类和楼房。
3.1.4订单管理模块
订单管理模块是应用程序,它的用户是后台系统管理员。
管理员负责查看订单的详细信息和执行订单。
3.1.7楼房类别信息管理模块
楼房类别信息管理模块是应用程序,它的用户是后台管理员。
管理员可以查看、增加、删除楼房类别信息。
3.1.9顾客的注册、登录模块
顾客的注册、登录模块是互联网程序,它的用户是顾客。
顾客需求登录楼房销售系统才可以选购楼房。
3.1.10后台信息管理的登录模块
信息管理的登录模块是应用程序,它的用户是后台管理员。
管理员登录通过验证,可以对后台信息进行操作。
3.1.11用户管理模块
用户管理模块是应用程序,它的用户是后台管理员。
管理员可以查看用户的详细信息、冻结或解冻用户信息。
3.1.17新建楼房上架显示模块
新建楼房上架信息显示模块是互联网程序,它的用户是顾客。
顾客可以查看最新的上架楼房列表,可以将新上架楼房放入购物车。
3.1.19分类浏览楼房模块
分类浏览楼房模块是互联网程序,它的用户是顾客。
顾客可以点击楼房类别,然后显示该类别的所有楼房,可以将楼房放入购物车。
第4章数据库设计
4.1数据库的概念
本网站将使用一直以来使用都最为广泛的关系模型作为数据库的建设依据。
在用户的观点下,关系模型中数据的逻辑结构是一张二维表,一个关系对应通常说的一张表,并且关系的每一个分量必须是一个不可分的数据项。
而一个基于关系模型的数据库则是由若干个二维表组成的。
对于一些大型和中型的数据库,如Oracle,SQLServer2000/7.0等都属于关系型数据库,同时它们所带有的数据库管理工具是其他小型数据库所没有的,而同时这些工具又为管理员的工作节省了很多的时间和财力。
4.2数据库的三层结构
1、用户视图层:
这一层面向各个具体用户。
从满足用户需求出发而设计的各种各样的文件结构,在系统中称为子模型。
子模型用图、表来表示,给人以直观清晰、一目了然之感。
用户看到的是一些视图,它只提供用户所需的信息,以免用户访问到其它无关的信息。
例如,在银行中的顾客看到的是数据库顾客账户的信息,他们不能访问银行雇员的工资信息。
然而计算机是不会认识这些图表的。
为了让计算机认识它,DBMS设置了一种数据定义语言(DLL)。
用DLL精确定义数据模型的程序称为模式。
除非整体改动,否则数据库模式一般是部经常变化的。
用户视图的这种语言形式定义称为子模式。
由图可见,对于同一数据库,系统提供许多的用户视图。
也就是说,一个数据库可以有多个不同的子模式。
2、逻辑层:
这一层面向全局,它综合各用户