jsp5基于shh的手机购物网站(ssh)_第1页
jsp5基于shh的手机购物网站(ssh)_第2页
jsp5基于shh的手机购物网站(ssh)_第3页
jsp5基于shh的手机购物网站(ssh)_第4页
jsp5基于shh的手机购物网站(ssh)_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

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

文档简介

第1章系统概述1.1电子商务介绍在20世纪90年代电子商务紧跟着信息经济的脚步成为在美国、欧洲等发达国家崛起的新概念。日前,电子商务在国际上并没有统一的说明和解释。通常来说,消费者在开放的国际互联网和其他网络环境下经过服务器的运行完成网上购物、企业间商业交易的一种新式的贸易运营,这便是狭义上的电子商务。即电子商务=Web(服务器)+IT(信息技术)+企业业务。电子商务的种类有以下几种:从它业务往来的对象来看,电子商务的运用包含了企业与企业之间的电子商务(B2B)、企业与消费者之间的电子商务(B2C)、企业与政府之间的电子商务(B2G)、政府与消费者之间的电子商务(G2C)、企业内部的电子商务。②电子商务的内在特质:商务和电子商务角逐力在于信息平台、电子商务的任务在于使用互联网科技对传统能源融合——这才是电子商务的核心。现如今电子商务已经发展成为贸易的全球化、直接化、网络化,电子商务的发展已经呈现势不可挡的趋势,但是我国的电子商务仍然有待优化。如果想尽早的完成全过程的电子商务,就要加紧网络基本设施的建立和网络互联,让金融电子化及海关、税务、行政监管部门电子化,市场环境网上支付不在是梦想,尽快建成安全的系统认证体系,健全相关法律法规等等。1.2电子商务系统初级的电子商务网上交易实现的体系就要以电子商务系统为保证。网上贸易的信息交流就是通过数字化的信息渠道实行的,交易的两方都一定要具有一定的信息技术用具。为了保证双方的利益不受损害,并且得到保障,一定要有相对应的货物配送和支付结算的策略。另外,为了让企业、组织和消费者可以利用数字化交流渠道,让交易顺遂进行配送和支付多一层保障,这就需要口的中间商参与其中,就是通俗意义上的电子商务服务商。一个详细的电子商务解剖体系,如图1-1所示:图1-1电子商务系统下面按电子商务系统的基础和环境来分别介绍。1.2.1基础电子商务系统初级的电子商务体系囊括了Internet信息系统、电子商务服务商、企业、组织、消费者、实物配送和支付结算这五点。这五点就像人的五官一样缺一不可,因为任何一点都决定这网上购物能活顺利完成。Internet信息系统企业、组织和电子商务服务商在Internet的底子上创造新的信息体系就是Internet信息体系。Internet存在的意义就是提供一个不仅通达,而且具有安全性和可控制性的网上信息贸易平台。这是电子商务的心脏。②电子商务服务商Internet是一个蕴含着极大商机和潜力的平台,更是大批专业化分工者进行相互合作的舞台,他们为企业、组织和消费者在网上交易提供了保障。这些就是电子服务商的影响和价值。电子商务服务商主要分为以下几种:a、接入服务商(InternetAccessProvider,IAP),它重点提供Internet通信和线路租借服务。b、服务提供商(InternetServiceProvider,ISP),它关键为企业建立电子商务系体系提供全方位的支持。通常的企业、组织与消费者上网时仅仅由ISP接入Internet,由ISP向IAP租借线路。c、内容服务提供商(InternetContentProvider,ICP),以为企业提供信息内容服务为首要任务,如财经信息、搜索引擎。d、应用服务系统提供商(ApplicationServiceProvider,ASP),为企业、组织建设电子商务系统时提供解决方案是它的核心任务。③企业、组织与消费者企业电子商务系统是由基于Intranet(企业内部网)基础上的企业管理信息系统、电子商务站点和企业经营管理组织的人员组成。网上贸易交流的主要群体是企业、组织和消费者,这些被称之为网上交易的基础。企业电子商务体系是以Internet(企业内部网)如图1-2所示。图1-2企业电子商务系统结构图a、企业内部网络系统企业组建电子商务体系时主要是考虑这几个元素:第一是思考企业的经营者是谁的问题,第二怎么采用不一样的方法与这些客户沟通。对于重要的战略合作者或者可以简单的称之为合伙人,企业要让他们对企业的系统有不一样的认识和深入的认知,必须让其进入企业的Intranet系统并且查看相关的信息;然而对于和企业业务相关合作的企业,企业需要和他们一起建立Extranet,方便企业间在信息资源上的共享;对普通的客户做到Internet进行联系交流就够了。b、企业管理信息系统如何在组织中看眼有效发挥收集、处理、存储以及传播信息和支持组织的决策是企业管理信息系统的影响。根据组织的不同用处,将其分成多个不同的信息系统,例如营销系统、制造系统、财务系统、人力资源系统等,然后各部门各司其职,使之高效运转,这就是部门信息化的必要性。依据组织内部结构还可以把企业管理信息系统更加细化,比如说可划分为操作层、管理层、战略层这四个不能层面。每个层面任务不能,操作层负责平日里基本的经营活动和交易记录;知识层负责专业知识和数据的提炼从而帮助工作人员的工作;管理层负责管理、监督和控制,在管理的同时有效的做到控制局面;战略管理层是至关重要的,不仅要负责资金是否到位,还要为企业的长远发展做好规划。c、电子商务站点它不仅可以直接连接到互联网,顾客或供货商都可以直接通过网站了解企业信息、企业文化以及保证交易顺利,而且可以将市场和企业有效连接起来,将市场信息快速与企业信息融合,这样企业就不会与市场脱轨,也可以掌握市场动态。电子商务站点在其中起到的作用可谓是承上启下。企业内部网络系统、企业管理信息系统、电子商务站点是企业电子商务中的“金三角”,三者缺一不可。企业内部网络系统是信息传播的媒介,就让货币是商品交易的媒介一样;企业管理信息系统则是扮演工人的角色,负责加工和处理;电子商务站是企业推展业务的通道。④商品配送在网上交易主要是因为它很方便,可以送货上门,如果买家付款后不能及时享受到配送和送货上门的服务,这就不能满足买家的需求。因此,一个完整的电子商务系统是需要高效率的配送物流体系为纽带的。⑤支付结算支付问题是网上购物中的重要问题,由于现在网上购物处于发展阶段,仍然有许多问题没有解决,例如信用问题和网上交易安全问题,因此许多网上购物并不通过网络平台完成交易。1.2.2电子商务系统环境电子商务系统在提供交易的同时必须经过信息交换、支付结算和商品配送这基础的服务,还将面临更大的挑战,例如信息技术和交易平台不成熟的新问题,每个问题都将带来严重的后果,有的会给企业带来致命的打击,有的会让消费者对企业丧失信心。。要想上述问题得到有效解决必须从市场外部环境着手。企业要通过制定相关政策,遵守法律法规来完善自我,保证消费者权益;社会上需要普及网上交易知识,做好引导工作。政府要完善法律法规。综上所述,发展电子商务不是单方面的,是需要政府、企业、社会一起积极参与的,1.3电子商务系统Web平台的开发方式1.3.1Web平台的体系架构Web平台的三层分布式体系结构为图1-3所示。客户端浏览器客户端浏览器Web服务器应用服务器数据库服务器反馈页面HTTP请求事务逻辑请求结果图1-3Web平台的三层分布式体系结构三层分布式体系结构的第一层是客户端表示层、客户层仅仅是整个应用系统的图形界面表示;处于第二层的应用服务层,有一台或多台服务器组成,其中Web服务器主要负责对客户端应用程序的集中管理,应用服务器(ApplicationServer)主要负责应用逻辑的集中管理,即事务处理;处于第三层的是数据中心层,有数据库系统,主要负责数据的存储和组织、数据库的分布式管理、数据库的备份和同步等等。电子商务的应用可以看作一个客户与电子商务站点之间的一系列交互过程。整个交互过程从客户端所浏览的一个页面开始。用户单击该页面上的一个按钮或链接就产生一个请求,该请求通过HTTP传递到Web服务器上,Web服务器将页面中的请求及有关数据取出来传给应用服务器,应用服务器调用相关的商务逻辑,实际上是一个Web应用程序,进行相应的处理,从外部数据库服务器存取数据,然后将结果传回Web服务器,Web服务器再将数据结果转换为页面的形式传给浏览器,于是在客户端产生了新的页面。该页面是这一次请求的结果,也是下一次请求的开始。1.3.2Web服务器平台在电子商务系统的开发中,Web服务器平台的选择是至关重要的,它包括Web服务器操作系统和Web服务器软件,而Web服务器软件通常又决定了将采用什么样的操作系统。Web服务器平台决定了电子商务网站的可靠性、对客户的服务能力,以及为了维持网站运行所需要付出的代价。只有选择了正确的产品以及作出相应正确的设计,电子商务系统才可以成为商家和顾客之间进行沟通的良好途径。三种最常用的Web服务器平台是:基于ApacheHTTPServer的服务器平台、基于网景的NES的服务器平台、基于微软的IIS的服务器平台。微软的Windows2000Server+IIS架构的Web服务器平台功能强大,配置灵活,支持目前流行的多种服务器端开发技术,开发成本低、周期短、维护相对简单,很适合中小企业进行电子商务系统的开发,我们采用了基于微软的IIS的Web服务器平台。下面就三种Web服务器平台的特点作一比较。1.基于ApacheHTTPServer的服务器平台Apache是一种功能强大、高灵活性、高可扩展性的免费Web服务器软件。通过灵活的配置,ApacheWeb服务器可以实现诸多强大的功能,Apache源代码开放,所以很容易与第三方模块相结合,便于进一步扩展功能,定制成适合自己需要的系统。Apache可运行在多种操作系统及硬件平台上,但通常是与Linux操作系统搭配来组建Web服务器平台。如果采用Linux+Apache架构,可以搭建大型Web服务器平台,实现复杂的企业级电子商务系统。由于Linux和Apache都是免费的软件,只需要花费很低的成本就可以搭建出灵活的电子商务系统Web平台,但是它的开发是复杂而艰巨的,由于Linux和Apache都是开放的、不断扩展中的软件,还不是很完善,系统的配置和维护比较困难,需要专业人员的参与,对于小型的企业电子商务系统并不适合。2.基于网景的NES的服务器平台网景公司的NetscapeEnterpriseServer(NES)是一个非常流行的Web服务器平台,很适合开发复杂的企业级网站,几乎可以在所有流行的操作系统上运行,包括Digital、Unix、HP-UX、Solaris和WindowsNT等。因特网上很多有名的网站都是用NES开发的。NES功能强大,拥有广泛的第三方组件及工具支持,而且支持多种编程模型。NES通常构建在Linux或Unix类操作系统上,一般适用于开发大型的企业电子商务系统。3.基于微软的IIS的服务器平台微软公司的InternetInformationServer(IIS)是因特网上非常流行的WWW服务器软件,既适用于小网站,也适合于交易量很大的企业级网站。目前,IIS只能运行在WindowsNT或Windows2000Server上。IIS内有一个集成的搜索引擎,允许用户用多种工具(包括ASP、ActiveXDataObjects以及SQL数据库查询)来创建搜索表,IIS允许用远程浏览器对服务器进行管理,支持多个虚拟主机。此外由于引入了ASP技术,你可以很方便的利用它来创建动态网页。Windows2000Server+IIS的架构是当前非常流行的一种Web服务器平台,它的配置和开发都比较容易,很适合中小企业开发B2C型的电子商务系统。4.Web平台的动态设计技术目前比较流行的Web开发技术有:CGI,ASP,PHP,JSP,ASP.NET等。在本电子商务系统的开发中,我们主要采用了目前比较流行的,来自微软公司的Web动态设计技术ASP.NET。①CGI技术CGI(公共网关接口CommonGatewayInterface)是最古老的Web程序设计方式,它提供了一个外部应用程序与Web服务器交互的标准接口。CGI最大的好处在于其与浏览Web站点的用户之间的交互能力,使信息网关、反馈机制、访问数据库、订阅和查询等一系列灵活复杂的操作得以实现。CGI程序可以使用Perl,C,C++等任何能够形成可执行程序的语言编写,跨平台性能极佳,几乎可以在任何操作系统上实现。但是CGI开发很复杂,且不具备事务(Transaction)处理功能,会大量挤占Web系统的资源,影响系统的运行效率。②ASP技术ASP(ActiveServerPages)内含于IIS中,提供了一个服务器端的脚本运行环境,现在的IIS5.0已经支持ASP3.0了。利用它可以产生和运行动态的、交互的Web服务应用程序。与常见的在client端实现动态主页的技术如JavaApplet、ActiveXControl、VBScript、JavaScript等不同,ASP中的命令和Script语句都是由服务器来解释执行的,执行结果产生动态生成的Web页面并送到浏览器,而Client端技术的Script命令则是由浏览器来解释执行的。ASP的优点是使用Script(描述性的语言),不需要编译,可嵌入到Web页面中,并且由于ASP在服务器端解释执行,开发者可以不必考虑浏览器是否支持。ASP的缺点是它的跨平台能力差,目前只能运行在微软的Web服务器上,且安全性不好,需要注意经常下载微软发布的补丁程序。③PHP技术PHP是一种跨平台的服务器端的嵌入式脚本语言,它大量地借用C、Perl语言的语法,并结合PHP自己的特性,使Web开发者能够快速写出动态页面。它可以在Windows、Unix、Linux的Web服务器平台上正常运行,还支持IIS、Apache等通用服务器软件,用户在更换服务器平台时,只需要作少量的改变即可。PHP最大的好处在于它是完全免费的,可以不受限制的获得源码,使得开发者容易加入自己的特色。PHP的缺点在于虽然它支持目前大多数的数据库,但是提供的数据库接口不统一,比如对Oracle、MySQL、Sybase的接口都不一样,而且缺乏对分布式多层系统结构的支持,由于电子商务系统会涉及到多种数据源,而且通常采用分布式体系结构,因此并不适合用来开发电子商务系统。④JSP技术JSP是Sun公司推出的新一代站点开发语言,它最大的特点是将Web程序设计的逻辑处理和内容与外观设计隔开,通过使用JSP标记和小脚本来生成页面上的动态内容。在服务器端,JSP引擎解释JSP标记和小脚本,生成所请求的内容,例如通过访问JavaBeans组件,使用JDBC/JDO技术访问数据库,并且将结果以HTML或XML页面的形式发送回浏览器。由于JSP页面的内置脚本语言是基于Java编程语言的,拥有Java编程语言“一次编写,各处运行”的跨平台无关性的好处,开发效率高,安全性好。⑤ASP.NET技术NET框架是.NET平台中居于核心地位的编程引擎,它提供了.NET代码的公共运行环境和一个语言无关的基本类库。.NET框架是高生产率的、基于标准的多语言应用程序执行环境,处理基本杂务和减轻部署任务。应用程序执行环境管理内存,解决版本控制问题以及提高应用程序的可靠性、可伸缩性和安全性。公共语言运行库是.NET框架中的引擎,它提供了一个安全的托管执行环境,并且旨在用于支持开发人员使用多种不同的语言来创建应用程序。它有统一的类型系统并允许跨语言继承和调试。通过使用.NET框架,开发人员就拥有了速度最快、效率最高的生成应用程序的方法。.NET平台具有高安全性,.NET框架通过其核心安全功能提供保护客户机和服务器的方法。由于公共语言运行库在核心层透明地处理安全性,因此开发人员可将精力集中于应用程序逻辑。开发人员仍然可以随时使用和扩展安全模型。目前,CGI技术由于开发复杂,效率也不是很高,现在已经很少有人再用它来开发Web应用程序。ASP和PHP技术则在国内比较流行,但是由于PHP自身的缺点,并不是很适合开发电子商务系统,JSP在国际上比较流行,适合开发一些企业级电子商务系统,但现在在国内运用的还比较少,在技术上和成本上要求都比较高。因此对于一些中小企业开发B2C型电子商务系统,采用微软的IIS+ASP方式,开发周期短,成本低,通过引入XML技术来描述及传送数据内容,可以开发出灵活的电子商务应用,但是ASP的跨平台能力差,目前只能运行在微软的Web服务器上,且安全性不好,需要注意经常下载微软发布的补丁程序。因此,本系统采用ASP.NET+IIS5.0、SQLServer2000为开发工具,具有良好的扩展性。1.3.3Web平台的开发方法本系统主要运用了MVC来阐述该系统的开发过程,经过系统规划、系统需求分析、系统数据库设计、系统总体设计、系统详细设计和测试逐步完成系统各功能的实现,将计算机作为管理决策的支持手段,融入日常业务的各个环节,使得管理更加规范,同时也能够更好的为顾客服务,该系统大大提高了工作效率,为公司带来了更好的社会效益和经济效益。1.4软硬件需求硬件需求:CPU:Pentium以上计算机内存:512M以上软件需求:操作系统版本:WindowsXP/vista/Win7开发工具:MyEclipse6.0.1后台服务器:ApacheTomcat6.0开发语言:Java浏览器:IE6.0

第2章可行性分析开发系统的过程不是一帆风顺的,总会受到这样和那夜的限制。所以每一个项目开发前都有进行全方面的可行性分析,这样可以规避一定的风险,减少人力、物力和财力不必要的浪费。下面我就通过技术、经济、操作以及法律四个方面来分析。2.1技术的可行性这个系统的开发一MyEclippse和MySql数据库为依托,开发语言是Java,着重采用了J2EE技术,java作为一个面向对象的编程语言,不仅简单易学而且灵活方便。在大学期间java课程和J2EE知识都有了解和学习,总体而言本系统的在开发上难度系数并不高,这个系统的“心脏”是数据库设计和操作。幸好上大学时认真学习了软件工程、软件测试等一系列课程,也完成了一定量的课程设计,培养了我的系统分析能力、设计能力和测试能力。所以在系统实现上完全具有一定的可行性。2.2经济的可行性本系统所用的软件都是开源的,为开发软件节省了大量的金钱和时间,达到降低成本,提高开发效率的目的,本系统对计算机配置的要求不高,甚至网吧更换下来的低配置电脑都可以完全满足需要,所以在经济上具有完全的可行性2.3操作可行性这个系统有着便捷的操作方式,输入信息的页面大多为下拉式菜单的选择方式,在一些页面,信息甚至可以自动生成,不要要输入,就连时间的操作有日历来操控的,操作简洁而又方便,对操作员没有过高的要求,只要对电脑系统熟练操作就可以了,再加上对这个系统的稍微培训就能直接工作,正式因为系统拥有良好的可视性,所以在技术上没有什么难度。2.4法律的可行性自己开发的交易管理系统,是具有实际意义的系统,将开源代码运用于开发环境软件和使用数据库,这正是开发这个系统与一般系统的不同之处,它不存在任何侵权问题,这就是该系统在法律上的可行性。

第3章需求分析1.在平台功能的分析基础上,得到本平台的功能模块图如下:网上购物平台index.jsp网上购物平台index.jsp。商品修改用户管理管理进入新闻管理用户注册商品管理商品添加会员管理广告链接新闻修改新闻添加广告设置链接管理商品名称用户修改会员删除商品搜索网站布局图3-1平台购物模块图3.2系统用户用例图3.2.1普通用户用例图出于安全性的考虑,普通用户只有浏览商品和商品查询、商品购买等功能,其他的删除修改功能都没有设计,因为普通用户最主要关心的就是商品信息的更新和查询等功能,普通用户用例图如图3.2所示:图3-2普通用户用例图3.2.2管理员用例图管理员是系统的核心用户,涉及到七大功能模块,管理员对系统的所有信息有着操作的权限,能够及时动态的更新系统的各项信息。图3-3管理员用例图3.3功能模块需求分析本系统最大的特点是使用操作简单、友好的提示信息。本系统将实现以下基本功能:(1)系统具有简洁大方的页面,使用简便,友好的错误操作提示(2)管理员用户具有商品类别管理、商品信息管理、商品信息更新管理、订单管理、会员信息管理、公告管理、系统管理功能(3)普通用户用户具有浏览商品、商品查询、购买商品、修改个人信息等功能(4)具有较强的安全性,避免用户的恶意操作系统的功能结构图,分普通用户平台,管理员平台。普通用户功能模块图说明:普通用户可以在线浏览商品,查询商品,浏览公告信息,如果要购买、下订单操作,首先需要注册一个个人账号,然后登陆到系统中,如功能图3-4所示:图3-4普通用户用户功能模块图管理员功能模块图说明:管理员是功能最多的一种用户角色。(1)商品类别信息管理模块:在该模块中完成对商品类别信息的管理,包括类别录入、查询、修改、增加和删除等功能操作。其中类别信息包括类别名称、类别介绍等信息。(2)商品信息管理模块:在该模块中定义了商品信息的管理,其功能包括商品录入、查询、删除等操作。(3)会员管理模块:该模块中包括浏览会员信息和删除会员信息2个功能。(4)系统管理模块:在该模块中定义了系统日常维护的功能,包括公告信息的添加和查询,修改功能,以及系统用户管理和修改密码等功能。管理员用户功能模块图如图3-5。图3-5管理员用户功能模块图3.4设计的基本思想设计思想遵循以下几点:1.采用B/S模式进行开发,其优点是后台与前台处理层次分明,而且符合众多已经习惯网页搜索方式的用户。2.采用面向对象的开发与设计理念。运用面向对象技术的前提是对整体系统的高度和准确抽象,通过它可以保证系统良好的框架,进而带来产品较强的稳定性和运行效率。3.采用模块化设计。模块化设计要求将整个系统划分成基于小的模块,有利于代码的重载,简化设计和实现过程。4.简单方便的系统界面。设计简单友好的系统界面,方便用户较快的适应系统的操作。5.速度优先原则。由于此工具最重要的评测标准就是速度,因此在设计过程中,具体过程尽量做到资源占用少,速度快。6.设计既要突出重点,又要细致周到。要符合设计需求,在有可能改进的地方进行扩充,使系统更适应用户的需要。3.5性能需求3.5.1系统的安全性本商品交易系统在管理权限上要严格进行控制,具体要求如下:1.要想管理本系统的商品信息,必须先要凭用户名和密码登陆到系统中,没有权限的用户不能通过任何方式登录系统查看系统的任何信息和数据,以确保系统的严密性和安全性。2.在具体实现中设定不同权限,不同权限用户登录到系统后,不能越级操作,管理员可以使使用所有模块;普通用户用户只能在线浏览信息,比如,查询商品信息、在线购买、下订单等功能。3.5.2数据的完整性1.各种记录信息的完整性,信息记录内容不能为空2.各种数据间相互联系的正确性3.相同数据在不同记录中的一致性3.6界面需求界面设计目前已经成为评价软件质量的一条重要指标,一个好的用户界面可以增加用户使用系统的信心和兴趣,提高工作效率,JSP技术是用JAVA语言作为脚本语言的,JSP网页为整个服务器端的JAVA库单元提供了一个接口来服务于HTTP的应用程序。创建动态页面非常方便。用户界面是指软件系统与用户交互的接口,通常包括输出、输入、人-机对话的界面格式等。1.输出设计输出是由计算机对输入的原始信息进行加工处理,形成高质量的有效信息,并使之具有一定的格式,提供管理者使用,这是输出设计的主要职责和目标。系统设计的过程正好和实施过程相反,并不是从输入设计到输出设计,而是从输出设计到输入设计,这是因为输出表格直接与使用者相联系,设计的出发点应当是保证输出表格方便地为使用者服务,正确及时反映和组成用于各部门的有用信息。输出设计的原则是考虑既要全面反映不同管理层的各项需要,又要言简意赅,不要将用户需要和不需要的都提供给用户。2.输入设计输入数据的收集和录入是比较费事的,需要大量的人力和一定设备,并且容易出错。如果输入系统的数据有错误,则处理后的输出将扩大这些错误,因此输入数据的正确性对于整个系统质量的好坏是具有决定性意义的。输入设计的原则有如下几点:1)输入量应保持在能满足处理要求的最低限度。设计中可采用设置字段初值,下拉式数据窗口等方式尽量减少用户键盘输入量。输入量越少,错误率就越少,数据准备时间也减少。2)输入的准备及输入过程应尽量容易进行,从而减少错误的发生。3)应尽量早对输入数据进行检查(尽量接近原数据发生点),以便使错误及时得到更正。4)输入数据尽早地用其处理所需的形式被记录,以避免数据由一种介质转移到另一种介质时需要转录而可能发生的错误。

第四章系统分析与设计4.1数据库的分析与设计计算机信息系统以数据库为核心,在数据库管理系统的支持下,进行信息的收集、整理、存储、检索、更新、加工、统计和传播等操作。数据库已经成为现在信息系统等计算机系统的基础与核心部分。数据库设计的好坏直接影响到整个系统的质量和效率。数据库的设计一般经过规划。需求分析、概念设计、逻辑设计、物理设计5个步骤。4.1.1数据库的概念结构设计概念设计是指在数据分析的基础上自底向上的建立整个系统的数据库概念结构,从用户的角度进行视图设计,然后将视图集成,最后对集成的结构分析优化得到最后结果。数据库的概念结构设计采用实体—联系(E-R)模型设计方法。E-R模型法的组成元素有:实体、属性、联系,E-R模型用E-R图表示,是提示用户工作环境中所涉及的事物,属性则是对实体特性的描述。概念设计的目标是产生反映企业组织信息要求的数据库概念结构,即概念模式。概念模式是独立于数据库逻辑结构,独立于支持数据库的DBMS,不依赖于计算机系统的,根据以上对数据库的需求分析,并结合系统概念模型的特点及建立方法,建立E-R模型图。实体间关系属性实体实体间关系属性实体

(1)普通用户实体E-R图如图4-1所示:性别姓名年龄性别姓名年龄密码密码联系方式用户名联系方式用户名普通用户普通用户图4-1普通用户E-R图(2)商品类别实体E-R图类别介绍类别介绍是否删除类别名称是否删除类别名称商品类别商品类别图4-2商品类别信息实体E-R图

(3)商品信息E-R图商品介绍商品图片商品价格商品介绍商品图片商品价格商品品牌商品品牌商品名称类别ID商品名称类别ID商品信息商品信息图4-3商品信息实体E-R图(4)公告信息E-R图公告内容公告内容发布时间发布时间公告标题公告标题公告信息公告信息图4-4公告信息实体E-R图

(5)管理员信息E-R图登陆账号登陆账号登陆密码用户ID登陆密码用户ID管理员管理员图4-5管理员信息实体E-R图(6)订单信息E-R图送货地址付款方式图片总金额送货地址付款方式图片总金额下单时间绍下单时间绍订单编号会员ID订单编号会员ID订单信息订单信息图4-6订单信息实体E-R图4.1.2数据库的逻辑结构设计我们知道,数据库概念模型独立于任何特定的数据库管理系统,因此,需要根据具体使用的数据库管理系统的特点进行转换。即转化为按计算机观点处理的逻辑关系模型,E-R模型向关系数据库模型转换应遵循下列原则:*每一个实体要转换成一个关系*所有的主键必须定义非空(NOTNULL)*对于二元联系应按照一对多、弱对实、一对一、多对多等联系来定义外键。根据E-R模型,普通用户公寓管理系统建立了以下逻辑数据结构,下面是各数据表的详细说明。(1)普通用户表主要是记录了普通用户基本信息。表结构如表4-1所示。表4-1普通用户表(t_user)列名数据类型长度允许空是否主键说明user_idint4否是用户IDuser_namevarchar50否否用户名user_pwvarchar50否否用户密码user_realnamevarchar50否否姓名user_sexvarchar50否否性别user_telvarchar20否否联系方式user_addressvarchar20否否住址商品类别信息表主要是记录了商品类别的基本信息,表结构如表4-2所示。表4-2商品类别信息表(t_catelog)列名数据类型长度允许空是否主键说明catelog_idint4否是类别IDcatelog_namevarchar50否否类别名称catelog_miaoshuvarchar50否否类别介绍(3)商品信息表主要是商品的相关信息,其中ID是主键,表结构如图4-3所示。表4-3商品信息表(t_goods)列名数据类型长度允许空是否主键说明goods_idInt4否是商品IDcatelog_idInt4否否类别IDgoods_namevarchar50否否名称goods_miaoshuvarchar50否否介绍goods_picvarchar50否否商品封皮shichangjiaDate50否否商品价格goods_tejiavarchar50否否商品特价(4)公告信息表记录了管理员发布的系统公告基本信息,表如图4-4所示。表4-4公告信息表(t_gonggao)列名数据类型长度允许空是否主键说明idint4否是公告IDtitlevarchar50否否公告标题contentvarchar50否否公告内容shijianvarchar50否否发布日期(5)管理员信息表主要记录了管理员的账号信息,包括用户名和密码,表结构如表4-5所示。表4-5管理员信息表(t_admin)列名数据类型长度允许空是否主键说明userIdint4否是编号userNamevarchar50否否用户名userPwvarchar50否否密码(6)订单信息表主要记录的会员的订单的信息,包括订单编号、下单时间等,表结构如表4-6所示。表4-6订单信息表(t_order)列名数据类型长度允许空是否主键说明order_idint4否是编号order_datevarchar50否否下单时间order_zhuangtaivarchar50否否订单状态songhuodizhivarchar50否否送货地址fukuanfangshivarchar50否否付款方式jinevarchar50否否总金额user_idint4否否会员ID(7)留言信息表主要记录了会员的留言的信息,包括留言标题、留言内容等,表结构如表4-7所示。表4-7留言信息表(t_liuyan)列名数据类型长度允许空是否主键说明idint4否是编号titlevarchar50否否留言标题contentvarchar50否否留言内容shijianvarchar50否否留言时间4.1.3数据库的连接原理采用JDBC连接数据库的方式,只需在工程中导入对应数据库的jar包,就可以方便的对数据库进行连接,在程序中,用Class.forName()方法来加载驱动程序,在用DriverManager的getConnection()方法就可以创建一个数据库连接。程序采用的是DAO模式来操作数据库,DAO(DataAccessObject,数据访问对象),是Java编程中的一种经典模式,已被广泛应用,也是J2EE架构中持久层框架的基础知识,基于分层次式的软件架构来实现对数据库的访问操作。DAO模式的主要思想就是从抽象数据源获取与操纵数据的方法。抽象数据的含义就是编写应用程序的程序员不必关心数据库的物理位置,已经是何种数据库,只需使用封装数据库中表示记录的数据对象即可。其思想如图4-11所示:DataSource封装使用DataSource封装使用DataAccessObjectBusinessObjectDataAccessObjectBusinessObject创建/使用获取/修改创建/使用获取/修改DataTransferObjectDataTransferObject图4-11DAO模式类图图中BussinessObject是业务对象,是使用DAO模式的客户端;DataTransferObject数据传输对象,在应用程序不同层次之间传输对象,在一个分布式应用程序中,通常可以提高整理的性能;DataObjectAcces数据输入/输出对象封装了对数据源的一些基本操作;DataSource指的是数据源。可以从图中看出,DAO模式分离了业务逻辑和数据罗即将,是的编写的软件具有良好的层次式体系结构。本系统为了方便数据库的操作,主要使用DBContent的对象来接一个数据库(建立一个类DBContent),代码如下:publicDBContent(){ StringCLASSFORNAME="com.mysql.jdbc.Driver";//连接数据库的驱动 Stringurl="jdbc:MySql://localhost:1433;databaseName=db_tushu"; Stringuser="root";//连接数据库的用户名 Stringpassword="root";//连接数据库的密码 try{ Class.forName(CLASSFORNAME); con=DriverManager.getConnection(url,user,password);//加载数据库的驱动 stmt=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); } catch(Exceptionex){ ex.printStackTrace(); } } 在程序需要连接数据库的地方,只需要生成一个DBConnet的对象,就可以对数据库进行连接并操作。4.2中文乱码问题处理在程序中经常会遇到中文乱码的情况,如果手动的在servlet和jsp页面进行设置,相当麻烦。因此,在程序的开始就写了一个过滤器SetCharacterEncodingFilter。在web.xml中配置:<filter><filter-name>SetCharacterEncodingFilter</filter-name><filter-class>myweb.util.filter.SetCharacterEncodingFilter</filter-class><init-param><param-name>encoding</param-name><param-value>gb2312</param-value></init-param></filter><filter-mapping><filter-name>SetCharacterEncodingFilter</filter-name><url-pattern>/*</url-pattern>//*表示工程下所有的页面都会有此过滤器的处理</filter-mapping>对应的SetCharacterEncodingFilter.java文件中的重要代码,在初始化init()方法中定义:publicvoidinit(FilterConfigfilterConfig)throwsServletException{ this.filterConfig=filterConfig;this.encoding=filterConfig.getInitParameter("encoding");Stringvalue=filterConfig.getInitParameter("ignore");}在工具包util包中同样定义了DataFormate类来处理字符转换:publicstaticStringtoUni(StringgbStr){StringuniStr="";/*把字符串转换成uincode编码*/if(gbStr==null){gbStr="";}try{byte[]tempByte=gbStr.getBytes("GB2312");uniStr=newString(tempByte,"ISO8859_1");}catch(Exceptionex){}returnuniStr;}/*把字符串转换成Utf8编码*/publicstaticStringtoUtf8String(Strings){StringBuffersb=newStringBuffer();for(inti=0;i<s.length();i++){charc=s.charAt(i);if(c>=0&&c<=255){sb.append(c);}else{byte[]b;try{b=Character.toString(c).getBytes("utf-8");}catch(Exceptionex){System.out.println(ex);b=newbyte[0];}for(intj=0;j<b.length;j++){intk=b[j];if(k<0){k+=256;}sb.append("%"+Integer.toHexString(k).toUpperCase());}} returnsb.toString();}

第5章系统功能实现在管理信息系统的生命周期中,仅过了需求分析、系统设计等阶段之后,便开始了系统实施阶段。在系统分析和设计阶段,系统开发工作主要是集中在逻辑、功能和技术设计上,系统实施阶段要继承此前面各个阶段的工作成果,将技术设计转化为物理实现,因此系统实施的成果是系统分析和设计阶段的结晶。5.1管理员登陆页面1.描述:为了保证系统的安全性,要使用本系统必须先登陆到系统中。2.程序运行效果图如图5-1所示:图5-1管理员登陆页面设计3.在登陆页面输入用户名和密码以,点击提交按钮,跳转到登陆的service中,在该service中会对用户名,密码进行判断,如果正确提示“通过验证”,进入到管理界面,如果错误则提示“用户名和密码不正确”,页面调转到登陆页。loginservice关键代码:publicStringlogin(StringuserName,StringuserPw,intuserType){ try { Thread.sleep(700); }catch(InterruptedExceptione) { //TODOAuto-generatedcatchblock e.printStackTrace(); } Stringresult="no"; if(userType==0){ //系统管理员登陆 Stringsql="fromTAdminwhereuserName=?anduserPw=?"; Object[]con={userName,userPw}; ListadminList=adminDAO.getHibernateTemplate().find(sql,con); if(adminList.size()==0){ result="no"; } else{ WebContextctx=WebContextFactory.get(); HttpSessionsession=ctx.getSession(); TAdminadmin=(TAdmin)adminList.get(0); session.setAttribute("userType",0); session.setAttribute("admin",admin); result="yes"; } } if(userType==2){ } returnresult; }5.2管理员模块1.描述:管理员主页面:左方页面展示了管理员可操作的七大功能,进入相关的管理页面可以链接到子菜单,并且高亮显示,每个管理模块下面都有相应的子菜单。2.程序运行效果图如图5-2所示:图5-2管理员主页面在每个jsp页面将会对相关用户进行拦截操作,这样可以提高安全性,防止用户不经过登陆页面而进入任何子菜单页面:if(session.getAttribute("user")==null){out.print("<script>alert('请先登录!');window.open('../index.jsp','_self')</script>"); }5.2.1商品类别管理1.类别信息录入(1)描述:管理员输入类别相关正确信息后点击录入按钮,如果是没有输入完整的普通用户信息,比如没有输入类别名称,都会给出相应的错误提示,不能录入成功。输入数据都通过form表单中定义的方法onsubmit="returncheckForm()"来检查,checkForm()函数中是各种的校验输入数据的方式。程序效果图如下图5-3所示:图5-3类别信息录入

3.流程图如下图5-4所示:登陆系统登陆系统管理员录入商品类别信息管理员录入商品类别信息系统验证录入类别信息录入成功结束通过未通过图5-4商品类别信息录入流程图 2.类别信息管理(1)描述:管理员点击左侧的菜单“商品类别管理”,页面跳转到类别管理界面,调用后台的action类查询所有商品类别信息。(2)程序效果图如下图5-5所示图5-5商品类别管理类别管理关键代码:publicStringcatelogMana(){ Stringsql="fromTCatelogwherecatelogDel='no'"; ListcateLogList=catelogDAO.getHibernateTemplate().find(sql); Maprequest=(Map)ServletActionContext.getContext().get("request"); request.put("cateLogList",cateLogList); returnActionSupport.SUCCESS;} publicStringcatelogAll(){ Stringsql="fromTCatelogwherecatelogDel='no'"; ListcateLogList=catelogDAO.getHibernateTemplate().find(sql); Maprequest=(Map)ServletActionContext.getContext().get("request"); request.put("cateLogList",cateLogList); returnActionSupport.SUCCESS; } publicStringcatelogAdd(){ TCatelogcatelog=newTCatelog(); catelog.setCatelogName(catelogName); catelog.setCatelogMiaoshu(catelogMiaoshu); catelog.setCatelogDel("no"); catelogDAO.save(catelog); this.setMessage("操作成功"); this.setPath("catelogMana.action"); return"succeed"; } publicStringcatelogDel(){ Stringsql="fromTGoodswheregoodsDel='no'andgoodsCatelogId="+catelogId; ListgoodsList=goodsDAO.getHibernateTemplate().find(sql); if(goodsList.size()>0){ this.setMessage("请先删除此类别下的商品"); this.setPath("catelogMana.action"); } else{ TCatelogcatelog=catelogDAO.findById(catelogId); catelog.setCatelogDel("yes"); catelogDAO.attachDirty(catelog); this.setMessage("操作成功"); this.setPath("catelogMana.action"); } return"succeed"; }3.类别信息删除(1)描述:先是点击类别信息管理,页面跳转到类别管理界面,浏览所有的类别信息,点击要删除的类别,弹出的确定对话框,即可删除该类别信息。2.程序效果图如下图5-6所示图5-6类别信息删除5.2.2商品信息管理1.商品信息录入(1)描述:在此页面主要是输入商品信息,包括商品编号、名称、商品介绍、商品图片、商品价格等,其中商品介绍这个地方,使用的是开源的在线文本编辑器fckEditor这个富文本框实现。是否为空也是通过form表单中的onsubmit="returncheckForm()来检查。(2)程序效果图如图5-7所示:图5-7商品信息录入(3)在整个系统中所有涉及输入日期的地方都是采用的mydata97这个日历控件的方式来实现,要在工程中导入Calendar.js文件,在jsp页面开始引入<scripttype="text/javascript"src="../js/calendar.js"></script>该js文件,在文本框的属性定义中定义方法onclick="newCalendar().show(this);"即可。2.商品信息管理(1)描述:管理员点击左侧的菜单“商品管理”,页面跳转到商品管理界面,调用后台的商品Action类查询出所有的商品信息,并把这些信息封转到数据集合List中,绑定到request对象,然后页面跳转到相应的jsp,显示出商品信息。(2)程序效果图如下图5-8所示图5-8商品信息管理页面商品管理关键代码:publicStringgoodsNoTejiaAdd(){ TGoodsgoods=newTGoods(); goods.setGoodsCatelogId(goodsCatelogId); goods.setGoodsName(goodsName); goods.setGoodsYanse(goodsYanse); goods.setGoodsMiaoshu(goodsMiaoshu); goods.setGoodsPic(fujian); goods.setGoodsShichangjia(goodsShichangjia); if(goodsTejia==0){ goods.setGoodsTejia(goodsShichangjia);// goods.setGoodsIsnottejia("no"); } else{ goods.setGoodsTejia(goodsTejia); goods.setGoodsIsnottejia("yes"); } goods.setGoodsKucun(goodsKucun); goods.setGoodsDel("no"); goodsDAO.save(goods); this.setMessage("操作成功"); this.setPath("goodsManaNoTejia.action"); return"succeed"; } publicStringgoodsNoTejiaDel(){ TGoodsgoods=goodsDAO.findById(goodsId); goods.setGoodsDel("yes"); goodsDAO.attachDirty(goods); this.setMessage("操作成功"); this.setPath("goodsManaNoTejia.action"); return"succeed"; } publicStringgoodsManaNoTejia(){ Stringsql="fromTGoodswheregoodsDel='no'orderbygoodsIsnottejia"; ListgoodsList=goodsDAO.getHibernateTemplate().find(sql); for(inti=0;i<goodsList.size();i++){ TGoodsgoods=(TGoods)goodsList.get(i); System.out.println(goods.getGoodsCatelogId()); goods.setGoodsCatelogName(catelogDAO.findById(goods.getGoodsCatelogId()).getCatelogName()); } Maprequest=(Map)ServletActionContext.getContext().get("request"); request.put("goodsList",goodsList); returnActionSupport.SUCCESS; } publicStringgoodsShezhiTejia(){ TGoodsgoods=goodsDAO.findById(goodsId); goods.setGoodsIsnottejia("yes"); goods.setGoodsTejia(goodsTejia); goodsDAO.attachDirty(goods); returnActionSupport.SUCCESS; } publicStringgoodsKucun(){ Stringsql="fromTGoodswheregoodsDel='no'orderbygoodsIsnottejia"; ListgoodsList=goodsDAO.getHibernateTemplate().find(sql); Maprequest=(Map)ServletActionContext.getContext().get("request"); request.put("goodsList",goodsList); returnActionSupport.SUCCESS; } publicStringgoodsRuku(){ TGoodsgoods=goodsDAO.findById(goodsId); goods.setGoodsKucun(goods.getGoodsKucun()+rukushuliang); goods.setGoodsTejia(goodsTejia); goodsDAO.attachDirty(goods); returnActionSupport.SUCCESS; } publicStringgoodsDetailHou(){ Maprequest=(Map)ServletActionContext.getContext().get("request"); TGoodsgoods=goodsDAO.findById(goodsId); request.put("goods",goods); returnActionSupport.SUCCESS; } publicStringgoodsDetail(){ Maprequest=(Map)ServletActionContext.getContext().get("request"); TGoodsgoods=goodsDAO.findById(goodsId); request.put("goods",goods); returnActionSupport.SUCCESS; } 5.2.3会员信息管理1.会员信息管理(1)描述:游客访问该站点的时候,可以注册成为会员,管理员登陆后可以管理会员信息,点击左侧的“会员管理“,页面调转中后台的是java类userAction,在此类中,读取数据库中,提取会员的信息,绑定到request对象,再输出到相应的jsp显示页面页面。(2)程序效果图如图5.9所示:图5-9会员信息管理会员管理核心代码:publicStringuserDel(){ TUseruser=userDAO.findById(userId); user.setUserDel("yes"); userDAO.attachDirty(user); this.setMessage("删除成功"); this.setPath("userMana.action"); return"succeed";} publicStringuserXinxi(){ TUseruser=userDAO.findById(userId); Maprequest=(Map)ServletActionContext.getContext().get("request"); request.put("user",user); returnActionSupport.SUCCESS; } publicStringuserMana(){ ListuserList=userDAO.findAll(); Maprequest=(Map)ServletActionContext.getContext().get("request"); request.put("userList",userList); returnActionSupport.SUCCESS; }5.2.4系统管理1.查询管理员信息(1)描述:点击系统管理菜单,右侧展示了所有的系统管理员信息。主要包括用户名和密码。(2)程序效果图如图5-12所示:图5-12查询管理员2.添加管理员(1)描述:输入要添加管理员的信息以后,点击添加按钮。两次输入的密码必须相同。(2)程序效果图如图5-13所示:图5-13添加管理员5.2.5修改密码1.描述:输入用户名和用户的原有密码,输入新密码以后点击修改按钮即可修改密码成功。2.程序效果图如图5-14所示:

图5-14修改密码5.2.6退出系统1.描述:点此按钮回到系统的主页面。2.关键代码:主要是通过javascript语句来实现,item_word[8][4]="退出系统";item_link[8][4]="javascript:window.open('../index.jsp','_self')";5.3普通用户模块5.3.1系统主页面实现1.描述:页面的上方显示的是该网站的logo和当前的时间,下方主要部分是信息显示区域,左侧部分是通知公告,管理员发布的信息公告都可以在此点击后链接到相应的信息页面查看具体通知公告,左上方是登陆模块,用户必须输入正确的用户名、密码和验证码后才能进入系统,做下方方是一个商品类别信息。2.程序运行效果图如图5-15所示:图5-15系统主页面设计5.3.2商品类别查询1.描述:普通用户点击导航栏的“类别查询”。调用后台的java类catelogAction查询所有的类别信息,并绑定这些信息到request对象中,在显示层jsp展示出来,然后用户点击类别名称,即可显示该类别的信息。2.程序效果图如图5-16所示:图5-16类别查询界面设计5.3.3用户注册1.描述:对于游客,至于浏览的功能,如果想进一步使用本系统,比如说购买商品、在线下订单等,首先需要注册一个合法的账号,然后登陆后,方能使用,点击导航栏菜单“免费注册”,调用js的open()方法,弹出注册页面,输入相关正确信息后点击注册按钮即可完成注册,如果是没有输入完整的信息,或都会给出相应的错误提示,不能录入成功。输入数据都通过form表单中定义的方法onsubmit="returncheckForm()"来检查,checkForm()函数中是各种的校验输入数据的方式。2.程序效果图如图5-17所示:图5-17用户注册界面设计

第6章系统测试6.1系统测试目的与意义系统测试作为管理信息系统开发过程中一个至关重要并且不可或缺的一部,它的重要性可以在保证系统质量以及可靠性的最后峡口,也是系统考法过程包括系统、设计、实现的最终审查。为什么要做系统测试呢?其主要目的就检查程序中的错误,让软件可靠性得到提高,检查系统一个软件做的如何,我任务应该分为以下三个步骤:首先是大方面检查模块的程序是否有问题;然后是检查模块与模块间衔接的是否科学;最后是确定整个软件系

温馨提示

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

评论

0/150

提交评论