网上购物系统设计与实现

网上购物系统设计与实现

ID:15185799

大小:609.73 KB

页数:50页

时间:2018-08-01

上传者:直挂云帆济沧海
网上购物系统设计与实现_第1页
网上购物系统设计与实现_第2页
网上购物系统设计与实现_第3页
网上购物系统设计与实现_第4页
网上购物系统设计与实现_第5页
资源描述:

《网上购物系统设计与实现》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

需要本论文完整程序源代码,答辩PPT或者更多毕业论文,联系上传者即可摘要伴随着Internet的蓬勃发展,网络购物中心作为电子商务的一种形式正以其高效、低成本的优势,逐步成为新兴的经营模式和理念,人们已经不再满足用途信息的浏览和发布,而是渴望着能够充分享受网络所带来的更加多的便利。网络购物正适应了当今社会快节奏地生活,使顾客足不出户便可以方便快捷轻松地选购自己喜欢的商品。本系统便是尝试用JSP在网络上架构一个动态的电子商务网站,它是在WindowsXP下,以Oracle为数据库开发平台,Tomcat网络信息服务作为应用服务器,采用JSP(JavaServerPages)技术开发的网上购物系统。他分前台部分和后台部分,前台部分由用户使用,主要包括用户注册,购物车管理,订单管理,个人资料管理,留言板管理等功能;后台部分由管理员使用,主要包括商品管理,处理订单,用户信息管理,链接信息管理等功能。建立后的网站系统是一个动态、交互式、具有商品提供、系统管理、用户留言等功能的电子商务网站。【关键字】JSPOracleTomcat网上购物系统 需要本论文完整程序源代码,答辩PPT或者更多毕业论文,联系上传者即可DesignedintheOnlineshoppingsystembasedonJSPAlongwiththevigorousdevelopmentoftheInternet,e-commercenetworksasashoppingcenterisaformofitshighlyefficient,low-costadvantages,graduallyemergingasabusinessmodelandphilosophy,thereisnolongermeetuseanddisseminationofinformationbrowsing,butadesiretobringthefullenjoymentnetworkmoreconvenient.Internetshoppingisbeingadaptedtothefastpaceoftoday'ssocietytolive,sothatcustomerscanenjoytheconvenienceoffastandeasywaytopurchasetheirownlikecommodities.ThesystemistryingtouseJSPinadynamicnetworkofe-commercewebsitesstructure,whichisinWindowsXP,SQLServer2000fordatabasedevelopmentinplatform,Tomcatapplicationserverasanetworkinformationservices,useJSP(JavaServerPages)technologydevelopmentonlineshoppingsystem.Prospectsandthebackgroundofsomeofhishours,theprospectsofusers,includingusersregistered,ashoppingcartmanagement,ordermanagement,personalinformationmanagement,messageboardmanagementfunctions;Backgroundinpartbymanagers,includingcommoditymanagement,processingorders,customerinformationmanagement,informationmanagement,andotherfunctionslinks.Aftertheestablishmentofthewebsiteisadynamic,interactive,withcommodities,systemsmanagement,voicemail,andotherfunctionsofthee-commercewebsiteusers.KeywordsJSP;Oracle;Tomcat;Onlineshoppingsystem 需要本论文完整程序源代码,答辩PPT或者更多毕业论文,联系上传者即可第一章前言1.1系统的开发背景及意义1.1.1系统的开发背景一、需求的产生随着市场经济的逐渐形成,全球化经济已在国内迅速发展起来。以往的销售模式正在受到空前的挑战:人们已经对去固定的场所、购买(出售)固定的物品的交易方式所带来的不便越来越感到不满,交易时间长、效率低。高额的运费、销售场地的凭租费等繁多的额外开支也给商家带来沉重的成本支出。为了适应市场、适应经济前进的步伐,买家和商家都在努力积极地寻找一种能够带来高效率、低成本销售模式。计算机及世界互联网的飞速发展使得这种新的销售模式成为可能。近来网上商城已慢慢被人们所熟悉,网上购物这种生活方式已悄然形成。网上商城使得商家可以把商店开到互联网上来、而买家也可以到互联网上选择购买自己喜欢的东西。网上商城不需要商店的凭租费;新商品可以用最短的时间吸引顾客的眼球,因为它不需要那么长的运输时间。网上商城为商家节省了大笔的运输费用、场地凭租费等额外成本,同时也为买家带来了无穷的方便性。因为它不需要你花上半天活一天的时间去商场在玲郎满目的众多商品中选择你需要的东西。网上商城使得“买东西、不出门”成为现实。随着计算机技术、通信技术的日益发展,互联网的逐步深入与应用,网上商城越来越多的出现在我们的身边,它直接作为一种先进的交易方式,被越来越多的人所接受。网上购物最大程度地方便了用户,你可以通过WWW浏览器实现WEB购物。网上购物不仅改变了公司进行运作的模式,使网上商城成为传统商务的补充和发展,也使人们改变了消费的观念和消费习惯。自从几十年前电子计算机的出现,就为网上购物的发展创造了客观条件。但是它的发展还要借助于网络,所以其快速发展是在因特网的广泛应用上。可以预见,网上购物将成为商业普及、贸易的主流,必将影响着千家万户的生活和消费行为,并日益成为社会商业贸易活动的重要形式廉价的网络资源使得网上商城成本低廉,世界性的互联网络带来无比宽阔的市场,给商家/买家带来的众多利益带来无限需求。二、国内外形势国外网上购物形势: 需要本论文完整程序源代码,答辩PPT或者更多毕业论文,联系上传者即可(1)美国市场研究公司Forrester预测,美国“企业对企业(BtoB)"销售将从1997年的190亿美元,迅速窜升到2000年的2510亿美元,进而升至2004年的1.4亿万美元,每年翻番。同期在GDP中所占的比重从0.2%上升到9.7%。美国投资银行GoldmanSachs同样乐观,预测美国电子商务销售将从今年的1140亿美元增长到2004年的1.5亿万美元。据美国MerrillLynch投资银行的研究表明,最受电子商务影响的行业是计算机技术和电子业,2003年它们在因特网上的交易将达3950亿美元,随后依次是公用事业、航运、仓储、石化、汽车等。美国今年3月6日公布了第一个官方的全国网络销售统计数据,1999年,美国“企业对企业"的交易额达到了1450亿美元,大大高于200亿美元的“企业对消费者(BtoC)"的网上交易额。电子商务的迅速崛起,使越来越多的美国公司感到缺了它不行,并产生了一种紧迫感。据调查,约有60%的公司认为电子商务重要,而42%的公司甚至说,如果不搞电子商务,公司生存将面临威胁。据报道,美国英特尔公司(Intel)每年有150亿美元的销售是在线完成的;全球最大的网络设备供应商思科公司(Cisco)40%的销售收入是靠网络实现的。(2)欧盟正在为新经济的到来做好准备。欧盟计划拿出更多的钱用于教育,所有的学校要在2001年以前上网,所有的教师应在2002年之前接受使用因特网的训练,所有的公民在2005年之前应具有在这方面接受训练的可能性。(3)据日本投资机构所罗门集团最新公布的一项调查报告显示,Internet可以给日本固步自封的传统经济带来变革,从而有可能使日本发展成世界最大的电子商务市场。世界电子工业巨头日本索尼公司今年2月1日宣布,该公司将从即日起通过Internet销售该公司的电子产品。其它公司也闻风而动,一场网络销售的变革有望在日本发生。日本企业对企业间的电子商务的贸易总值两年前只有9万亿日元,行家预计,到2003年之前这一数值有望扩大到67万亿日元。(4)WTO短期内不会向电子商务征税,1999年年底在西雅图举行的世贸组织多边会谈达成一项决议,对Internet网上交易将延缓征税。WTO部长们普遍认为,政府不应该对新生的电子交易干涉过多。美国商务部秘书WilliamDaley说,预计这项政策将持续到两年左右。他还说:“这项征税禁令并非永久性的,它只会持续18个月到2年。"美国在线、微软和AT&T等电信业和网络公司在此之前已经向美国贸易官员极力游说不要向Internet商贸征税。微软的一位发言人说:“这项决议对于世界经济的发展大有裨益。”分析家们预计,电子商务的交易额在未来六年内将达到2万亿至5万亿美元,其中美国境内的交易额将占到一半以上。国内电子商务形势分析: 需要本论文完整程序源代码,答辩PPT或者更多毕业论文,联系上传者即可一项由信息产业部与赛迪网共同举办的调查显示,截止到2000年3月底,我国已有消费类电子商务网站1100多家,其中购物类网站近800家,拍卖类网战有100家左右,服务类网站中远程教育网站180家,远程医疗网站20家。1999年,电子商务销售5500万元,有人甚至预言今年将达人民币3.5亿元。8848、Eachnet、Yabuy等新兴的网络公司开起了网上销售业务。联想、方正、海尔等开始尝试BtoB业务。互联网研究与发展中心(CII,www.cii.net.cn)8月8日在京发布的《CII中国电子商务指数报告》显示,2000年CII中国电子商务总指数为51.91,目前中国电子商务尚处于起步阶段。其中,CII电子商务安全指数最高,为58.84;而电子商务效益指数最低,为37.76;技术与应用发展不平衡:(1)从交易额看,中国电子商务交易金额少,在社会商品零售额中尚未形成规模,不是交易的主流;(2)开展电子商务基础设施仍较差;(3)从交易内容看,交易主要限于书籍、光盘、计算机及相关产品、信息咨询服务等,传统产品少、实物性商品交易比重较低;(4)从付款方式看,主要是货到付款方式,即以网下付款为主;(5)从用户满意度看,对基础设施、交易品种、结算方式、货物佩松、信誉程度等方面,总体评价还是不很满意;(6)从政策环境看,对于我国电信资费、投资融资、安全保障、法律法规等方面的满意程度不是很高。测算结果还显示,电子商务比传统交易方式节省11.61%的费用和19.34时间。三、网上购物系统的现状目前在国内PHP与ASP应用最为广泛。而JSP由于是一种较新的技术,国内采用的较少。但在国外,JSP已经是比较流行的一种技术,尤其是电子商务类的网站,多采用JSP。采用PHP的网站如新浪网(sina)、中国人(Chinaren)等,但由于PHP本身存在的一些缺点,使得它不适合应用于大型电子商务站点,而更适合一些小型的商业站点。首先,PHP缺乏规模支持。其次,缺乏多层结构支持。对于大负荷站点,解决方法只有一个:分布计算。数据库、应用逻辑层、表示逻辑层彼此分开,而且同层也可以根据流量分开,组成二维阵列。而PHP则缺乏这种支持。还有上面提到过的一点,PHP提供的数据库接口支持不统一,这就使得它不适合运用在电子商务中。ASP和JSP则没有以上缺陷,ASP可以通过MicrosoftWindowsd的COM/DCOM获得ActiveX规模支持,通过DCOM和TranscationServer获得结构支持;JSP可以通过SUNJava的Java 需要本论文完整程序源代码,答辩PPT或者更多毕业论文,联系上传者即可Class和EJB获得规模支持,通过EJB/CORBA以及众多厂商的ApplicationServer获得结构支持。三者中,JSP应该是未来发展的趋势。世界上一些大的电子商务解决方案提供商都采用JSP/Servlet。比较出名的如IBM的E-business,它的核心是采用JSP/Servlet的WebSphere;西方另外一个非常著名的电子商务软件提供商,Intershop。它原来的产品Intershop12,3,4占据了主要的电子商务软件份额。它们都是通过CGI来提供支持的。但去年10月后它推出了Enfinity,一个采用JSP/Servlet的电子商务ApplicationServer,而且声言不再开发传统软件。总的来说,ASP,PHP,JSP三者都有相当数量的支持者,而这三者也各有所长,在开发过程中,我们应该根据实际的需要来使用最合适的技术,本系统则采用较新的jsp技术,一方面jsp的安全性和跨平台性比较好,另一方面,我也希望能从开发该系统的过程中,深入学习一下这门编程语言。1.1.2系统开发的意义Internet的发展,为改变传统的商业运作模式提供了一种技术上的可行性的方案:利用Internet的技术和协议,建立各种企业内部网Intranet,企业外部网Extranet,通过廉价的通讯手段,将买家与卖家、厂商和合作伙伴紧密结合在了一起,消除时间与空间带来的障碍,从而大大的节约了交易成本,扩大了交易范围。而在实际的生活中,这种方案已经被广泛的运用到了实际的商业活动中了,人们将这种交易模式称为电子商务。当今比较流行的网上购物系统国外有“淘宝(www.taobao.com)”,国内有“当当(www.dangdang.com)”。它们都是相当优秀的电子商务网站,对其他的网站提供了良好的典范。设计中可以学习参考他们的思想,了解和熟悉整个网站的开发流程及完整的电子商务网站应有的功能和注意事项。设计和完成一个电子商务网站的,将会牵涉到许多技术上的问题,如:动态网页制作技术的,后台数据库的设计和管理,通过实际的制作个网站,可以避免纸上谈兵,在实践中掌握上述技术的使用。1.2系统概述系统分析是平台开发的一个不可缺少的环节,为了能够使本系统更好、更完善地被设计出来,就必须先进行调查研究。在系统调查的基础上,对新系统的功能进行细致的分析,从而才能够开发出完整的系统设计一、网站的设计目标 需要本论文完整程序源代码,答辩PPT或者更多毕业论文,联系上传者即可本平台利用现在比较广泛的JSP+Oracle数据库的架构实现的,此系统分为前台管理和后台管理。前台管理是友好的操作界面,供用户浏览、查询使用。包括:浏览商品、查询商品、订购商品、购物车、用户维护等功能;后台管理是提供给管理员的,其中包括:商品管理、用户管理等。使管理员从繁琐的手工操作中解脱出来,并提高了办公效率。二、网站的可行性分析随着计算机技术的发展和网络人口的增加,网络世界也越来越广博,越来越丰富,电子商务已经成为网上的一股潮流。我们相信要不了太长有时间,顾客就可以在网络世界上获得他们在现实世界上可以获得的所有商品和服务。可行性研究是为了弄清楚系统开发的项目是不是可以实现和值得进行研究的过程,实际上是一次大大简化系统分析和系统设计的过程,所以,进行可执行性的分析是非常必要的,也是很重要的,经过最初的设计目标和进行的市场调查得出以下四点的可行性分析:(1)经济可行性:该平台设计只是作为本人的毕业设计,又因为本人的设计能力有限,其功能还不能完善,所以没有什么经济效益可谈。(2)技术可行性:JSP+Servlet的技术已经较为成熟。(3)运行可行性:该系统需要搭建JVM即JAVA虚拟机和Tomcat环境,在此环境下系统,并且在正确连接数据库后可以正常运行。(4)法律可行性:该平台是作为毕业设计与商业无关,又因为是自主开发设计,因此不会构成侵权,在法律上是可行的。通过以上的可行性分析,我将采用JSP+Servlet相结合的技术,运用Access数据库对网站进行建设。三、网站的深入调查经过以上的初步调查和研究,并且确定了该平台的可行性,并决定开发本平台,为了能够对现行的平台内容进行充分了解,使所要开发的平台更具有实用性和适应性,通过两个月的实习调查和指导老师的耐心介绍,设计出该平台功能如下:1.能够完成用户基本信息录入的注册和用户基本信息的个人前台与后台管理。2.能够完成管理员对网站的商品资料(商品添加、商品审查)会员管理(会员审查)、网站信息管理(新闻添加、修改删除、公告设置),以及常规设置(广告添加,友情链接)的功能。3.能过电子商品的名称,电子商品的分类进行搜索。4.能够通过查看购物车对所选商品进行确定、挑选,通过定单查询对支付费用进行确定。经过前一阶段的调查与研究分析,我已确定了该平台设计的主要功能,对每个功能模块也作了具体描述,下面就来具体分析该平台的设计特点与具体思想。 需要本论文完整程序源代码,答辩PPT或者更多毕业论文,联系上传者即可四、网站设计的特点我所设计和开发的网上购物平台是经过很长时间的调查和分析才开始具体实施的,它的主要特点是改变了以往的购物只能过现实的商场才能达到的结果,采用Web技术,借助于Internet互联网广泛应用技术,达到资源共享,提高以往购物的局限性,缩短人们的时间和提高工作效率,具有较好的交互性,从而实现信息化,规范化,系统化,网络化的平台,使整个购物活动过程简单、方便、易行。五、网站开发的设计思想网上购物平台主要是对后台管理和前台操作。后台管理是管理员对本网站的维护,通过商品资料(商品添加、商品修改)会员管理(会员审查)网站信息管理(新闻添加、修改删除、公告设置),以及常规设置(广告添加,友情链接)等功能达到对网站的管理。前台操作是用户登录到本网站,可以进行用户注册,通过网站的精品推荐或商品搜索功能,找到自己想要买的商品,装入购物车,提交定单进行购买。网上购物平台的特点是客户和电子商品信息量很大,管理员需要整理的信息很多,为让管理员轻松、方便、快捷的管理,该平台采用符合购买电子商品基本的原则,满足广大客户的日益增长的数量,并达到操作过程中的直观、方便、实用、安全等要求。六、系统设计的总体规则无论哪个网站都要有它自己的设计规则。该平台也一样,它的主要设计规则有:简单性:在实现平台的功能的同时,尽量让平台操作简单易懂,这对于一个网站来说是非常重要的。针对性:该平台设计是网上购物系统及后台管理的定向开发设计,所以具有专业突出和很强的针对性。实用性:该平台能完成电子商品展示和管理员管理的基本信息,具有良好的实用性。七、系统的主要架构及开发模式 需要本论文完整程序源代码,答辩PPT或者更多毕业论文,联系上传者即可系统的建设关键在于其所使用的架构,而网上购物这种基于web的系统,传统的c/s架构已经不能满足大量用户的访问和操作,b/s基于浏览器的架构则是目前网络系统应用的主流,它将大量的数据处理工作交给服务器端来处理,客户端只用通过普通的IE浏览器即可访问系统,方便快捷而且利于系统的更新和维护,java语言在该方面更是得天独厚,j2ee规范的出现则使系统的开发更加规范,层次更加清楚,更利于对复杂事务的处理,而且在安全性方面也做的更好。基于mvc的开发流程则使开发过程更加清晰明了,利于做一些复杂的逻辑实现,从而节省了开发周期和开发成本。八、基于B/S的体系结构:在B/S体系结构系统中,用户通过浏览器向分布在网络上的许多服务器发出请求,服务器对浏览器的请求进行处理,将用户所需信息返回到浏览器。B/S结构简化了客户机的工作,客户机上只需配置少量的客户端软件。服务器将担负更多的工作,对数据库的访问和应用程序的执行将在服务器上完成。浏览器发出请求,而其余如数据请求、加工、结果返回以及动态网页生成等工作全部由WebServer完成。实际上B/S体系结构是把二层C/S结构的事务处理逻辑模块从客户机的任务中分离出来,由Web服务器单独组成一层来负担其任务,这样客户机的压力减轻了,把负荷分配给了Web服务器。这种三层体系结构如图3.1所示。Browse浏览器Web服务器数据库图1-1B/S三层架构示意图这种结构不仅把客户机从沉重的负担和不断对其提高的性能的要求中解放出来,也把技术维护人员从繁重的维护升级工作中解脱出来。由于客户机把事务处理逻辑部分分给了功能服务器,使客户机一下子"苗条"了许多,不再负责处理复杂计算和数据访问等关键事务,只负责显示部分,所以维护人员不再为程序的维护工作奔波于每个客户机之间,而把主要精力放在功能服务器上程序的更新工作。这种三层结构在层与层之间相互独立,任何一层的改变不会影响其它层的功能。1.3系统开发工具及相关技术简介1.3.1系统开发环境操作系统是windows2000、windowsxp或linux开发环境是JDK1.6+TOMCAT+ORACLE。开发工具是ECLIPSE(MYECLIPSE)1.3.1JSP技术简介 需要本论文完整程序源代码,答辩PPT或者更多毕业论文,联系上传者即可在传统的网页HTML文件(*.htm,*.html)中加入Java程序片段(Scriptlet)和JSP标记(tag),就构成了JSP网页(*.jsp)。JSP页面看上去象标准的HTML和XML页面,并附带有JSP引擎能够处理和抽取的额外元件。Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序片段,然后将执行结果以HTML格式返回给用户。程序片段可以操作数据库、重新定向网页以及发送E-mail等,这就是建立动态网站所需要的功能。所有程序都在服务器端执行,网络上传送给客户端的仅是得到的结果,对客户浏览器的要求最低。它基于强大的Java语言,具有良好的伸缩性,在网络数据库应用开发领域具有得天独厚的优势。JSP技术在多个方面加速了动态Web页面的开发:(1)将内容的生成和显示进行分离使用JSP技术,Web页面开发人员可以使用HTML或者XML标识来设计和格式化最终页面。使用JSP标识或者小脚本来生成页面上的动态内容(内容是根据请求来变化的,例如请求帐户信息或者特定的一瓶酒的价格)。生成内容的逻辑被封装在标识和JavaBeans组件中,并且捆绑在小脚本中,所有的脚本在服务器端运行。如果核心逻辑被封装在标识和Beans中,那么其他人,如Web管理人员和页面设计者,能够编辑和使用JSP页面,而不影响内容的生成。在服务器端,JSP引擎解释JSP标识和小脚本,生成所请求的内容(例如,通过访问JavaBeans组件,使用JDBCTM技术访问数据库,或者包含文件),并且将结果以HTML(或者XML)页面的形式发送回浏览器。这有助于作者保护自己的代码,而又保证任何基于HTML的Web浏览器的完全可用性。(2)强调可重用的组件绝大多数JSP页面依赖于可重用的,跨平台的组件(JavaBeans或者EnterpriseJavaBeansTM组件)来执行应用程序所要求的更为复杂的处理。开发人员能够共享和交换执行普通操作的组件,或者使得这些组件为更多的使用者或者客户团体所使用。基于组件的方法加速了总体开发过程,并且使得各种组织在他们现有的技能和优化结果的开发努力中得到平衡。(3)采用标识简化页面开发Web页面开发人员不会都是熟悉脚本语言的编程人员。JavaServerPage技术封装了许多功能,这些功能是在易用的、与JSP相关的XML标识中进行动态内容生成所需要的。标准的JSP标识能够访问和实例化JavaBeans组件,设置或者检索组件属性,下载Applet,以及执行用其他方法更难于编码和耗时的功能。通过开发定制化标识库,JSP技术是可以扩展的。今后,第三方开发人员和其他人员可以为常用功能创建自己的标识库。这使得Web页面开发人员能够使用熟悉的工具和如同标识一样的执行特定功能的构件来工作。(4)JSP能提供所有Servlets功能 需要本论文完整程序源代码,答辩PPT或者更多毕业论文,联系上传者即可与Servlets相比,JSP能提供所有Servlets功能,它比用Println书写和修改HTML更方便。可以更明确地进行分工,Web页面设计人员编写HTML,只需留出空间让Servlets程序员插入动态部分即可。JSP技术能够支持高度复杂的基于Web的应用。(5)健壮的存储管理和安全性由于JSP页面的内置脚本语言是基于Java编程语言的,而且所有的JSP页面都被编译成为JavaServlet,JSP页面就具有Java技术的所有好处,包括健壮的存储管理和安全性。(6)一次编写,各处运行作为Java平台的一部分,JSP拥有Java编程语言“一次编写,各处运行”的特点。随着越来越多的供应商将JSP支持添加到他们的产品中,您可以使用自己所选择的服务器和工具,更改工具或服务器并不影响当前的应用1.3.2JDBC技术简介一、JDBC概述jdbc是一种可用于执行SQL语句的JAVAAPI,由一些JAVA编写的类和界面组成。JDBC为数据库应用人员和数据库前台工具开发人员开发了一种标准的接口,使开发人员可以用存JAVA语言编写完整的数据库应用程序.二、JDBCDRIVER的四种驱动1、jdbcodbc桥(bridge)过程:Java->jdbc-odbc桥->odbc->厂商的db源码->数据库server特点:a、可以实现java和odbc的交互b、必须通过jdbc-odbc桥和odbc衔接后才可以和数据库建立通信,。。效率低c、必须在客户端安装odbcjriver,由于无法在网络中要求所有用户安装odbc驱动,因此不适合在internet中应用。d、适合实验。不适合项目。2、部分java实现的本地API驱动过程:java->本地API驱动->数据库server特点:不需要有复杂的中间过程就可以和数据库建立通信,在效率上相对与第一驱动功能有显著的提高。必须要求客户端下载本地API驱动程序才能保证和数据库的通信,通用性不好,也不合适在internet上应用。3、纯java实现的网络驱动:type3数据库频繁切换时用 需要本论文完整程序源代码,答辩PPT或者更多毕业论文,联系上传者即可过程:java->网络协议驱动->中间件服务器(可以和多种数据库进行交互,功能庞大)->数据库server特点:a、由于大部的功能都是由中间件服务器来实现,因此网络协议驱动下的下载及安装十分的方便,从而相对前两种驱动提了效率b、由于中间件服务器提供多种数据库的交互支持,因此适合要求和多种数据库连接的应用程序使用。c、设计思想来源于分层的开发,任务分明,保持良好的低耦合度。d、有中间服务器的转换过程,因此效率不是最高的一种驱动。4、纯java实现的本地协议驱动:type4过程:java--》本地驱动————》数据库server特点:a、由于几乎没有和中间件交互过程,效率很高。b、驱动和应用程序容为一体,只需要下载就可以使用方便c、适合应用程序始终谅解一种数据库的要求。三、JDBC编程涉及到API举例1、Driver:驱动"oracle.jdbc.driver.OracleDriver"2、DriverManager:驱动管理器,产生连接对象(Connetion)3、Connection连接对象类实例对应一个数据库源4、Statement:专门用于和数据库的交互5、PreparedStatement:效率上有提高的statement,可以设置参数6、CallableStatement用于操作数据库端的“存储过程”7、ResultSet:结果集8、DatabaseMetadata:数据库的元数据9、ResultSetMetada:结果集的原数据可以通过Metadata实例获取数据库和结果己的相关信息10、Types类型四、JDBC编程基本步骤1)、注册驱动Class.forName("oracle.jdbc.driver.OracleDriver");2)、建立连接Connectionconn=DriverManager.getConnection(url,pro);3)、创建专门和数据库交互的statment对象Statementstmt=conn.createStatement();4)、执行sql语句 需要本论文完整程序源代码,答辩PPT或者更多毕业论文,联系上传者即可Stringsql="select*fromusers";ResultSetrs=stmt.executeQuery(sql);5)、处理查询结果while(rs.next()){System.out.print(rs.getInt(1)+"");System.out.print(rs.getString(2)+"");System.out.println(rs.getInt(3));}6)、关闭数据库及相关的对象rs.close();stmt.close();conn.close();五、JDBC中的异常处理框架try{conn.setAutoCommit();......conn.commint();}catch(Excptione){conn.rollback();}finally{close(conn,stm)}1.3.3ORACLE简介由于数据库能够方便的存储和读取数据,所以是存放数据的最好场所,而oracle是目前世界上最好用的使用最广的数据库。一、关系型数据库1)1970年提出2)最早提出关系型数据库理论的公司是IBM3)最早作出型数据库产品的公司是Oracle4)关系型数据库理论:a)数据库由一系列的对象组成,最常见的一种是表(table),其它对象还包括索引、视图、同义词、序列等b)通过一定的操作作用于这些对象通过SQL语言对对象进行CRUD操作 需要本论文完整程序源代码,答辩PPT或者更多毕业论文,联系上传者即可c)为保证数据的完整性与一致性,数据要有一定的规则(约束)二、SQL、SQL*Plus和PL/SQL1)SQL:结构化的查询语言,是由ANSI负责维护的2)SQL*Plus:命令行形式的Oracle客户端软件,可以去执行SQL语言也是一个简单的报表编辑器它维护着一个buffer,缓存着最后一次执行的SQL语句3)PL/SQL:是oracle公司在标准的SQL的基础上增加了一些新的内容形成的一种语言,仅仅能操作oracle操作三、SQL语言的分类1)Dataretrieval(数据获取语言):SELECT2)Datamanipulationlanguage(数据操作语言):INSERT、UPDATE、DELETE3)Datadefinitionlanguage(数据定义语言):CREATE,ALTER,DROP,RENAME,TRUNCATE4)Transactioncontrol(事务控制语言):COMMIT,ROLLBACK,SAVEPOINT5)Datacontrollanguage(数据控制语言):GRANT,REVOKE四、登录到数据库1)sqlplus2)sqlplususername3)sqlplususername/password:不安全五、语法1、SELECT[DISTINCT]{*,column[alias],....}FROMtable;*:表示所有的列DISTINCT:表示去掉重复的行,只显示一次1)出现的位置:a、紧跟在select后面b、组函数中2)如果distinct后面跟多个列表示多个列联合唯一2、给列指定别名:只需要在列名后面加上别名,中间用空格隔开如:selectfirst_nameasnamefroms_emp;3、如何将两个列的内容连在一起只需要在两个列中间加上||如:selectfirst_name||last_namefroms_emp;4、什么是空(null)以及如何处理 需要本论文完整程序源代码,答辩PPT或者更多毕业论文,联系上传者即可在oracle中没有分配值就是null,一个表达式中只要有一个列为空,整个表达式就为空,可以使用空值转换函数(NVL)处理空值,这个函数有两个参数,一个是可能出现空值的列,另外一个参数是如果出现空值要替换的值,两个参数的类型要一致默认右对齐,默认大写,时间、字符串用单引号5、如何查看表结构使用desc[ribe]关键字如:desc[ribe]s_emp;6、oracle中常用的数据类型number:存放任何数字number(p,s)number(p)==number(p,0)char[(5)]:定长,默认值是1,char与char(1)相同varchar(20):不定长varchar2(20):不定长,(oracle特有,与varchar是一样的)date日期:一共有七个时间分量(世纪/年/月/日/时/分秒)七、sql*plus的常用命令(1)A[PPEND]text:在当前行后面追加(2)/:表示执行sqlplusbuffer中的内容(3)C[HANGE]/old/new更改当前行的内容(4)CL[EAR]BUFF[ER]清空buffer(5)DEL删除当前行(6)I[NPUT]text:表示在当前行后面新增加一行(7)L[IST]n:显示buffer中的内容(8)ntext:整行替换(9)!:表示暂时退出SQLPLUS,执行unix的命令SAVEfilename:将所执行的SQL命令保存成一个文件GETfilename:将文件中的SQL命令加载到buffer中STARTfilename:将文件中的SQL命令加载到buffer中并执行@filename:和start是一样的EDITfilename:编辑保存SQL命令文件SPOOLfilename:录屏EXIT:退出sqlplus八、常见的单行函数1、理字符串LOWER:变成小写UPPER:变成大写 需要本论文完整程序源代码,答辩PPT或者更多毕业论文,联系上传者即可INITCAP:把首字母变成大写,其它小写CONCAT:连接字符串SUBSTR:截取字符串LENGTH:字符串的长度;2、理空值NVL:替换空值3、理数字a、ROUND:四舍五入b、TRUNC:直接舍去c、MOD:求余数4、理日期MONTHS_BETWEENS:计算两个日期之间相关的月ADD_MONTHS:给一个日期加上几个月NEXT_DAY:计算一个日期的下一个星期几LAST_DAY:计算一个月的最后一天ROUND:走过一半加上,没有过一半舍去TRUNC:直接舍去八、事务(transaction)事务是组合在一起不可分割的几个操作,多个操作要么同时失败,要么同时成功事务的特点(ACID):1)原子性(atomicity):多个操作不可分割,要么同时失败,要么同时成功2)一致性(consistency):事务操作前后,数据要保持一致如:转帐前两个帐户的余额总和为1000,那么转帐后两个帐户的余额总和也应该是10003)隔离性(isolation):一个事务在执行过程中,其他事务是不可见的,就好像同一时刻只有一个事务在执行4)持久性(durability):事务结束以后要将事物持久的保存在物理设备上,保证下次依然能够看到数据九、表结构的操作1、新增加列ALTERTABLEtable_nameADD(columndatatype[defaultexpr][notnull][,columndatatype]...);a、新增加列的同时可以增加一个默认值 需要本论文完整程序源代码,答辩PPT或者更多毕业论文,联系上传者即可b、新增加列的同时只能加notnull约束2、修改列ALTERTABLEtable_nameMODIFY(columndatatype[defaultexpr][notnull][,columndatatype]...);a、将列的宽度变窄,当且仅当表中没有记录或者是该列为空b、将列的类型改变,当且仅当表中没有记录或者是该列为空c、如果给某个列增加默认值,只对后插入的记录有影响d、如果表中已经有记录,不能给某个列加上非空约束3、删除列ALTERtabletable_namedropcolumncol_name不管要删除的列中有没有记录,都可以删除4、重命名列(10g之后的版本)ALTERtabletable_nameremamecolumnold_nametonew_name;十、约束的修改1、新增加一个约束altertabletable_nameadd[constraintconstrait]type(column);2、使约束失效altertabletable_namedisableconstraintcon_name;3、使约束生效altertabletable_nameenableconstraintcon_name;一个约束生效以后要验证表中的全部记录,而不是只验证失效之后插入的记录4、删除约束altertabletable_namedropconstraintcon_name; 需要本论文完整程序源代码,答辩PPT或者更多毕业论文,联系上传者即可第二章系统需求分析2.1系统功能需求分析一、功能块划分网上商城共分两个部分,一部分是面向用户的部分,包括:顾客在线注册、购物、提交订单、付款等操作;另外一部分是商城管理部分,这部分的内容包括:产品的添加、删除、查询、订单的管理、操作员的管理、注册用户的管理等。二、功能块描述1、面向用户部分功能:(1)注册功能。顾客首先要注册为网上商城的用户。注册时只要填写登录用户名、密码、联系电子信箱3项信息即可。注册后,用户可继续如实填写详细个人信息及收货人信息,同时可修改密码、查询及修改订单。(2)选择产品功能。顾客浏览网上商城,将自己需求的产品放入到购物车中(可在网上商城首页、专柜首页、产品小类、专卖店首页、搜索结果页面、产品详细信息页面进行该操作),可连续添加商品。(3)管理购物车。顾客选择完商品后可进入购物车页面,查看自己要购买的商品,可修改某一商品数量、取消购买某商品和清空整个购物车。(4)订单功能。顾客确定购物车中的商品后提交订单,如顾客已填写收货人信息,则页面显示该信息并由顾客确认。如尚未填写则显示相应表单请其填写,系统记录顾客提交的收货人信息以便其下次购物时使用。顾客提交订单后可在网上商城查询该订单,并可对尚未处理的订单进行取消、修改等操作。(5)付款功能。顾客在订单被销售方确认后,要选择付款方式,并付款给销售方,然后才可以收到货。2、后台管理部分功能:(1)管理人员部分。该部分的用户有一个超级管理员以及若干个普通管理员,超级管理员拥有最高权限,可访问所有订单,可浏览、查询、修改订单,可进行界面管理,可浏览、修改普通管理员和会员的资料,普通管理员分两种,一种是订单管理员:主要负责订单管理,可浏览、修改订单状态,可浏览会员信息;另一种是界面管理员:主要负责界面管理,可增、删商品和广告等操作。(2)管理订单功能。顾客可通过Web方式取消、修改自己提交的订单(在管理员确认前),查询自己提交的订单(随时)。如订单的状态在一定时限(如12个小时)后仍没有发生变化(“订单关闭” 需要本论文完整程序源代码,答辩PPT或者更多毕业论文,联系上传者即可状态除外),系统自动提醒管理员(如该订单变色,弹出提醒窗口等方式。订单状态发生变化,系统自动发E-mail给顾客,“无效订单”、“订单关闭”状态除外)。(3)管理商品功能。管理员可以添加、修改、删除商品。2.2系统性能需求分析1、数据精确度价格单位保留到分。2、适应性购物流程要简单明了,产品图片要清楚,产品信息描述准确。2.3平台功能模块的设计分析在平台功能的分析基础上,得到本平台的功能模块图如下:网上购物平台index.jsp。商品修改用户管理管理进入新闻管理用户注册商品管理商品添加会员管理广告链接新闻修改新闻添加广告设置链接管理商品名称用户修改会员删除商品搜索网站布局图2-1平台购物模块图 需要本论文完整程序源代码,答辩PPT或者更多毕业论文,联系上传者即可2.4系统流程分析前台购物流程浏览商品选择商品订购商品去购物车去收银台提交订单未注册用户已登录注册用户未登录注册用户注册登录图2-2前台购物流程图注册功能流程注册入口必选项为空用户名有效?2次输入密码是否一致?密码长度符合要求?E-mai地址有效效?其他信息有效注册成功图2-3注册功能流程图注册的具体实现为: 需要本论文完整程序源代码,答辩PPT或者更多毕业论文,联系上传者即可点击主页面的用户注册选项后,会弹出一个注册信息页面,用户需要如实填写用户名,密码,E_mail,地址,电话,真实,姓名等各项信息,提交后,系统进行检测判断该用户名是否已经注册过,如果已经存在则弹出新页面,提示用户该用户名已经注册过,如果没有则进行下一步判断,用户输入的两次密码是否一致,然后依次往后判断用户所填写的各项信息是否符合要求,直到所有信息均正确无误,系统将该用户注册信息写入会员表即member并提示用户注册成功,用户登陆后,就可以进行有效的购物了。商品搜索流程开始搜索输入条件搜索结果查看商品购物车下订单续搜索是否图2-4商品搜索流程图商品的搜索功能使用户更加方便的进行自己所需要的商品的查询,节省时间,提高效率。用户搜索时只要输入商品的关键字就能搜索到所有相关的商品。并且能列出通过搜索得到的商品的详细信息。用户登录流程用户登录,首先要有一个提供用户登录的表单。用户登录的表单应该嵌入整体的结构当中。在实际的应用中,可以这样设计,如果用户没有登录,则在页面中显示用户登录的选项,用户登录后,则可隐藏用户登录的选项而代之以用户的基本信息。首先,用户要有一个用户名和密码。商务网站需要很高的稳定性和安全性,因此对用户名不允许使用恶意的代码作为用户名。同时对密码也要求保密,将密码加密后再存入数据库。另外,一个电子商务网站。用户的真实姓名是必不可少的。除此之外还需要用户的性别、E-MAIL、电话号码等。 需要本论文完整程序源代码,答辩PPT或者更多毕业论文,联系上传者即可登录入口取得用户名和密码将UserID存入session中查询用户是否存在核对密码是否正确登录成功是是否否图2-5用户登录流程图,计算机范文网www.jsjfw.net,商品管理流程商品管理查询商品修改删除满意否返回添加商品是否图2-6商品管理流程图 需要本论文完整程序源代码,答辩PPT或者更多毕业论文,联系上传者即可在该功能里管理员可以进行不需要的商品的删除,在这里管理员当然也可以浏览到商品的详细信息。并且比普通用户在浏览商品界面里所看到的商品信息多一个该商品在数据库中的ID。购物车流程购物车具体的实现可采用这种形式:定义一个购物车的类(Class)。1.列出商品的列表,使用户能够自由选择所需要的商品。2.当用户在点击“添加到购物车”的链接时,执行如下功能:检查用户购物车类是否存在。如不存在,则建立,并注册这Session变量;在有用户购物车类存在的情况下,检查该类中是否有该商品。如存在,则商品数量相应加1;如没有该商品,则将该商品添加到该类中购物车查看商品满意吗下订单调整商品是否图2-7购物车流程图 需要本论文完整程序源代码,答辩PPT或者更多毕业论文,联系上传者即可第三章系统数据库设计3.1系统数据库表的基本设计在建设网站系统之前,我们必须对系统所用到的数据进行大致的分类和具体的结构设计,既要做到清晰明了,又要能适应系统各项功能的调用,而不至于产生结构上的逻辑混乱,保证关键数据在意外情况下不会被破坏,可以说数据库是系统的重中之重。数据库设计要遵循一些规则,一个好的数据库满足一些严格的约束和要求。尽量分离各实体对应的表,一个实体对应一个表,搞清楚该实体有哪些属性,对应有些什么字段,以及各实体之间有何种联系。实体、属性与联系是进行概念设计时要考虑的三个元素,也是一个好的数据库设计的核心。从实际出发,经过仔细地设计,得到各表的设计如表3.1——3.9所示。字段字段名类型宽度小数位索引可否为空Hw_id商品编号自动编号是否Hw_name商品名称文本型50否Hw_cash商品价格数值型182Hw_content商品信息备注型255Hw_pic商品图片文本型255Hw_buys商品数量数值型18Hw_date商品日期日期型表3-1商品信息表hw[说明]对于商品信息表,因为经验不足,我将其关键字段hw_id商品编号采用的是Oracle 需要本论文完整程序源代码,答辩PPT或者更多毕业论文,联系上传者即可数据库中的自动编号,虽然也确定了商品信息的唯一性,但不具备直观的特点,在实际应用中最好是将其设置一个命名规则,管理人员在添加商品的时候能够自动产生一个有一定规则和一定意义的命名规则,方便管理人员对其进行管理和维护,例如对于手机类商品可将其编号设置为mobile+型号+添加日期,这样更容易对商品进行管理。Hw_pic字段代表图片,但在这里存放的只是它的路径所以应该使用文本类型。字段字段名类型宽度小数位索引可否为空User_id会员编号自动编号是User_name会员帐号文本型50否User_pass会员密码文本型50否User_adds会员地址文本型255User_mail会员E_Mail文本型50User_tel会员电话文本型50User_regtime注册时间日期型User_postcode邮政编码文本型50User_namec会员姓名文本型50表5-2会员信息表member3.2用JSP连接数据库在本系统中,需要多次连接数据库,而且这种连接是一项很消耗资源的操作,因此,在本系统中对数据库连接的部分写成了一个文件。文件名为Condb.java,关键代码如下:packageec_port;importjava.sql.*;publicclassCondb{StringSd="sun.jdbc.odbc.JdbcOdbcDriver";StringSc="jdbc:odbc:Business";Connectioncon=null;ResultSetrs=null;publicintexecuteUpdate(Stringsql){intresult=0; 需要本论文完整程序源代码,答辩PPT或者更多毕业论文,联系上传者即可try{con=DriverManager.getConnection(Sc);Statementstmt=con.createStatement();result=stmt.executeUpdate(sql);}catch(SQLExceptionex){System.err.println(ex.getMessage());}returnresult;}publicvoidclose(){try{if(con!=null)con.close();}}} 需要本论文完整程序源代码,答辩PPT或者更多毕业论文,联系上传者即可第四章系统详细设计4.1前台部分4.1.1前台总体框架前台部分由用户使用,包括用户注册,购物车管理,订单管理,个人资料管理等几个部分。(1)模块功能介绍用户管理:为了便于网站的管理,必须有一套完整的用户管理体系。该网站用户管理模块由用户注册,用户登陆,找回密码3部分组成。订单查询:登陆用户可以通过订单号查询订单。购物车:所选商品须通过购物车进行保存,然后生成订单。修改个人资料:为了保护用户信息不受非法侵害,用户登陆后即可对个人的注册信息进行修改。留言板:用户可以查看和添加留言信息。4.1.2用户管理模块用户管理模块主要包括用户注册,登录及找回密码3个部分。(1)用户注册当用户第一次登录时首先要注册,成为会员后,才可以购买物品.用户可以通过单击首页的注册按键来打开注册页面进行会员注册操作,代码如下:if(form1.pasa.value==""){alert("请输入确认密码");form1.pasa.focus();returnfalse;}if(form1.password.value!=form1.pasa.value){alert("你输入的两次密码不一致");returnfalse;}if(form1.email.value==""){alert("请输入你的Email址");form1.email.focus();returnfalse; 需要本论文完整程序源代码,答辩PPT或者更多毕业论文,联系上传者即可returnfalse;}if(form1.question.value==""){alert("请输入回答问题的答案");form1.question.focus();returnfalse;}}为了便于管理网站对用户的管理,在index.htm用户注册页接收到的注册信息要经过严格的过滤,保证注册用户的唯一性,在提交表单后需要对数据表中的数据进行查询,如果没有找到,则在插入数据表时提示注册成功,否则提示用户以被占用,请重新注册,关键代码如下:<%}else{Stringsql="insertintotb_User(Username,Rname,Userpass,Email,Address,Photo,Question,Result,Dattime)values('"+username+"','"+Rname+"','"+password+"','"+email+"','"+address+"','"+photo+"','"+pass+"','"+question+"','"+date.toLocaleString()+"')";inttemp=con.executeUpdate(sql);%>(2)用户登录用户登录窗口设置在首页上,主要用来接收用户输入的用户名和密码,并更新用户在网站中的状态信息。网站首页在用户第一次访问时会判断用户是否登录,未登录则显示用户登录窗口,提示用户登录或注册.对于已经登录的用户,在用户登录窗口将显示用户的相关信息.首页主要是根据保存用户名信息的Session参数来判断用户是否已经登录的,关键代码如下:<%Stringname=(String)session.getAttribute("name");%> 需要本论文完整程序源代码,答辩PPT或者更多毕业论文,联系上传者即可在会员登录窗口中单击登录按纽后,系统将对用户名和密码进行验证,判断用户是否是已注册用户,如果已注册,则更新用户在网站中的状态,如果没有注册,则拒绝用户的登录操作,登录数据验证的程序代码如下:<%Condbcon=newCondb();whereUsername='"+username+"'andUserpass='"+password+"'";ResultSetrs=con.executeQuery(sql);if(rs.next()){session.setAttribute("username",username);session.setAttribute("password",password);%>alert("登录成功");<%response.sendRedirect("../index.jsp");}else{%>alert("用户名或密码错误");history.back();(3)找回密码当密码意外丢失,会给用户带来不必要麻烦,重新注册一个新的用户,浪费了新得用户的时间,也浪费了网站的资源,如果用户只记住自己的用户名和电子邮箱名,并提供密码提示的问题和答案,就可以找回密码。用户单击查找按钮,系统会将表的数据提交到user/res.jsp中。user/res.jsp页用来验证提交过来的4个条件,是否完全符合数据库中的查询条件。只有符合才能显示密码结果,否则弹出“你输入的信息有误”的提示对话框。关键代码如下:<%Condbcon=newCondb();Stringusername=request.getParameter("username");%>4.1.3用户资料修改用户资料修改在前台主页上,单击“修改资料”链接,进入用户修改资料页面,该页面主要用于修改用户信息。 需要本论文完整程序源代码,答辩PPT或者更多毕业论文,联系上传者即可个人资料修改完毕后,要将修改后的数据信息更新注册到数据表中,单击“修改”按钮,如果提交的数据无误,将弹出“数据更新成功”消息对话框:否则将弹出“更新失败”的消息对话框。结果展示页面的关键代码如下:<%Condbcon=newCondb();if(session.getAttribute("username")==null){if(rs.next()){%>4.1.4购物车模块在超市购物,可以根据自己的需要将很多的物品挑选到购物车(篮)中。而在网上虚拟的购物商城中,通常都会采用一种被称做“购物车”的技术来模拟现实生活。这种技术用起来十分方便,不但可以随时添加,查看,修改,清空购物车中的内容,还可以随时去收银台结帐。(1)添加购物车、添加购物车就是把用户选中的商品放在购物车中。当用户在前台首页中单击商品展示区的“购买”按钮时,系统会将该商品的详细信息展示在查看物品清单页中。用户在单击物品清单页面下方的“放入购物车”链接,便可将商品放入购物车,关键代码如下:<%Condbcon=newCondb();Strchr=newStr();if(session.getAttribute("username")==null){%>alert("你必须先登录后才能查看购物车");if(rs.next()){warename=rs.getString(2);price=rs.getInt(3);}buyListmylist=newbuyList();mylist.warename=warename;mylist.price=price;mylist.number=1;booleanlistFlag=true;Vectorshop=(Vector)session.getAttribute("shop"); 需要本论文完整程序源代码,答辩PPT或者更多毕业论文,联系上传者即可if(shop==null){shop=newVector();}else{for(inti=0;i(2)查看购物车为了方便用户随时查看购物情况,在网站的首页加入了查看购物车链接,通过它可以将所选物品信息放入购物车中显示出来。在程序中使用一组文本框记录用户购买的商品数量,用户可以在文本框中输入想要购买的数量然后单击修改按钮。如果要删除物品,可以在数量文本框里输入“0”,并单击修改按钮来更新购物车中商品的数量。查看购物车的关键代码如下:<%@includefile="../user/top.jsp"%> 需要本论文完整程序源代码,答辩PPT或者更多毕业论文,联系上传者即可<%if(session.getAttribute("username")==null){out.println("您还没有登录");}else{out.println(session.getAttribute("username"));}%>,您的购物情况如下所示:(注:如果想删除商品,请将数量置零后点击修改按钮。)    <%Vectorshop=(Vector)session.getAttribute("shop");intnum=0;intpric=0;if(shop==null||shop.size()==0){%>alert("购物车中没有物品");window.location.href=("../index.jsp");<%}else{for(inti=0;i(4)清空购物车清空购物车是指当用户订单生成后,倘若还想继续购物,一定要清空购物车在进行选购商品,这样防止重复购物。清空购物车只需要将session中存储的shop对象清空即可。此功能是由user/putin.jsp完成的,关键代码如下:<%Vectornewshop=newVector();session.removeAttribute("shop");%>alert("购物车中已被清空");window.location.href="../index.jsp";4.1.5订单查询模块用户提交订单后,通常产生的订单号查询信息及执行状态。用户在网站首页中单击“订单查询”超链接,进入输入订单号页面。在文本框中输入订单号并单击提交的按钮,如果订单号输入无误,系统将根据定单号转到订单查询显示页面。 需要本论文完整程序源代码,答辩PPT或者更多毕业论文,联系上传者即可该方法实现非常简单,只需要根据用户录入的订单号在数据表中查询出对应的货品信息即可,关键代码如下:<%Condbcon=newCondb();intspif=0;Stringsubid=request.getParameter("subid");Stringsql="select*fromtb_ShopwhereSubid='"+subid+"'";%><%sum=sum+price;}if(!rs.next()){%>alert("没有此订单号请您重新核实");history.back();<%}%>4.1.6留言板模块留言板是一个商务网站中不可少的一部分,他可以增进用户与网站之间的交流。添加留言是用户与用户,以及用户与网站之间的一种交流模式,只有把用户想要表达的内容添加到数据库中,才能在浏览留言板中显示。用户在留言板中单击“添加留言”超链接就可以打开添加留言页面,该页面用来提交用户输入的留言信息,留言信息写好后,可以点击提交按钮,显示提交成功,若点击浏览留言,可打开留言板页面,该页面显示所有用户的留言,时间最近的排在最前面。用户在添加留言页中单击提交按钮,系统将数据表提交到admin/addlea.jsp页,该页用来实现将留言内容存入数据库中,关键代码如下:<%Datedate=newDate();Stringdat=date.toLocaleString();Condbcon=newCondb();Stringusername=request.getParameter("username");inttemp=con.executeUpdate(sql); 需要本论文完整程序源代码,答辩PPT或者更多毕业论文,联系上传者即可if(temp>0){%>alert("添加成功");history.back();<%}else{%>alert("数据库保存有误");history.back();<%}%><%4.2后台部分4.2.1后台总体框架后台功能只允许具有管理员权限的用户使用,它是实现前台功能的基础。主要包括管理员身份验证,订单信息管理模块,添加商品模块,查询用户信息管理模块,添加链接模块,公告信息管理模块组成后台功能介绍(1)功能模块介绍管理员身份验证:为合法用户提供一个后台入口。订单信息管理模块:网站管理者对用户订单的执行和编辑状态。添加商品模块:向商品表插入前台首页展示的商品信息。查询用户信息管理模块:查询注册所有用户,对一些非法或失信用户进行删除操作。添加链接模块:管理员向前台首页添加友情链接信息。公告信息管理模块:网站向用户发送最新公告信息。(2)后台文件结构网站后台文件结构,如图4-1所示。 需要本论文完整程序源代码,答辩PPT或者更多毕业论文,联系上传者即可用户信息管理UQuery.jsp后台首页index.html左侧导航Left.html添加商品AddWare.jsp后台中部Center.jsp订单信息管理spif.jsp添加超级链接Addlink.jsp后台头部Top.html添加公告信息affice.html显示查询删除用户订单执行订单状态删除用户公告处理图4-1后台文件结构图4.2.2管理员登录在前台首页单击管理员入口,将转到管理员登录页面。该页面的功能是对管理员身份验证,用户输入用户名和密码后单击“登录”按键,系统将判断用户名和密码的有效性,如果通过验证则转到后台首页,反之则提示错误。在管理员登录页面中,对管理员的身份进行验证,关键代码如下:<%Condbcon=newCondb();Stringlogin=request.getParameter("login");response.sendRedirect("index.htm");}else{%>alert("登录ID或密码错误");history.back(); 需要本论文完整程序源代码,答辩PPT或者更多毕业论文,联系上传者即可<%}%>4.2.3添加商品单击导航区的“添加商品”超链接,系统将打开添加商品页面,该页面主要用于商品信息添加到数据库表中,以提供前台首页商品展示类别展示所需要的数据依据。为了减少错误,在提交商品信息时,需要对数据的合法性进行验证,输入的商品价格不能是空字符型,而输入的图片只支持Gif格式等,这些任务可以用Bean来实现的,也可以由脚本语言Javascript编写,以下是脚本语言函数check()来完成的。为了确保信息在数据表中的唯一性,在用户提交表单时,需要先根据用户输入的商品名称对数据表进行查询,确保此商品在数据表中不存在后,方可进行添加操作。在程序中与次功能对应的页为admin/wcheck.jsp,关键代码如下:<%Datedate=newDate();Condbcon=newCondb();e='"+warename+"'";ResultSetrs=con.executeQuery(sq);if(rs.next()){out.println("alert('此商品已经添加请不要重复录入');history.back();");}else{Stringsql="";if(str!=null){sql="insertintotb_Ware(Warename,Wareprice,Waretype,Wareintro,Wareimage,Wareif,Dattime)values('"+warename+"','"+Integer.parseInt(wareprice)+"','"+waretype+"','"+wareintro+"','"+image+"','"+1+"','"+date.toLocaleString()+"')";}else{sql="insertinto 需要本论文完整程序源代码,答辩PPT或者更多毕业论文,联系上传者即可tb_Ware(Warename,Wareprice,Waretype,Wareintro,Wareimage,Wareif,Dattime)values('"+warename+"','"+Integer.parseInt(wareprice)+"','"+waretype+"','"+wareintro+"','"+image+"','"+0+"','"+date.toLocaleString()+"')";}}con.close();%>4.2.4订单信息管理用户在前台购物所产生的订单不能立即执行需要系统管理员在后台订单,运行结果如图5-13所示。信息管理审核确认它执行性。用户单击导航拦中的“订单信息管理”超链接进入用户订单处理页面,该页面是会显示进期所没有被处理的订单。用户订单处理页面显示的是用户的基本信息。要知道订单中所涉及的商品,需要单击对应的订单号的超链接打开商品订购祥单页才行。商品订购祥单主要通过提交的订单号从tb-shop表中查询出对应的商品显示在页面中,管理员审核后可通过复选框来设置订单是否执。程序中利用admin/shop.jsp来完成上述功能,关键代码如下:
商品订购详单订单号商品名称商品价格 需要本论文完整程序源代码,答辩PPT或者更多毕业论文,联系上传者即可数量总金额是否执行<%Condbcon=newCondb();while(rs.next()){%><%=rs.getString(1)%><%=rs.getString(2)%><%=rs.getInt(3)%><%=rs.getInt(4)%><%=rs.getInt(5)%>是/否"><%}con.close();%>当选中“是/否”复选框时,系统会根据提交的订单号更新数据表。如果没有更新成功,将转到spif.jsp页执行,关键代码如下:functioncheck(){form1.submit();}<%Condbcon=newCondb();%><%}con.close(); 需要本论文完整程序源代码,答辩PPT或者更多毕业论文,联系上传者即可%>4.2.5查询用户信息该模块用来完成对注册用户的浏览及删除功能。如果用户蓄意性注册或在很长的时间内没有订单生成,管理员就可以将该用户删除。单击导航拦中的“查询用户信息”超链接进入用户信息页面。对于一些失信的用户只需要单击右侧的“删除”超链接,即可转到damin/deluser.jsp页中做删除处理,关键代码如下:<%Condbcon=newCondb();Strstr=newStr();response.sendRedirect("Uquery.jsp");}else{%>alert("数据库发生错误");history.back();<%}%>4.2.6添加链接用户在后台页导航拦单击“添加链接”即可进入添加友情链接页面,该页面用于在前台显示友情链接信息。用户单击提交按钮后,系统将添加链接页面的数据表单提交admin/addlink.jsp页处理。关键代码如下:functioncheck(){if(form1.linkname.value==""){alert("请输入链接网址的名称");returnfalse;form1.linkname.focus();history.back();}if(form1.address.value==""){ 需要本论文完整程序源代码,答辩PPT或者更多毕业论文,联系上传者即可alert("请输入链接的地址");returnfalse;form1.address.focus();history.back();}} 需要本论文完整程序源代码,答辩PPT或者更多毕业论文,联系上传者即可第五章系统测试及难点分析5.1系统运行环境的搭建5.1.1JAVA虚拟机的安装本系统采用的是基于java的jsp技术,所以java虚拟环境即java虚拟机是必须要安装的。JDK(JavaDevelopmentKit)是一切java应用程序的基础,可以说,所有的java应用程序是构建在这个之上的。它是一组API,也可以说是一些javaClass。目前已经正式发布的最新版本是JDK1.5。Windows下,直接运行.exe文件,安装到一个目录,如C:/jdk1.5,安装完成后就是环境变量的设置。桌面上选择“我的电脑”(右键)->高级->环境变量->在“系统变量”--->“新建”->在变量名中输入:JAVA_HOME,变量值中输入:C:/jdk1.5同样再新建一个变量名CLASSPATH,变量值中输入:C:jdk1.5;C:jdk1.5libdt.jar;C:jdk1.5libtools.jar;还需要在Path变量值后面添加一个值:C:jdk1.5bin。至此JAVA环境安装成功。我们可以在命令行中敲入命令java如果显示java帮助,则证明环境设置成功。5.1.2Tomcat环境搭建安装TOMCAT,直接使用默认安装就可以了,假如我们将其安装在C:Tomcat5.5,安装完毕后,开始设置环境变量,新建环境变量CATALINA_HOME,值为C:Tomcat5.5,新建CATALINA_BASE,值为C:Tomcat5.5。打开Tomcat5.5文件中的bin文件,双击其中的运行程序ServerRunner,显示serverstart,服务器正常启动,此时在浏览器上敲入本地测试地址:http://localhost:8080如果出现Tomcat页面则证明Tomcat安装成功,而且正常启动。到这里,系统运行所需要的基本运行环境已经安装完成。5.2系统程序的安装和加载5.2.1文件的拷贝我们可以将整个系统文件夹拷贝到Tomcat的默认根目录下,一般路径为:C:Tomcat5.0webappsROOT。 需要本论文完整程序源代码,答辩PPT或者更多毕业论文,联系上传者即可5.2.2数据库的连接因为该系统仅作为毕业设计使用,为了方便演示和运行,系统所用数据库采用了Oracle数据库。设置完数据源以后,把文件中的classes文件下的所有文件夹复制到网站根目录的web-inf文件夹下面,然后重启服务器即可。在浏览器敲入地址:http://localhost:8080/ec_port/我们可以看到网站的主页面已经出现,至此,系统加载成功。5.3系统测试5.3.1系统关键部分测试分析系统完成之后,对各个模块的功能进行了详细的测试,输入数据和预测输出数据相比,发现了一些问题。主要是在查询过程中预计查询结果和实际结果不一致,有时候达不到目的,对数据库的操作表之间的关联考虑得不够周到,因此往往会出现一些小的错误。还有查询条件的前后数据类型不一致也是一个很常见的错误,需要靠一步步的查找解决。各个模块组装完成后,又会出现一些问题。比如在操作购物车结帐的这个流程中,由于是多次添加和修改,最后结帐,所以很容易造成数据混乱,必须对相应的数据关系理清楚,一些关键查询统计的SQL语句必须反复斟酌才能放在程序中使用。5.3.2测试分析总结及说明在测试过程中,我经过模块测试和组装测试,排除了系统的大部分错误。当然排除所有错误是不太可能的,我想应该还有些不易检测到的错误还没有被发现,需要在使用的过程中进一步的完善,数据库的加密是一个重要的概念,在实际的应用过程中是一个尚待解决的问题,应该做好数据库的完善工作,特别是备份和安全工作;另一方面本系统没有制作相关的打印,由于时间仓促难免有错误和不完善的地方,希望老师能够帮我指点和纠正。5.3.3系统的性能分析网上购物系统的性质决定了它的服务端工作负荷比较大,这就要求服务端的硬件配置要尽可能的高,主要是内存,而且操作系统也要尽可能的稳定。基于java的系统一般来说网络安全性比较好,但并不能说就一定安全,尤其在windows操作系统下,由于windows的漏洞比较多,系统装配在windows下并不是最佳的选择,如果有条件,建议可将系统装配在unix操作系统下,提高系统的抗侵入能力。 需要本论文完整程序源代码,答辩PPT或者更多毕业论文,联系上传者即可系统的核心数据库,随着数据的不断增多,必然会产生冗余,导致系统运行效率降低,建议管理员定期备份和清理冗余数据,以保证系统的正常高效运行。5.4系统中所存在的问题及解决方案5.4.1系统的整体设计和规划中的问题由于是基于B/S的系统,网页在其中就承担着非常大的工作,包括向服务端后台写入和修改数据,以及服务端响应客户端的请求,向客户端页面返回数据,这些工作不可能只由几个网页来完成,但网页数量一多又必然结构混乱,造成开发过程难以控制。为解决这个问题,我采用了现代软件开发过程的模块化思想,先将系统功能进行分解,大致可分为两部分,即前台和后台,前台又包括主页面及产品信息展示页面、搜索功能页面、新闻页面、购物车及订单页面等几个大的部分,后台包括会员信息管理、商品信息管理、新闻信息管理、等几个部分,各个部分又由许多小的页面组成,这样一来虽然网页数量没有减少,但结构清晰了很多,在开发过程中可以逐步,逐个模块的实现,提高了开发效率。5.4.2开发功能模块所遇到的难点因为是第一次做这么完整的系统,所以碰到的问题也很多,除了一些基本的语法之外,感觉还是一些考虑问题的思维方式不太得当,比如我的这个网上购物系统,我感觉难度比较大的还是购物车这个模块比较的难设计,因为过程比较复杂,他的一些逻辑处理就比较的难以用代码实现。我参考了一些网站,研究了一下他们的购物流程,大概有了一些处理的想法,用户在点击定购之后,系统先将该商品信息写入购物车页面,只有当用户在选择了商品数量,及确认按钮之后,系统才将该信息写入basket表,用户不选择商品数量,或者不点击确认按钮,系统就不把该商品信息写入basket表,这样就不至于造成basket表数据混乱,用户无法继续购物。当用户完成选购,点击去收银台结算时,系统开始判断商品库中的这些商品数量是否大于用户所选数量,如果没有,则提示用户没有该商品,如果有则将所有basket表中属于该用户id的商品信息提出来,并合计价格,返回给用户,用户如果确定付款购买,则给用户提供一个订货单,由用户填写一些基本信息,确认之后,系统则产生一个唯一的订货单号,并将其返回给用户,以便用户日后查询,同时,系统则将该用户所选购的商品信息以及用户信息放入到订单表中。这样就基本上实现了购物车的功能。 需要本论文完整程序源代码,答辩PPT或者更多毕业论文,联系上传者即可3、2系统实现3、2、1登陆区部分源代码如下:<%ifsession("user_name")=""then%>用户登陆

用户名:
密码:
    <%else%>用户已登陆!!!
需要本论文完整程序源代码,答辩PPT或者更多毕业论文,联系上传者即可<%endif%>functioncheck(){if(checkspace(document.f1.user_name.value)){alert("用户名不能为空!");returnfalse;}form1.submit;}functioncheckspace(checkstr){varstr='';for(i=0;i3、2、2前台设计截图 需要本论文完整程序源代码,答辩PPT或者更多毕业论文,联系上传者即可3、2、3留言区设计截图 需要本论文完整程序源代码,答辩PPT或者更多毕业论文,联系上传者即可3、2、4整体结果截图如下所示:5.4.3系统中存在的问题及拟定的解决方法 需要本论文完整程序源代码,答辩PPT或者更多毕业论文,联系上传者即可(1)第一个问题是用户在注册过程中,一些关键字段的命名规则存在着比较大的缺陷,比如用户名的选择上,一般的习惯是规定只能从a~z和数字0~9的随机组合,不能有特殊字符,而且只能以字母开头,不能以数字开头,用户名的长度也有限制,我在系统中只考虑了为空的情况,这是不够的,我们可以在jsp页面添加一段javascript验证代码,主要是使用正则表达式对用户名进行限制,具体的代码如下:if(form.username.value.length<5||form.username.value.length>20){alert("您的用户名长度应该在5-20个字符之间!");长度判断if(fIsNumber(form.username.value.charAt(0),"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ")!=1){alert("您的用户名只能以字母开头!");开头判断if(fIsNumber(form.username.value,特殊字符判断"1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_")!=1){alert("您的用户名应该是数字、字母、下划线,不允许出现汉字等其他字符!");(2)第二个问题就是用户登陆以后,如果需要修改资料,系统会先将数据库中该用户的所有信息以列表形式显示出来,问题就是此时出现的用户密码信息是以明码形式出现的,这对用户来说就存在这很大的风险,容易被他人看到,最好是以一些特殊符号来代替从而防止信息泄漏,在参考了其他网站的登陆模块之后,我对代码进行了简单修改,即可实现,问题是由密码的输入框属性引起的,原始的代码为:">此时密码输入框的属性为text也就是文本框,它会直接将数据以明码形式原封不动的输出,我们只需将其改为password属性即可,它以默认的黑色圆点代替真实数据,这样一个简单的修改,就保证了该部分的安全性。(3)第三个问题是管理人员对用户的管理部分,一个是用户信息,尤其是密码的加密,处于对系统安全性的考虑,数据库中的用户密码应该对于所有人都是加密状态,包括管理人员,但因本人水平有限对这个方面也不是很了解,所以准备采用现有的加密软件对相关数据进行加密,如http://www.newhua.com/soft/19490.htm该软件可以一次加密多个表,加密的文件会保存为新文件,不会破坏原来的数据库。加密算法采用了base64算法,但是目前不支持对中文进行加密,且加密的字段属性必须为“文本”或“备注”,因此对于需要加密的关键字段,我们必须事先将其设置为文本类型。如果需要我们可以也可将整个数据库进行加密,增加系统的安全性。 需要本论文完整程序源代码,答辩PPT或者更多毕业论文,联系上传者即可还有一个漏洞就是对会员的管理功能做的不够,没有考虑到用户密码丢失的问题,解决方法有两个,一个就是采取通常的做法,让用户在注册过程中,设置一些问题,通过回答问题的方式来取回密码,还有一个方法就是让管理员通过后台,初始化用户的密码,然后用户登陆对密码进行修改,这两个方法都可以达到目的,具体的实现过程不再一一说明。对于网上购物系统来说安全性无疑是最重要的,层层验证虽然保证了系统的安全性,但对于用户来说又是极不人性化的,如何在最简单的验证流程下,保证用户数据的安全,是在做网上购物系统中需要考虑的一个问题。4、小结:本系统具有相当的实用功能。在查询方面,系统实现了多条件任意字段的模糊查询,同时在分类查询上实现了动态生成,系统可以自动识别用户不同的输入。在电子产品入库、出库和库存三者之间建立了良好的链接关系,某一部分地修改均会自动引发系统对与其相关的部分进行连锁修改。在用户管理方面,系统较好地实现了用户注册,用户注销和密码修改等各项功能。系统在设计过程中不可避免地遇到了各种各样的问题,由于整个系统完全都是由个人设计的,有关ASP许多细节问题都要靠自己去摸索,加之本人水平有限,并没有完全地理解ASP的强大功能,而且还存在着许多不足之处。这些都是需要完善的地方,该系统离实际使用也还有相当的距离,需要我进行不断地补充和完善。通过本次毕业设计我学到了不少新的东西,也发现了大量的问题,有些在设计过程中已经解决,有些还有待今后慢慢学习。只要学习就会有更多的问题,有更多的难点,但也会有更多的收获。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
关闭