jsp球迷用品销售网站sqlserver论文_第1页
jsp球迷用品销售网站sqlserver论文_第2页
jsp球迷用品销售网站sqlserver论文_第3页
jsp球迷用品销售网站sqlserver论文_第4页
jsp球迷用品销售网站sqlserver论文_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

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

文档简介

PAGEII论文题目运动用品网上商城的设计与实现姓名XXX学院XXX专业XXX指导教师XXX讲师备注200X年X月X日

运动用品网上商城的设计与实现作者姓名:XXX指导教师:XXX讲师单位名称:XXXX专业名称:XXXXXX200X年X月DesignandImplementationofOnlinesportinggoodsstorebyXXXSupervisor:LecturerXXXXXXXXXXX毕业设计(论文)任务书毕业设计(论文)题目:运动用品网上商城的设计与实现设计(论文)的基本内容:随着Internet的不断普及,人们对于互联网技术的要求已不单单是浏览一下网页,收发电子邮件,日益忙碌的人们开始追求足不出户的利用互联网这一强大的平台来实现的网上购物。对于企业来讲,无论是企业之间(BtoB),还是企业和客户之间(BtoC)的交易,如果能够实现网上交易将大大提高交易速度节约交易成本。近几年,随着网络数据库技术的进一步发展,使得这一设想逐渐成为现实。毕业设计(论文)专题部分:题目:设计或论文专题的基本内容:学生接受毕业设计(论文)题目日期第1周指导教师签字:200X年X月X日XXXXXXXXXXXX毕业设计(论文)摘要运动用品网上商城的设计与实现摘要随着Internet的不断普及,人们对于互联网技术的要求已不单单是浏览一下网页,收发电子邮件,日益忙碌的人们开始追求足不出户的利用互联网这一强大的平台来实现的网上购物。对于企业来讲,无论是企业之间(BtoB),还是企业和客户之间(BtoC)的交易,如果能够实现网上交易将大大提高交易速度节约交易成本。近几年,随着网络数据库技术的进一步发展,使得这一设想逐渐成为现实。运用JSP技术,基于B/S模式我开发了一个网上购物系统。在我的系统中,顾客可以很方便的注册成为会员,对商品进行浏览检索,查看商品的详细资料,然后根据各人的喜好购买心仪的商品。顾客还可以查看选中的商品数量,及总金额。除此之外,顾客还可以查看自己的注册信息,以及修改各人信息。系统会自动为顾客生成订单,按照顾客所填写的信息提交订单并发货。顾客要记住自己的订单号,以便对订单进行查询。系统管理员则可以对现有的商品进行添加,审查已注册的用户并删除用户,对提交的订单进行处理。我采用APACHE作为Web服务器和应用服务器,后端连接MicrosoftSQLServer数据库;网站中主要经营运动商品,提供检索工具供用户查询所需的商品,顾客根据网站的不足提出意见和建议,从而不断改进网站功能和建设。关键词:B/S模式、JSP、电子商务、网络数据库XXXXX毕业设计(论文)AbstractDesignandImplementationofOnlinesportinggoodsstoreAbstractAlongwiththeInternetofcontinuouslyuniversal,peoplearefortherequestoftechniqueInternetthealreadyandnotonlysingleisaviewoncewebpage,receiveanddispatchtheE-mail,increasinglybusypeoplestartpursuingtheexploitationInternetthatkeepthehousethisathemightyplatformcomethenetthatrealizesontheshopping.Speakforthebusinessenterprise,andwhetheristhebusinessenterprise’s(BtoB),orbusinessenterprisewiththecustomer'sbargainfor(BtoC),ifcanrealizethenetuptradeandwillconsumedlyincreasethebargainspeedtheeconomytotradethecost.Inthelastfewyears,alongwiththetechnique'sfurtherdevelopmentofnetworkdatabase,makethisonconceivingtograduallybecometheactuality.ApplicationJSPtechniqueiswiththenetworkdatabaseprinciple;accordingtoB/SmodeIdevelopedanetontheshoppingsystem.Inmysystem,customercanverytheconvenientregistrationbecomethemember,andproceedstomerchandiseviewindex,lookintofavorsthatthemerchandise'sdetaileddata,customercancheckthemerchandise'scountandmoney.Thenpurchasetheadoringmerchandiseaccordingtoeveryone.Systemwouldtheautoisabornorderofcustomer,andhandovertheordertoeruptgoodsaccordingtotheinformationforfillinningofcustomer.Exceptit,customeralsocanchecktheirregisteredinformation,andedittheinformation.Systemmanagercanthenproceedstoincreasewiththeorderthat,investigatealreadytheregisteredcustomercombinerighthandovertoproceedstohandletocurrentmerchandise.IuseAPACHEasWebserverandapplicationserver;connectwithMicrosoftSQLServerDatabase.Thewebmanagethesportmerchandises,supplysearchestoolsforcustomertosearchthemerchandisewhichtheyneed.CustomercangivemeadviceforthatIcanimprovetheweb'sfunction.Keywords:B/Smode,JSP,electroniccommerce,networkdatabase.XXXX毕业设计(论文)目录目录TOC\o"1-3"\u任务书 I摘要 IIAbstract III第1章绪论 11.1网上购物系统的发展 11.2网上购物的现状 11.3商务网站存在的问题 11.4网上购物系统的构建 2第2章技术介绍 32.1HTML语言 32.2Java语言的特性 32.3JSP技术 52.3.1JSP概述 52.3.2JSP工作原理 52.4

数据库原理 62.4.1

SQL语言简单介绍 62.4.2

SQLSERVSER数据库 7第3章 需求分析 83.1初步需求分析 83.1.1模块结构分析 83.1.2模块需求描述 83.2用例图 93.3活动图 103.4系统类划分 11第4章系统设计 144.1系统体系结构 144.2系统功能模块设计 154.2.1用户模块设计 154.2.2后台管理模块设计 164.3数据库设计 184.3.1数据库需求分析 184.3.2数据库的物理设计 19第5章系统实现 215.1客户端实现 215.1.1注册及登录 215.1.2查询及修改个人信息实现 235.1.3商品查询实现 255.1.4购物车实现 265.1.5生成订单 285.2后台管理端实现 305.2.1管理员登录实现 305.2.2商品的添加实现 305.2.3定单管理实现 315.2.4用户信息的查询实现 335.3数据库连接 34第6章系统测试 386.1系统测试 386.1.1系统入口测试要点 386.1.2数据录入测试要点 386.2系统测试效果 38第7章结论 40参考文献 41致谢 42XXXXXX毕业设计(论文)第1章绪论第1章绪论1.1网上购物系统的发展近年来,随着Internet的迅速崛起,互联网已日益成为收集提供信息的最佳渠道并逐步进入传统的流通领域。于是电子商务开始流行起来,越来越多的商家在网上建起在线商店,向消费者展示出一种新颖的购物理念。网上订购系统作为B2B,B2C(BusinesstoCustomer,即企业对消费者),C2C(CustomertoCustomer,即消费者对消费者)电子商务的前端商务平台,在其商务活动全过程中起着举足轻重的作用。本文旨在讨论如何建设B2C的网上购物系统。网上购物是一种具有交互功能的商业信息系统。它向用户提供静态和动态两类信息资源。所谓静态信息是指那些比经常变动或更新的资源,如公司简介、管理规范和公司制度等等;动态信息是指随时变化的信息,如商品报价,会议安排和培训信息等。网上购物系统具有强大的交互功能,可使商家和用户方便的传递信息,完成电子贸易或EDI交易。这种全新的交易方式实现了公司间文档与资金的无纸化交换。1.2网上购物的现状在美、日等信息化程度较高的国家和地区,网络商店发展速度迅猛,美国的世界级超一流的零售商,如沃尔玛凯玛特,家庭仓储、科罗格、J.C培尼等纷纷挤身于网络经商的行列。调查表明:美国的家庭已越来越习惯于在家中从网上购物。

在我国,网上购物从无到有也不过短短几年时间。我国第一家网上购物发生在1996年,燕莎友谊商场首次通过网上商城售出一个景泰蓝,虽然货款的支付不是在网上进行的,但这毕竟为我国零售业奏出了网上购物的先声。根据CNNIC的统计结果,截止2004年1月中国有互联网用户7950万人,而又有40.7%以上的网民在过去的一年里有过网上购物经历,这就说明中国有网上购物的用户达是3235.7万人,并且这一数字还在以17%左右的速度增长,预计到2006年中国网上购物用户将达到6962万人,这说明在中国发展网上购物具有良好的群众基础,网上购物方式日趋被大家所接受。1.3商务网站存在的问题现今,购物网站主要存在以下一些问题:首先,目前绝大多数的电子商务网站都还不是完全意义上的电子商务网站。虽然中国的绝大多数电子商务网站都已经实现了网上接受订单、网上支付的服务,但大多数网民采用的仍是在线订购、离线支付的方式。并且,目前网站与其供货商和配送单位采用的多是传统的沟通方式,效率比较低。其次商品价格并没有足够的竞争力。网上的价格并没有很强的竞争力,大多数产品加上运费后和传统商场的价格基本持平,而一些计算机硬件产品和通讯产品的价格则还要高于传统市场的价格。订货-确认-付款-认证-发货-送货各环节结合不紧密,经常出现脱节的现象。发生了问题,调查起来比较困难。最后缺乏创造力。盲目追随成功网站的模式,使得电子商务类网站呈现出“百站一面”的尴尬局面。1.4网上购物系统的构建现在流行的网上购物系统不仅要有漂亮的网页,更要有严谨的规划。每一个细小的环节都和重要。这样才能使得在电子交易时避免不必要错误发生。我们将使用HTML、ASP等技术来编辑网页,并运用ASP技术把数据库和动态网页相关联。传统的管理信息系统信息获取方法是由专业文字录入人员将信息输入到管理系统的数据库中,这种方法在数据量不大时有很多的应用场合。当数据量比较大,并且有较强的专业性时,录入的费用和出错的可能性都相应上升。本文在实际应用开发中解决方案是建立网站,

以及自己的数据库,使得所需商品信息可以及时的保存、更新。可以更好的及时了解商品买卖的情况。XXXXX毕业设计(论文)第2章技术介绍第2章技术介绍2.1HTML语言HTML(Hyper

Text

Markup

Language

超文本标记语言)是一种用来制作超文本文档的简单标记语言。与常见的字处理文件不同,Web页以超文本标识语言编排格式。HTML文件是带有特定HTML插入标记的用以编排文档属性和格式的标准文本文件。它能独立于各种操作系统平台(如UNIX,WINDOWS等)。自1990年以来HTML就一直被用作World

Wide

Web上的信息表示语言,用于描述Homepage的格式设计和它与WWW上其它Homepage的连结信息。HTML文档(即Homepage的源文件)是一个放置了标记的ASCII文本文件,通常它带有.

html或.

htm的文件扩展名。生成一个HTML文档主要有以下三种途径:(1)手工直接编写(例如用你所喜爱的ASCII文本编辑器或其它HTML的编辑工具)。(2)通过某些格式转换工具将现有的其它格式文档(如WORD文档)转换成HTML文档。(3)由Web服务器(或称HTTP

服务器)一方实时动态地生成。

一般的HTML页面具有如下的结构:〈html〉

<head>

<title>,<base>,<link>,<is

index>,<meta>

</head>

<body>

这是HTML正文部分

〈/body〉

</html>可见在一个HTML网页文件中,一般必须有一对〈html〉</html>标记作为文件的开头和结尾,在<html>标记后是头部标记<head></head>,其后是实体标记<body></body>。2.2Java语言的特性Java语言具有六个主要的特性:安全性:可是网络开发者面临的最重要的问题。用户最怕两件事:保密信息被窃取和系统被破坏。Java的内置安全性结局了这两个问题。Java的安全性模型有三个基本的组成部分:自解码验证器,类装入器和安全管理器。字节码验证器能取保Java的程序编译正确,遵循VM的访问限制。类装入器从网络上获取类时,把来自不同服务器的类相互分开并与本地类分离开来。通过这种分离,就可以防止网上装入的类假扮成标准的内置类。安全管理器实现VM的安全策略。安全性策略确定VM可以进行什么活动,在什么条件下进行。它通常用于防止警告性错误,在Java允许使用的最著名浏览器NetscapeNavigator中,安全性策论甚至不允许文件访问。核心APIAPI即应用程序编程接口。API是应用程序开发者为了更快的构造软件而使用的功能库。Java的核心API提供了一组系统平台上常用的功能。API分成多个包,它们分别是完成相关功能的类,比如界面处理,网络功能等。跨平台现在,JVM已经出现在多种不同的操作系统当中。Java跨品台能力的最关键之处在于,Java的字节码文件(.class文件)不需要针对不同的平台分别进行编译。同一个Java类文件可以用于运行在所有支持Java的系统平台上,即一次编写,处处运行。面向对象面向对象编程是以可重用,可扩展和可维护的方式编写软件的方法。面向对象的编程思想,力图使计算机语言对事物的描述与现实世界中该事物的本来面目尽可能的一致。Java是面向对象的语言,即可以面向对象编程。多线程单线程程序任何时候只是执行一个线程,这种程序一次只能做一件事情。单线程程序在运行时,用户接口通常不响应其他请求。多线程程序可以同时执行多个线程。这些线程可以共享代码和数据,可以互相交流和合作。网络功能强大Java是目前进行网络程序设计的首选语言。不论是在服务器端程序设计方面,还是在基于B/S模式开发中,Java的优势都体现的淋漓尽致。因此,现在很多网络软件都是采用Java设计的,比如EBAWeblogic,ApacheTomcat等。2.3JSP技术2.3.1JSP概述JSP,JavaServerPagesTM是由SunMicrosystems公司倡导、许多公司参与一起建立的一种动态网页技术标准在传统的网页HTML文件(*.htm,*.html)中加入Java程序片段(Scriptlet)和JSP标记(tag),就构成了JSP网页(*.jsp),Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序片段,然后将执行结果以HTML格式返回给客户。程序片段可以操作数据库、可以重新定向网页、可以发送email等等,这就是建立动态网站所需要的功能。所有程序操作都在服务器端执行,网络上传送给客户端仅是得到的结果,对客户浏览器的要求最低,可以实现NoPlugin,NoActiveX,,NoJavaApplet,甚至NoFrame。JSP技术是完全与平台无关的设计,包括它的动态网页与底层的Server元件设计。正因为如此,你可以在Windows环境下调试程序,成功后把程序上载到你的Linux服务器去运行,另外由于是先编译后执行,所以执行速度远远快于以往的服务器端语言。Servlet可以让你建立动态生成的网页,而网页中包含有从服务器方的Java对象中所获得的数据。但是你也得知道servlet生成网页的方法就是在Java类中嵌入HTML标签和表述代码。这就意味着改变表述代码需要修改和重新编译Servlet源文件。因为设计HTML页面的设计人员可能与编写Servlet代码的开发人员不是同一个人,更新基于servlet的web应用程序就成了一件非常棘手的事情。JSP网页可以非常容易的与静态模板结合,包括HTML或XML片段,以及生成动态内容的代码。

针对代码的重复使用,SUN公司提出了JavaBean技术,类似于Microsoft的组件对象模型COM技术,JavaBean的价值在于它可以经由一组属性来使用,而这些属性则提供对JavaBeans设定的存取。JavaBean就好比一个单位,而单位的名称、地址、以及规模都可以称之为属性。在JSP原有的优点上支持紧凑方便的创建和使用,提高了分部计算机制的强壮性。J2EE平台为应用程序服务器定义了一个服务器端组件模型,简化了中间件组件的开发。J2EE的相关技术,包括RMI,CORBA,JSP,EJB等等,极大的简便了商务网站的开发,可以从中选择合适的技术构建发布平台的框架,已逐渐成为开发标准。2.3.2JSP工作原理在一个JSP文件第一次被请求时,JSP引擎把该JSP文件转换成为一个servlet。而这个引擎本身也是一个servlet,在JSWDK或WEBLOGIC中,它就是JspServlet。JSP引擎先把该JSP文件转换成一个Java源文件,在转换时如果发现jsp文件有任何语法错误,转换过程将中断,并向服务端和客户端输出出错信息;如果转换成功,JSP引擎用javac把该Java源文件编译成相应的class文件。然后创建一个该SERVLET的实例,该SERVLET的jspInit()方法被执行,jspInit()方法在servlet的生命周期中只被执行一次。然后jspService()方法被调用来处理客户端的请求。对每一个请求,JSP引擎创建一个新的线程来处理该请求。如果有多个客户端同时请求该JSP文件,则JSP引擎会创建多个线程。每个客户端请求对应一个线程。以多线程方式执行可大大降低对系统的资源需求,提高系统的并发量及响应时间.但应该注意多线程的编程限制,由于该servlet始终驻于内存,所以响应是非常快的。如果.jsp文件被修改了,服务器将根据设置决定是否对该文件重新编译,如果需要重新编译,则将编译结果取代内存中的servlet,并继续上述处理过程。虽然JSP效率很高,但在第一次调用时由于需要转换和编译而有一些轻微的延迟。此外,如果在任何时候如果由于系统资源不足的原因,JSP引擎将以某种不确定的方式将servlet从内存中移去。当这种情况发生时jspDestroy()方法首先被调用,然后servlet实例便被标记加入"垃圾收集"处理。jspInit()及jspDestory()格式如下:可在jspInit()中进行一些初始化工作,如建立与数据库的连接,或建立网络连接,从配置文件中取一些参数等,在jspDestory()中释放相应的资源。

2.4

数据库原理2.4.1

SQL语言简单介绍SQL是英文Structured

Query

Language的缩写,意思为结构化查询语言。

SQL语言的主要功能就是同各种数据库建立联系,进行沟通。按照ANSI(美国国家标准协会)的规定,SQL被作为关系型数据库管理系统的标准语言。SQL语句可以用来执行各种各样的操作,例如更新数据库中的数据,从数据库中提取数据等。

目前,绝大多数流行的关系型数据库管理系统,如Oracle、Sybase、MicrosoftSQLServer、Access等都采用了SQL语言标准。虽然很多数据库都对SQL语句进行了再开发和扩展,但是包括Select、Insert、Update、Delete、Creat以及Drop在内的标准的SQL命令仍然可以被用来完成几乎所有的数据库操作。

在众多的SQL命令中,select语句应该算是使用最频繁的。select语句主要被用来对数据库进行查询并返回符合用户查询标准的结果数据。select语句中位于select关键词之后的列名用来决定哪些列将作为查询结果返回。用户可以按照自己的需要选择任意列,还可以使用通配符“*”来设定返回表格中的所有列。select语句中位于from关键词之后的表格名称用来决定将要进行查询操作的目标表格。除了上面所提到的运算符外,LIKE运算符在where条件从句中也非常重要。LIKE运算符的功能非常强大,通过使用LIKE运算符可以设定只选择与用户规定格式相同的记录。2.4.2

SQLSERVSER数据库SQLServer是由Microsoft开发和推广的关系数据库管理系统(DBMS),它最初是由Microsoft、Sybase和Ashton-Tate三家公司共同开发的,并于1988年推出了第一个OS/2版本。SQLServer近年来不断更新版本,1996年,Microsoft推出了SQLServer6.5版本;1998年,SQLServer7.0版本和用户见面;SQLServer2000是Microsoft公司于2000年推出的最新版本。MicrosoftSQLServer2000是一个分布式的关系型数据库管理系统,具有客户机/服务器体系结构,采用了一种称为Transact-SQL的SQL语言在客户机和服务器之间传递客户机的请求和服务器的处理结果。支持XML(ExtensiveMarkupLanguage,扩展标记语言。强大的基于Web的分析。支持OLEDB和多种查询。支持分布式的分区视图。SQLServer具有以下特点:是真正的客户机/服务器体系结构。图形化用户界面,使系统管理和数据库管理更加直观、简单。丰富的编程接口工具,为用户进行程序设计提供了更大的选择余地。SQLServer与WindowsNT完全集成,利用了NT的许多功能,如发送和接受消息,管理登录安全性等。SQLServer也可以很好地与MicrosoftBackOffice产品集成。具有很好的伸缩性,可跨越从运行Windows95/98的膝上型电脑到运行Windows2000的大型多处理器等多种平台使用。对Web技术的支持,使用户能够很容易地将数据库中的数据发布到Web页面上。SQLServer提供数据仓库功能,这个功能只在Oracle和其他更昂贵的DBMS中才有。XXXXXXX毕业设计(论文)第3章需求分析需求分析3.1初步需求分析系统分析又称为系统逻辑设计,逻辑设计是指在逻辑上构造系统的功能。解决系统“能做什么”的问题,至于系统的功能如何实现那是系统设计的任务。系统分析是得到系统最佳逻辑设计方案的关键阶段,系统分析通过详细调查研究和需求分析,由系统分析员运用管理知识、计算机知识以及系统分析技术绘制一组描述系统总体方案的图表,经过与用户反复讨论、分析和反复修改后得到用户比较满意的总体设计,即目标系统的逻辑模型。最后选择配置适当的计算机硬软件,以实现目标系统逻辑模型。3.1.1模块结构分析根据需求调研结果确定本模块功能结构如图3.1所示。运动用品网上商城的设计与实现运动用品网上商城的设计与实现模块1用户登陆模块2用户注册模块3管理员登陆模块4购物车模块5订单查询模块8信息浏览模块9后台商品信息管理图3.1系统结构图3.1.2模块需求描述根据需求调研结果确定本系统主要包括以下功能模块:用户登陆、用户注册、管理员登陆、购物车、订单查询、信息浏览、后台商品信息管理。对于管理员具有对用户各项信息及用户管理的功能。权限分配:会员用户:通过登陆系统,浏览网站上的商品信息,选购需要的商品,查看选购信息。管理员:在登陆信息检验合格后可以对会员信息进行修改、删除和查找,商品的信息进行添加、删除和修改的维护,对会员的采购信息进行实时处理。3.2用例图首先,从角色的角度分析:共分三种角色,第一种是用户,即无需验证身份,进入网站页面就可以称其为网站的用户,此种角色只能进行一些普通权限限制的操作,比如查看商品信息、搜索商品信息等。第二种是会员,即网站有些功能是限制权限的,即只对会员开放,也就是用户必须注册自己的真实信息,然后,通过登录功能进行身份验证,验证成功之后才能使用那些向会员开放的功能,此为功能权限;另外,设计会员这个角色的另一个用意在于,某些功能,例如,个人用户商品信息发布功能,将记录会员的操作信息,只有会员将自己的信息注册到网站的数据库中,才能将会员与其操作信息关联,以保证每次会员登录后,可以查看到自己相关的信息,此为数据权限。第三种是后台管理员,此角色不能登录前台网站系统,而只能登录后台管理系统,同样,在前台注册的会员也不能在后台登录,此处同样体现了数据权限的控制。其次,从用例的角度分析:按照与角色的相关性分别分析。与用户角色有关的用例:用户角色可以在首页查看商品信息、搜索商品信息。用户角色可以注册成为会员。用户可以点击进入注册用户编辑管理页面,系统将提示其没有登录。此处,也可以这样理解,已经登录的是会员角色或是后台管理员角色,未登录的是用户角色。当然,用户角色可以进行登录操作。与会员角色有关的用例:会员角色也可以在首页查看商品信息、搜索商品信息。会员角色可以注销,即退出登录。会员可以点击进入个人商品发布信息管理页面,系统确认已经登录后即转到个人维护功能页面,并显示此登录会员相关的管理信息。与后台管理员有关的用例:后台管理员角色可以在后台管理系统中管理会员。可以维护前台显示的商品信息和注册用户信息。通过分析可以确认用例图的绘制,见图3.2所示,网络超市系统的用例图。图3.2网络超市系统用例图3.3活动图活动图是用来描述动作及动作之间的关系。它描述采取何种动作,动作的结果是什么,何时发生等等信息。活动图可以清晰地表示出,当触发一个动作后,系统将自动进行处理的过程。本文将比较复杂的登录过程用活动图体现如下图所示。图3.3网络超市系统活动图3.4系统类划分针对运动用品网上商城有以下类及其属性:用户类(Account)的主要属性:用户名(username)、密码(password)、E-MAIL(email)用户姓名(firstName)等。产品类(Product)的主要属性:产品ID(productId)、产品类别ID(categoryId)、产品名称(name)和产品描述(description)。产品类别类(Category)的主要属性:产品类别ID(categoryId)、类别名称(name)和类别描述(description)。产品项目类(Item)的主要属性:产品项目ID(itemId)、产品类别ID(categoryId)、单价(listPrice)、供应商ID(supplierId)、状态(status)、自定义属性(attribute)等。订单类(Order)的主要属性:订单ID(orderId)、用户(username)、订单日期(orderDate)、送货地址1(shipAddress1)、送货地址2(shipAddress2)、送货城市(shipCity)、送货邮政编码(shipZip)、产品列表(lineItems)等。购物车类(Cart)的主要属性:购物车项目列表(itemList)。购物车项目类(CartItem)的主要属性:产品项目(item)、数量(quantity)等管理员信息类:对管理员进行规范化的设置,分为编号、名称和密码图3.4管理员信息类图会员信息类:将会员也实行密码制管理,以方便对会员提供更好的服务,不造成资源的浪费图3.5会员信息类图商品类别信息类:方便对商品的管理图3.6商品类别信息类图订单信息类:对订单进行细致的分类,保证网站的正常运营图3.7订单信息类图购物车信息类:方便会员管理自己的采购商品图3.8购物车信息类图商品信息类:便于让会员了解商品的属性图3.9商品信息类图XXXXXXXXXXXX毕业设计(论文)第4章系统设计第4章系统设计4.1系统体系结构一个典型的电子商务网上订购系统主要功能有:为客户提供24小时方便快捷的在线订购服务。高效的商品数据方案,对商品信息进行科学、灵活地分类、存储,方便客户迅速从少则几万,多则几十万甚至上百万种商品中找出自己所需商品。强大、方便、快捷的查询功能。提供关键字查询(如:查找所有“Electronic

Cannon”商品)。订单号模块所谓订单号模块,就是客户购买完商品后,系统自动分配一个购物号码给客户,以方便客户随时查询账单处理情况。了解现在货物的状态。将客户商业逻辑规则融入系统,即根据不同客户属性,提供不同付款方式。(如信用卡、支票等)订单管理。为分销商的EPR系统提供数据接口。管理员可以查看历史记录、订单状态,并且能够在最短的时间内通知用户。图4.1系统流程图图4.2系统组织结构图4.2系统功能模块设计 4.2.1用户模块设计用户的功能是网站设计的核心,一个好的网上购物系统,要尽量满足客户的一切要求。所以该用户模块除具有注册,登录,查看个人信息,修改个人信息等基本功能外,还有浏览商品,选择自己喜欢的商品放入购物车中,不喜欢可以删除,确定后,填写订单,购物完毕,生成订单以后,用户可以对订单进行查询。故针对用户设计的用例功能如下图所示:图4.3用户的用例图图4.4用户的活动图4.2.2后台管理模块设计在购物系统中另一个重要的使用者则是管理员,首先管理要有自己的ID和密码,防止他人恶意登录,登录后管理员可以添加新的商品信息保存到数据库中,查询所有用户信息及删除个别用户信息,查询用户生成的订单及订单处理。管理员功能如下图所示:图4.5管理员的用例图图4.6管理员模块活动图4.3数据库设计 4.3.1数据库需求分析对于系统用户信息数据库,有以下数据项和数据结构:会员名、真实姓名、密码、电话号码、Email、地址。用来方便与商城的联系。对于系统的商品信息系统,有以下数据项和数据结构:

商品的ID(自动编号)、商品名称、商品单价、商品所属类别。而网上购物系统就是基于以上各个数据库的连接和综合,把各个独立的数据库通过内在的关联性统一到一个主页面里,从而方便客户的访问和购买,实现了一对一的交互。

用户在购买商品前可以先看看商品目录,看看有没自己需要的商品,在商品的目录里有每个商品的具体的介绍,比如说商品的名称,价格等,用户在看好自己的商品后,在商品的搜索中,你可以选择你所需的商品,用户在选择自己的商品时,系统则连接到后台关于此商品信息的数据库中,找到适合客户需求的信息。客户将选购的商品放入系统所提供的购物车里,此时顾客可以继续选购另外的商品,或者删除原先购买的商品,并可对商品进行名称和数量上的修改和添加。点击“继续购买”,重复以上进行的购买活动。直到顾客满意。购物结束后,进行提交,若完成购物,进行结帐,填写订单,最后生成订单。此外顾客还得进行身份信息的填写,包括姓名,年龄,住址,联系方式和选择的支付方式或使用的支付卡等等。个人身份信息的填写是为了方便顾客所购买的货物准确及时送达。而所有这些信息也将保存在系统数据库中,顾客以后再次购买时就无需重新输入个人身份,可以直接登陆到页面中。4.3.2数据库的物理设计 根据以上的分析,制定出数据库表的逻辑结构商品数据的准备。首先要搜集分销商的所有商品数据。这些商品数据可以分为三类:纸面记录、电子数据(XML、Access、Excel等文件)、网上数据。无论对于哪一种数据,都要对其进行检查,修正有问题的数据,删除重复和过期的记录。在检查的同时,还要对这些数据进行分析,为制定商品目录方案做准备。所涉及到的后台数据库如下:表4.1商品信息管理表名称数据类型长度允许空描述pid整型4否商品号pname字符型50否商品名称ptype字符型20否商品类型price长整型8否商品价格pimage字符型50否图片路径dattime日期8否上传日期客户信息表的制定。客户信息表内保存着在线商店中所有客户个人所拥有的个人信息和资料,是在线商店的后台管理人员进行商品销售的设计规划和进行决策的依据和参考。所涉及到的后台数据库如下:表4.2客户信息管理表名称数据类型大小空描述Name字符型100否用户名Rname字符型50否真实姓名Password字符型100否密码Email字符型100否电子邮件Address字符型100否地址Login_Time字符型100否注册时间Telephone字符型100否联系电话订单数据的准备。订单数据是将用户在商城里购买的商品装入购物车中进行结帐处理,填写订单,保留在数据库中,这样通过订单处理商品信息,达到购物交易。所涉及到的后台数据库如下:表4.3订单信息管理表名称数据类型长度允许空描述Sub字符型50否订单号Name字符型20否用户名Rname字符型50否真实姓名Spdate日期型8否订购日期Email字符型50否电子邮件Address字符型80否联系地址Post字符型50否邮政编码Payment字符型12否付款方式Photo字符型30否联系电话Carry字符型30否运送方式Spif整型4否订单核对Other文本型16是其它表4.4订单信息查询表名称数据类型大小空描述Subid字符型50否订单号Warename字符型50否商品名称Price整型8否价格Wsum整型8否数量Wcount整型8否总价格XXXXXXXXXXX毕业设计(论文)第5章系统实现第5章系统实现5.1客户端实现5.1.1注册及登录当您以用户的身份看中了我们商品,请您先注册成为会员界面如下所示:图5.1注册界面此部分代码需要注意成功登录以后,对Session的设置。使用setAttribute方法设置用户名在此您添写的信息将通过do_register.jsp来处理。其主要的代码如下所示<%request.setCharacterEncoding("gb2312");%><%@pageimport="com.dao.*"%><%@pageimport="java.util.Date"%><% Datedate=newDate(); DBDaoImplcon=newDBDaoImpl(); Stringusername=request.getParameter("name"); StringRname=newString(request.getParameter("rname").getBytes("ISO-8859-1")); Stringpassword=request.getParameter("password"); Stringemail=request.getParameter("e_mail"); Stringaddress=newString(request.getParameter("address").getBytes("ISO-8859-1")); Stringphoto=request.getParameter("telephone"); Stringstr="selectNamefromcustomer_infowhereName='"+username+"'"; ResultSetrs=con.executeQuery(str); if(rs.next()){%><scriptlanguage="javascript"> alert("此用户已经被占用请重新注册"); history.back();</script><% }else{ Stringsql="insertintocustomer_info(Name,Rname,Password,Email,Address,Telephone,Login_time)values('"+username+"','"+Rname+"','"+password+"','"+email+"','"+address+"','"+photo+"','"+date.toLocaleString()+"')"; inttemp=con.executeUpdate(sql);%><scriptlanguage="javascript"> alert("注册成功"); window.location.href=("login.jsp");</script><% }con.close();%>在这里我们用到了JavaScriptJavaScript是Web项目开发中使用的一种技术,用来实现对客户端的控制,比如:实现刻度短的特效,今昔客户端用输入信息的验证等,从而减少网络流量,减轻服务器端的负担。和Java不同,JavaScript只是一种脚本语言,它不能脱离浏览器独立运行。例如:<html><head><ScriptLanguage=”JavaScript”>Alert(“您好!”);</Script></head><html>当然,JavaScript的功能不仅限于弹出一个小的信息提示窗口,它更多地用于与HTML页面Form中的元素进行交互,从而实现了与用户输入的信息进行交互等功能。是网站制作中不可缺少的语言。注册成功后请您登录,这样才能购买商品图5.2登录界面DBDaoImpldao=DBDaoImpl.getInstance();ResultSetrs=null;Stringsql=null;sql="select*fromcustomer_infowhereName='"+getname+"'andPassword='"+getpassword+"'";rs=dao.executeQuery(sql); if(rs.next()){ session.setAttribute("username",getname); session.setAttribute("password",getpassword);在这里我是用到了session,session是类Javax.servlet.http.HttpSession的一个对象,session指的是客户端与服务器端的一次会话,会话从客户连接到服务器开始,直到服务器断开连接为止,在这之间都可以访问session对象的属性和方法。对于session对象,常懂得方法有setAttribute(),getAttribute()和removeAttribute(),分别可以对session中的对象进行存取和删除。5.1.2查询及修改个人信息实现成为我们的会员以后您可以查看您的注册信息,方便您核对。查询界面如下图5.3个人信息显示显示各人信息的主要处理页面是由myinfoshow.jsp处理的,主要代码如下<%DBDaoImpldao=newDBDaoImpl();Stringname=String.valueOf(session.getAttribute("username"));name=(name==null)?"":name.trim();Stringsql="selectName,Password,Rname,Email,Telephone,Address,Login_timefromcustomer_infowhereName='"+name+"'";ResultSetrs=null;%><%try{rs=dao.executeQuery(sql);while(rs.next()){%><%Stringname=rs.getString("Name");Stringpassword=rs.getString("Password");Stringrname=rs.getString("Rname");Stringe_mail=rs.getString("Email");Stringtelephone=rs.getString("Telephone");Stringaddress=rs.getString("Address");Stringtime=rs.getString("Login_time");%><tr><tdwidth="272"height="30"valign="top"><%=name%></td></tr><tr><tdheight="30"valign="top"><%=rname%></td></tr>图5.4信息修改修改各人信息的主要处理页面是由modify.jsp处理的,可以在文本框中输入您想要修改的内容,系统通过request对象获取到您输入的内容,重新插入到数据库中。主要代码如下request.setCharacterEncoding("gb2312");Stringname=String.valueOf(session.getAttribute("username"));if(name!=null){Stringpassword=request.getParameter("paw");Stringaddress=request.getParameter("add");Stringe_mail=request.getParameter("eml");Stringtelephone=request.getParameter("tel");Stringsql="UPDATEcustomer_infoSETPassword='"+password+"',Address='"+address+"',Email='"+e_mail+"',Telephone='"+telephone+"'WHEREName='"+name+"'";DBDaoImplda=DBDaoImpl.getInstance();5.1.3商品查询实现当您想要知道网站上是否有您需要的商品时,您可以在这里输入您要查找的商品名称图5.5商品检索首先从文本框中获取到输入的内容response.setContentType("text/html;charset=gb2312"); Stringop=request.getParameter("shop");Stringsql="selectpname,price,pimagefromProInfowherepnamelike'"+op+"'";在使用SQL语句在数据库中查找,若找到该商品,则显示出来,若找不到该商品,则使用response对象跳转到显示没有查找到的页面。if(!rs.next()) { response.sendRedirect("soubudao.jsp"); }5.1.4购物车实现点击购买选择您喜欢的商品,即可查看到购物清单图5.6商品浏览图5.7商品清单点击放入购物车中,就会看您购买的商品的信息。点击关闭窗口则回到浏览商品页面:图5.8购物车在购物车中,主要的代码如下 <%Vectorshop=(Vector)session.getAttribute("shop"); intnum=0; intpric=0; if(shop==null||shop.size()==0){ %><scriptlanguage="javascript"> alert("购物车中没有物品"); window.location.href=("index.jsp"); </script><%} else{ for(inti=0;i<shop.size();i++) { buyListmylist=(buyList)shop.elementAt(i); num=num+mylist.number*mylist.price; %><tr><tdwidth="151"height="30"valign="top"><divalign="center">序号</div></td><tdwidth="151"valign="top"><divalign="center">商品</div></td><tdwidth="151"valign="top"><divalign="center">价格</div></td><tdwidth="151"valign="top"><divalign="center">数量</div></td><tdwidth="152"valign="top"><divalign="center">总金额</div></td></tr><tr><tdheight="34"valign="top"><divalign="center"><%=i+1%></div><divalign="center"></div><divalign="center"></div></td><tdvalign="top"><divalign="center"><%=mylist.warename%></div><divalign="center"></div></td><tdvalign="top"><divalign="center">¥<%=mylist.price%></div></td><tdvalign="top"><divalign="center"><inputname="num<%=i%>"size="7"type="text"class="txt_grey"value="<%=mylist.number%>"></div></td><tdvalign="top"><divalign="center">¥<%=(mylist.price*mylist.number)%></div></td><tdvalign="top"><divalign="center">总合计金额:¥<%=num%></div></td>5.1.5生成订单当选择好要购买的商品以后要生成订单,这里订单号是自动生成的,部分信息从数据库中获取,您只需要填写部分内容:图5.9填写订单订单生成的主要代码是同过如下<%Datedate=newDate(); DBDaoImplcon=newDBDaoImpl(); intyear=date.getYear()+1900; intmonth=date.getMonth()+1; intdat=date.getDate(); inthour=date.getHours(); intmin=date.getMinutes(); intsecond=date.getSeconds(); longtime=date.getTime()/600000000; Stringyea=String.valueOf(year); Stringmon=String.valueOf(month); Stringda=String.valueOf(dat); Stringhou=String.valueOf(hour); Stringmi=String.valueOf(min); Stringsec=String.valueOf(second); Stringtim=String.valueOf(time); Stringsub=yea+mon+da+hou+mi+sec+tim; if(session.getAttribute("username")==null||session.getAttribute("username").equals("")){ %>Stringsql="selectName,Rname,Email,Address,Telephonefromcustomer_infowhereName='"+session.getAttribute("username")+"'";ResultSetrs=con.executeQuery(sql);5.2后台管理端实现5.2.1管理员登录实现后台管理端为保证安全需要后台管理员驶入身份验证,代码实现同会员身份验证类似。在此不做过多的分析。图5.10管理员登录5.2.2商品的添加实现管理员的功能之一就是可以对商品进行添加。保证随时更新数据库和网站的内容,此时需要输入商品的名称,价格,选择商品的类型,以及图片的名称,选择是否推荐,是则显示在商品推荐栏目,否则显示在新品上架栏目。图5.11添加商品主要添加的代码是由wcheck,jsp完成。其中需要使用request对象从表单中获取输入的值,将其插入到数据库中,部分代码如下<% Datedate=newDate(); DBDaoImplcon=newDBDaoImpl(); Stringpath="images/"; Stringstr=request.getParameter("str"); Stringwarename=request.getParameter("warename"); Stringwareprice=request.getParameter("wareprice"); Stringwaretype=request.getParameter("waretype"); Stringimage=path+request.getParameter("image"); Stringsq="select*fromProInfowherepname='"+warename+"'"; ResultSetrs=con.executeQuery(sq); if(rs.next()){ out.println("<scriptlanguage='javaScript'>alert('此商品已经添加请不要重复录入');history.back();</script>"); }else{ Stringsql=""; if(str!=null){ sql="insertintoProInfo(pname,price,ptype,pimage,pye,Dattime)values('"+warename+"','"+Integer.parseInt(wareprice)+"','"+waretype+"','"+image+"','"+1+"','"+date.toLocaleString()+"')"; }else{ sql="insertintoProInfo(pname,price,ptype,pimage,pye,Dattime)values('"+warename+"','"+Integer.parseInt(wareprice)+"','"+waretype+"','"+image+"','"+0+"','"+date.toLocaleString()+"')"; } inttemp=con.executeUpdate(sql); if(temp>0){ out.println("<scriptlanguage='javascript'>alert('添加成功');history.back();</script>"); }else{ out.println("<scriptlanguage='javascript'>alert('数据错误');history.back();</script>"); } } con.close();%>5.2.3定单管理实现管理员查询订单,可以删除一些不可用的订单,或者点击订单号,看是否要执行订单。图5.12订单管理删除页面是由delsub.jsp处理的。从数据库中获取subid的值,删除这一行的数据。因为订单生成时分别保存到了两个表中,所以要分别从Sub表和Shop表中删除数据。主要代码如下:<% DBDaoImplcon=newDBDaoImpl(); inttemp=0; Stringsub=request.getParameter("sub"); if(sub.equals("")||sub==null){%><scriptlanguage="javascript"> alert("订单已被全部清空"); history.back();</script><% }else{ Stringsql="deletefromSubwhereSub='"+sub+"'"; Stringsq="deletefromShopwhereSubid='"+sub+"'"; temp=con.executeUpdate(sql); con.executeUpdate(sq); } if(temp>0){ response.sendRedirect("spif.jsp"); }%>当管理员想要执行交易的时候,选择订单号后就可看到如下界面图5.13订单执行如果想要执行此订单,请选择在是否执行中选择“是”这一选项。系统会自动将此条订单设置为以执行。即spif由0置为1。由excu.jsp完成,主要代码如下所示:<%DBDaoImplcon=newDBDaoImpl(); Stringexecu=request.getParameter("execu"); Stringnumber=request.getParameter("number"); Stringsql=""; if(execu==null){ sql="updateSubsetSpif='"+0+"'whereSub='"+number+"'"; }elseif(execu.equals("on")){ sql="updateSubsetSpif='"+1+"'whereSub='"+number+"'"; } inttemp=con.executeUpdate(sql); if(temp>0){ response.sendRedirect("spif.jsp"); }else{%>}con.close();%>5.2.4用户信息的查询实现管理可以查看注册的会员信息,也可以删除会员信息。点击删除,则此条会员信息将从数据库中删除掉此处是对会员的管理图5.14用户管理主要代码如下所示<%StringuserName=null;Stringsql=null;request.setCharacterEncoding("gb2312");userName=request.getParameter("name");Stringsq="deleteFROMcustomer_infowherename='"+userName+"'";if(userName!=null){try{ DBDaoImplcon=newDBDaoImpl(); ResultSetrs=con.executeQuery(sq);inti=con.executeUpdate(sq);con.close();}catch(Exceptione){e.printStackTrace();}}%>5.3数据库连接在这部分我采用的是JDBC-ODBC桥的方法连接数据库。下面介绍一下JDBC。JDBC的API通过一个统一的方式访问不同的数据库。类似ODBC,JDBC对程序开发人员隐藏了数据库产权的问题。因为它是建立在Java之上的,JDBC也能供提供平台无关性的数据库访问。JDBC是一个规范,遵循JDBC接口规范,各个数据库厂家各自实现自己的驱动程序(Driver)应用程序在获取数据库连接时,需要以URL的方式指定是那种类型的Driver,在获得特定的连接后,可按照固定的接口操作不同类型的数据库,如:

分别获取Statement、执行SQL获得ResultSet等JDBC定义了四种本质上不同的数据库驱动程序,我们分别阐述:当JDBC还在襁褓中的时候,JDBC-ODBC桥被证明是最有用的。使用它,程序开发人员可以使用JDBC来访问ODBC数据源。它的缺陷是,需要客户机使用微软的windows操作系统,并且安装ODBC驱动程序。通过使用这种驱动程序,你牺牲了JDBC的平台无关性。另外,ODBCdriver还需要客户端的管理。JDBC-native驱动桥提供了建立在本来的数据库驱动程序之上的JDBC接口,没有使用ODBC。JDBC驱动程序把标准的JDBC的调用转换成原始的数据库API调用。使用Type2驱动同样牺牲了平台无关性,因为这需要安装客户端的数据库驱动代码。JDBC-network桥驱动不需要客户端的数据库驱动器。它利用网络服务器的中间件来访问数据库。这使得诸如负载均衡、连接池、数据缓存之类的技术成为可能。因为type3驱动程序经常需要一个相对较少的下载时间,具有平台无关性,不需要客户端的安装和管理,这种方式最适合Internet应用。Type4用纯粹的Java数据库驱动程序提供数据库访问。由于type4驱动程序在客户机上运行和直接访问数据库,在这种方式下执行意味着2层结构。在多层结构中对type4驱动的更好应用是使用EJB封装数据访问代码,让EJB为客户端提供数据库无关的服务。JDBC驱动及连接,APACHEServer为一些常用的数据库提供了JDBC驱动,包括Oracle,Sybase,MicrosoftSQLServer和Informix。使用JSP访问数据库实际上就是先建立一个JavaBean组件,让它来完成与数据库的连接查询功能,并返回一个数据集合(ResultSet),然后在JSP页面中使用<jsp:useBean>标签创建Beans的实例,通过它来对数据库进行查询修改等操作。JDBC支持两层模型,也支持三层模型访问数

温馨提示

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

评论

0/150

提交评论