第一篇:jsp网上购物系统
jsp网上购物系统
2008年10月11日 星期六 下午 06:03 网上购物系统设计
摘 要:本网上购物系统是一个基于Internet,采用B2C(Business to Consumers)模式,并根据现有的网上购物系统的现状而设计开发的电子商务平台。它不但可以扩大商家的规模和市场影响力,而且可以减少企业的经营成本,提高工作效率。
本文首先介绍了网上购物系统的现状及开发背景,然后论述了系统的设计目标,系 统需求和总体设计方案,较详细的论述了系统的详细设计和实现。最后,本文对网 上购物系统进行了系统检测并提出了还需要改进的问题。
本系统主要为用户提供了会员注册,购物车管理,商品搜索,用户资料修改等功能,为管理员提供了商品管理,用户信息管理,新闻信息管理,广告链接管理等功能。在设计方面,本系统采用B/S三层结构,同时使用JSP技术进行动态页面的设计,从系统的安全性和代码的可重用性方面考虑,运用JavaBean对程序的关键代码进行封装。后台数据库选用Access数据库。关键词:B/S结构;JavaBean;JSP;Access
目 录
中文摘要„„„„„„„„„„„„„„„„„„„„„„„„„„„Ⅰ 英文摘要„„„„„„„„„„„„„„„„„„„„„„„„„„„Ⅱ 目 录„„„„„„„„„„„„„„„„„„„„„„„„„„„Ⅲ 前 言„„„„„„„„„„„„„„„„„„„„„„„„„„„„1 一 网上购物系统概述 „„„„„„„„„„„„„„„„„„„„„2 1.1系统的开发背景 „„„„„„„„„„„„„„„„„„„„„2 1.1.1网上购物的发展„„„„„„„„„„„„„„„„„„„2 1.1.2网上购物系统的现状„„„„„„„„„„„„„„„„„„2 1.2系统实现的目标„„„„„„„„„„„„„„„„„„„„3 1.3系统开发的意义„„„„„„„„„„„„„„„„„„„„3
二 网上购物系统分析 „„„„„„„„„„„„„„„„„„„„„4 2.1网站的设计目标 „„„„„„„„„„„„„„„„„„„„„4 2.2网站的可行性分析„„„„„„„„„„„„„„„„„„„„4 2.3网站的深入调查 „„„„„„„„„„„„„„„„„„„„„5 2.4网站设计的特点 „„„„„„„„„„„„„„„„„„„„„5 2.5网站开发的设计思想„„„„„„„„„„„„„„„„„„„5 2.6系统设计的总体规则„„„„„„„„„„„„„„„„„„„6 三 系统的开发技术及主要架构„„„„„„„„„„„„„„„„„7 3.1开发技术的选择„„„„„„„„„„„„„„„„„„„„„7 3.2系统的主要架构及开发模式„„„„„„„„„„„„„„„„7 3.1.1基于B/S的体系结构„„„„„„„„„„„„„„„„„8 3.1.2基于MVC的应用开发模型„„„„„„„„„„„„„„„8 四 系统的功能和流程分析„„„„„„„„„„„„„„„„„„„10 4.1 网站的功能分析„„„„„„„„„„„„„„„„„„„„10 4.2平台功能模块的设计分析„„„„„„„„„„„„„„„„10 4.3 系统流程分析„„„„„„„„„„„„„„„„„„„„„11 4.3.1 前台购物流程„„„„„„„„„„„„„„„„„„„11 4.3.2 注册功能流程„„„„„„„„„„„„„„„„„„„„11 4.3.3 商品搜索流程„„„„„„„„„„„„„„„„„„„„12 4.3.4 用户登录流程„„„„„„„„„„„„„„„„„„„12 4.3.5 商品管理流程„„„„„„„„„„„„„„„„„„„13 4.3.6 购物车流程„„„„„„„„„„„„„„„„„„„„„14 五 系统功能的具体实现„„„„„„„„„„„„„„„„„„„15 5.1 系统数据库表的基本设计„„„„„„„„„„„„„„„„15 5.2 功能总体说明„„„„„„„„„„„„„„„„„„„„„„17 5.2.1 目录结构说明„„„„„„„„„„„„„„„„„„„„17 5.2.2功能页面结构„„„„„„„„„„„„„„„„„„„„18 5.2.3主要功能流程„„„„„„„„„„„„„„„„„„„„18 5.3各功能模块的实现„„„„„„„„„„„„„„„„„„„„19 5.3.1数据库的连接„„„„„„„„„„„„„„„„„„„19 5.3.2用户登陆模块的实现„„„„„„„„„„„„„„„„„19 5.3.3 购物车模块的实现„„„„„„„„„„„„„„„„„22 5.3.4后台管理模块的实现„„„„„„„„„„„„„„„„„25 5.3.5商品搜索模块的实现„„„„„„„„„„„„„„„„„27 六 系统测试及难点分析„„„„„„„„„„„„„„„„„„„29 6.1系统运行环境的搭建„„„„„„„„„„„„„„„„„„„29 6.1.1 JAVA虚拟机的安装„„„„„„„„„„„„„„„„„29 6.1.2 Tomcat环境搭建 „„„„„„„„„„„„„„„„„„29 6.2 系统程序的安装和加载„„„„„„„„„„„„„„„„„29 6.2.1文件的拷贝„„„„„„„„„„„„„„„„„„„„„30 6.2.2 数据库的连接„„„„„„„„„„„„„„„„„„„„30 6.3系统的测试„„„„„„„„„„„„„„„„„„„„„„„30 6.3.1系统关键部分测试分析„„„„„„„„„„„„„„„„30 6.3.2 单元测试分析„„„„„„„„„„„„„„„„„„„„30 6.3.3测试结果分析及说明„„„„„„„„„„„„„„„„„31 6.3.4系统的性能分析„„„„„„„„„„„„„„„„„„32 6.4系统中存在的问题及解决方法„„„„„„„„„„„„„„32 6.4.1系统的整体设计和规划中的问题„„„„„„„„„„„32 6.4.2开发功能模块所遇到的难点„„„„„„„„„„„„„33 6.4.3系统中存在的问题及拟定的解决方法„„„„„„„„„34
总 结„„„„„„„„„„„„„„„„„„„„„„„„„„„35 参考文献 „„„„„„„„„„„„„„„„„„„„„„„„„„„36 致 谢 „„„„„„„„„„„„„„„„„„„„„„„„„„„37 前 言 目前,网络正以一种前所未有的冲击力在影响着人类的活动,包括人类的生产和日常生活。网络的诞生和发展,颠覆了传统的信息传播方式,冲破了存在于传统交流方式中时间和空间的种种壁垒,极大地改变了人类从物质到精神、从形式到内容、从生产到生活的各种活动,并且给人类带来了新的机遇和挑战。
2006年1月17日,中国互联网络信息中心(CNNIC)在京发布“第十七次中国互联网络发展状况统计报告”。报告显示,截至2005年12月31日,我国上网用户总数突破1亿,为1.11亿人,其中宽带上网人数达到6430万人。目前,我国网民数和宽带上网人数均位居世界第二。国家顶级域名CN注册量首次突破百万,达到109万,成为国内用户注册域名的首选,稳居亚洲第一。上网计算机数达到4950万台,网络国际出口带宽达到136106M,网站数达到69.4万个。IP地址总数达到7439万个,仅次于美国和日本,位居世界第三。
在互联网服务业务方面:电子邮件、搜索引擎、网上银行、在线交易、网络广告、网络新闻、网络游戏等服务业务仍然快速的发展着。而本次毕业设计的任务是,构建一个电子商务网站,采用的主要技术是基于服务器端的JSP、Java的组件JavaBean,以及网页编程语言HTML。
JSP是Java Server Page的缩写,是由Sun Microsystems公司倡导、许多公司参与建立一种动态网页技术标准,它在动态网页的建设中有强大而特别的功能。JSP是一种服务器端HTML(或XML)嵌入Java代码的脚本语言,是开发Web动态网站快速而有效的工具,JSP的技术的优势: 1.JSP技术是用Java语言作为脚本语言的。Java语言是成熟的、强大的、易扩充的编程语言。
2.高效性与安全性。JSP在执行前先被编译成字节码,字节码由Java虚拟机解释执行,比源码解释效率高。
3.可维护性。由于JSP技术是一种开放的、跨平台的结构,因此Web服务器、平台及其他组件能很容易升级或切换,且不会影响JSP基本的应用程序。4.稳定性。
5.产品的多样性。目前,在国内JSP还是一种较新的技术。但JSP+Servlet+JDBC+JavaBean目前已经成为开发电子商务平台的主流技术。随着国内与国际的接轨,JSP必将成为网站开发技术的首选。
一 网上购物系统概述 1.1 系统开发背景 1.1.1网上购物的发展
近年来,随着Internet的迅速崛起,互联网已日益成为收集提供信息的最佳渠道并逐步进入传统的流通领域。于是电子商务开始流行起来,越来越多的商家在网上建起在线商店,向消费者展示出一种新颖的购物理念。
网上购物系统作为B2B,B2C(Business to Customer,即企业对消费者),C2C(Customer to Customer,即消费者对消费者)电子商务的前端商务平台,在其商务活动全过程中起着举足轻重的作用。本文主要考虑的是如何建设B2C的网上购物系统。
网上购物是一种具有交互功能的商业信息系统。它向用户提供静态和动态两类信息资源。所谓静态信息是指那些比经常变动或更新的资源,如公司简介、管理规范和公司制度等等;动态信息是指随时变化的信息,如商品报价,会议安排和培训信息等。网上购物系统具有强大的交互功能,可使商家和用户方便的传递信息,完成电子贸易或EDI交易。这种全新的交易方式实现了公司间文档与资金的无纸化交换。
1.2.1网上购物系统的现状
目前在国内PHP与ASP应用最为广泛。而JSP由于是一种较新的技术,国内采用的较少。但在国外,JSP已经是比较流行的一种技术,尤其是电子商务类的网站,多采用JSP。
采用PHP的网站如新浪网(sina)、中国人(Chinaren)等,但由于PHP本身存在的一些缺点,使得它不适合应用于大型电子商务站点,而更适合一些小型的商业站点。
首先,PHP缺乏规模支持。其次,缺乏多层结构支持。对于大负荷站点,解决方法只有一个:分布计算。数据库、应用逻辑层、表示逻辑层彼此分开,而且同层也可以根据流量分开,组成二维阵列。而PHP则缺乏这种支持。还有上面提到过的一点,PHP提供的数据库接口支持不统一,这就使得它不适合运用在电子商务中。
ASP和JSP则没有以上缺陷,ASP可以通过Microsoft Windowsd的COM/DCOM获得ActiveX规模支持,通过DCOM和Transcation Server获得结构支持;JSP可以通过SUN Java的Java Class和EJB获得规模支持,通过EJB/CORBA以及众多厂商的Application Server获得结构支持。
三者中,JSP应该是未来发展的趋势。世界上一些大的电子商务解决方案提供商都采用JSP/Servlet。比较出名的如IBM的E-business,它的核心是采用JSP/Servlet的WebSphere;西方另外一个非常著名的电子商务软件提供商,Intershop。它原来的产品Intershop1 2, 3, 4占据了主要的电子商务软件份额。它们都是通过CGI来提供支持 的。但去年10月后它推出了Enfinity,一个采用JSP/Servlet的电子商务Application Server,而且声言不再开发传统软件。总的来说,ASP,PHP,JSP三者都有相当数量的支持者,而这三者也各有所长,在开发过程中,我们应该根据实际的需要来使用最合适的技术,本系统则采用较新的jsp技术,一方面jsp的安全性和跨平台性比较好,另一方面,我也希望能从开发该系统的过程中,深入学习一下这门编程语言。1.2系统实现的目标
现在流行的网上购物系统不仅要有漂亮的网页,更要有严谨的规划,注重每一个细小的环节。这样才能使得在电子交易时避免不必要错误发生。我们将使用HTML、JSP等技术来编辑网页,并运用JDBC技术把数据库和动态网页相关联。传统的管理信息系统信息获取方法是由专业文字录入人员将信息输入到管理系统的数据库中,这种方法在数据量不大时有很多的应用场合。当数据量比较大,并且有较强的专业性时,录入的费用和出错的可能性都相应上升。本设计在实际应用中的解决方案是建立网站, 以及自己的数据库,使得所需商品信息可以及时的保存、更新,可以更好的及时了解商品买卖的情况。1.3系统的开发意义
Internet的发展,为改变传统的商业运作模式提供了一种技术上的可行性的方案:利用Internet的技术和协议,建立各种企业内部网Intranet,企业外部网Extranet,通过廉价的通讯手段,将买家与卖家、厂商和合作伙伴紧密结合在了一起,消除时间与空间带来的障碍,从而大大的节约了交易成本,扩大了交易范围。而在实际的生活中,这种方案已经被广泛的运用到了实际的商业活动中了,人们将这种交易模式称为:电子商务。当今比较流行的网上购物系统国外有“淘宝(www.teniu.cc)”,国内有“当当(www.teniu.cc)”。它们都是相当优秀的电子商务网站,对其他的网站提供了良好的典范。设计中可以学习参考他们的思想,了解和熟悉整个网站的开发流程及完整的电子商务网站应有的功能和注意事项。
设计和完成一个电子商务网站的,将会牵涉到许多技术上的问题,如:动态网页制作技术的,后台数据库的设计和管理,通过实际的制作个网站,可以避免纸上谈兵,在实践中掌握上述技术的使用。二 网上购物系统分析
系统分析是平台开发的一个不可缺少的环节,为了能够使本系统更好、更完善地被设计出来,就必须先进行调查研究。在系统调查的基础上,对新系统的功能进行细致的分析,从而才能够开发出完整的系统设计 2.1网站的设计目标
本平台利用现在比较广泛的JSP+Oracle数据库的架构实现的,此系统分为前台管理和后台管理。前台管理是友好的操作界面,供用户浏览、查询使用。包括:浏览商品、查询商品、订购商品、购物车、用户维护等功能;后台管理是提供给管理员的,其中包括:商品管理、用户管理等。使管理员从繁琐的手工操作中解脱出来,并提高了办公效率。2.2网站的可行性分析
随着计算机技术的发展和网络人口的增加,网络世界也越来越广博,越来越丰富,电子商务已经成为网上的一股潮流。我们相信要不了太长有时间,顾客就可以在网络世界上获得他们在现实世界上可以获得的所有商品和服务。
可行性研究是为了弄清楚系统开发的项目是不是可以实现和值得进行研究的过程,实际上是一次大大简化系统分析和系统设计的过程,所以,进行可执行性的分析是非常必要的,也是很重要的,经过最初的设计目标和进行的市场调查得出以下四点的可行性分析:
(1)经济可行性:该平台设计只是作为本人的毕业设计,又因为本人的设计能力有限,其功能还不能完善,所以没有什么经济效益可谈。(2)技术可行性:JSP+Servlet的技术已经较为成熟。
(3)运行可行性:该系统需要搭建JVM即JAVA虚拟机和Tomcat环境,在此环境下系统,并且在正确连接数据库后可以正常运行。
(4)法律可行性:该平台是作为毕业设计与商业无关,又因为是自主开发设计,因此不会构成侵权,在法律上是可行的。
通过以上的可行性分析,我将采用JSP+Servlet相结合的技术,运用Access数据库对网站进行建设。2.3网站的深入调查
经过以上的初步调查和研究,并且确定了该平台的可行性,并决定开发本平台,为了能够对现行的平台内容进行充分了解,使所要开发的平台更具有实用性和适应性,通过两个月的实习调查和指导老师的耐心介绍,设计出该平台功能如下: 1.能够完成用户基本信息录入的注册和用户基本信息的个人前台与后台管理。2.能够完成管理员对网站的商品资料(商品添加、商品审查)会员管理(会员审查)、网站信息管理(新闻添加、修改删除、公告设置),以及常规设置(广告添加,友情链接)的功能。
3.能过电子商品的名称,电子商品的分类进行搜索。
4.能够通过查看购物车对所选商品进行确定、挑选,通过定单查询对支付费用进行确定。
经过前一阶段的调查与研究分析,我已确定了该平台设计的主要功能,对每个功能模块也作了具体描述,下面就来具体分析该平台的设计特点与具体思想。2.4网站设计的特点
我所设计和开发的网上购物平台是经过很长时间的调查和分析才开始具体实施的,它的主要特点是改变了以往的购物只能过现实的商场才能达到的结果,采用Web技术,借助于Internet互联网广泛应用技术,达到资源共享,提高以往购物的局限性,缩短人们的时间和提高工作效率,具有较好的交互性,从而实现信息化,规范化,系统化,网络化的平台,使整个购物活动过程简单、方便、易行。2.5网站开发的设计思想
网上购物平台主要是对后台管理和前台操作。后台管理是管理员对本网站的维护,通过商品资料(商品添加、商品修改)会员管理(会员审查)网站信息管理(新闻添加、修改删除、公告设置),以及常规设置(广告添加,友情链接)等功能达到对网站的管理。前台操作是用户登录到本网站,可以进行用户注册,通过网站的精品推荐或商品搜索功能,找到自己想要买的商品,装入购物车,提交定单进行购买。
网上购物平台的特点是客户和电子商品信息量很大,管理员需要整理的信息很多,为让管理员轻松、方便、快捷的管理,该平台采用符合购买电子商品基本的原则,满足广大客户的日益增长的数量,并达到操作过程中的直观、方便、实用、安全等要求。
2.6系统设计的总体规则
无论哪个网站都要有它自己的设计规则。该平台也一样,它的主要设计规则有: 简单性:在实现平台的功能的同时,尽量让平台操作简单易懂,这对于一个网站来说是非常重要的。针对性:该平台设计是网上购物系统及后台管理的定向开发设计,所以具有专业突出和很强的针对性。实用性:该平台能完成电子商品展示和管理员管理的基本信息,具有良好的实用性。
三 系统的开发技术及主要架构 3.1开发技术的选择 合理的选择开发技术,对于网站开发的完成情况有着非常重要的影响。要开发一个网站,首先要选择一个动态网页开发技术。当前比较流行的动态网页开发技术有JSP、ASP、PHP。它们的特性比较如下: 表3-1 asp/jsp/php比较表 技术名称 ASP JSP PHP 对数据库的支持 好 好 好 开发难易度 容易 容易 较难
使用平台 Windows9X/NT Windows/UNIX UNIX 安全性 不好 好 不好
对组件的支持 支持 支持 不支持
执行方式 解释执行 编译之后执行 解释执行 跨平台 不好 好 好
这三种都是在传统的HTML代码中,利用HTML标签的扩展,构成页面。不难看出,JSP的综合实力是最强的,尤其是在安全性和跨平台性两个方面,比其他的两种技术都要好,因此,最后我们选择基于Java的JSP技术作为动态网页的开发技术。
3.2系统的主要架构及开发模式
系统的建设关键在于其所使用的架构,而网上购物这种基于web的系统,传统的c/s架构已经不能满足大量用户的访问和操作,b/s基于浏览器的架构则是目前网络系统应用的主流,它将大量的数据处理工作交给服务器端来处理,客户端只用通过普通的IE浏览器即可访问系统,方便快捷而且利于系统的更新和维护,java语言在该方面更是得天独厚,j2ee规范的出现则使系统的开发更加规范,层次更加清楚,更利于对复杂事务的处理,而且在安全性方面也做的更好。基于mvc的开发流程则使开发过程更加清晰明了,利于做一些复杂的逻辑实现,从而节省了开发周期和开发成本。3.2.1基于B/S的体系结构
在B/S体系结构系统中,用户通过浏览器向分布在网络上的许多服务器发出请求,服务器对浏览器的请求进行处理,将用户所需信息返回到浏览器
网上购物系统的主要功能及体系结构,重点讨论了系统数据准备、数据库的逻辑结构分析、各模块系统流程 各功能模块的关联和响应 ,JSP与后台数据库链接等关键技术。这些技术的实现,满足了系统的需要,优化了系统的性能。目前基于该模型的系统处于实验室阶段,还存在许多问题与不足,如安全性能还不完善,缺少必要的数据加密系统等,,这些功能与技术还需要加以提高和实现。
网上购物系统无论是在开发过程中,还是建成后的日常维护过程中,都需要进行严格的检测,以保证购物系统的服务质量。随着网上购物系统技术的日趋成熟、网上购物的优势日趋明显,会有更多的人参与到网上购物的浪潮中来,人类
最终将迎接电子商务时代的来临。
第二篇:网上购物系统
网上购物系统的实现
The realization of the online shopping system
总计 毕业设计(论文)表 格插 图
页 个
幅
7 20
摘 要
本网上购物系统是一个基于Internet,采用B2C(Business to Consumers)模式,并根据现有的网上购物系统的现状而设计开发的电子商务平台。它不但可以扩大商家的规模和市场影响力,而且可以减少企业的经营成本,提高工作效率。
本文首先介绍了网上购物系统的现状及开发背景,然后论述了系统的设计目标,系统需求和总体设计方案,较详细的论述了系统的详细设计和实现。最后,本文对网上购物系统的运行环境配置和运行方式进行了介绍。
系统从游客、普通会员和管理员三者的角度出发,主要实现了以下功能。为游客提供了浏览商品信息和注册会员功能;为普通会员提供了会员注册、购物车管理、用户资料修改等功能;为管理员提供了用户信息管理、商品信息管理、商品类别信息管理等功能。在设计方面,本系统采用B/S三层结构,同时使用JSP技术进行动态页面的设计,从系统的安全性和代码的可重用性方面考虑,运用servlet对程序的关键代码进行封装。后台数据库选用SQL SERVER2008数据库。
关键词:网上购物系统 效率 B/S
I
Abstract
The online shopping system is an Internet-based B2C(Business to Consumers)mode, and the status quo of the existing on-line shopping system design and development of e-commerce platform.It can not only expand the business scale and market influence, and can reduce the operating costs of enterprises, improve work efficiency.This paper first introduces the background of the current situation and development of the online shopping system, and then discusses the design goals of the system, the system needs and overall design, more detailed discussion of the detailed design and implementation of the system.Finally, the operating environment of the online shopping system configuration and operation mode was introduced.System from the perspective of tourists, ordinary members and administrators of the three, the main achievement of the following features.Offers visitors browse merchandise and registered members function;Join for ordinary members, shopping cart management, user information modify functions;provides administrators with user information management, product information management, product category information management and other functions.In terms of design, the system uses B / S three-tier structure, and design of dynamic pages using JSP technology, consider using servlet to encapsulate the key code of the program from the security of the system and code reusability.Back-end database to use SQL Server 2008 database.Key Words: online shopping system;
efficiency;B/S
II
目 录
摘 要..........................................................................................................................I Abstract.....................................................................................................................II 第一章
概述...........................................................................................................1
1.1 网上购物系统的背景.....................................................................................................1
1.1.1 网上购物发展背景.............................................................................................1 1.1.2 网上购物系统开发技术背景.............................................................................1 1.2 网上购物系统的意义.....................................................................................................2
第二章
需求分析...................................................................................................3
2.1 系统可行性分析.............................................................................................................3 2.2 系统总体目标分析.........................................................................................................3 2.3 系统功能需求分析.........................................................................................................3
第三章
系统的开发技术及开发模式(开发工具)...........................................5
3.1 开发技术.........................................................................................................................5
3.1.1 开发语言----JSP..................................................................................................5 3.1.2 数据库----Microsoft sql server 2008..................................................................6 3.1.3服务器----Tomcat 6.0...........................................................................................6 3.2 MVC开发模式..............................................................................................................6
第四章 系统的实现及功能流程.............................................................................8
4.1 游客功能.........................................................................................................................8 4.2 普通会员功能.................................................................................................................9
4.2.1 会员登录功能.....................................................................................................9 4.2.2 会员信息管理...................................................................................................10 4.2.3会员购物功能....................................................................................................12 4.3 管理员的管理功能.......................................................................................................14
4.3.1 会员管理...........................................................................................................15 4.3.2 订单管理...........................................................................................................15 4.3.3商品类别管理....................................................................................................17
III
4.3.4 商品管理...........................................................................................................18 4.3.5 库销管理...........................................................................................................22 4.3.6公告管理功能....................................................................................................23 4.4 数据库的设计与实现...................................................................................................26
第五章 系统的使用...............................................................................................29
5.1 系统环境要求...............................................................................................................29 5.2 系统安装.......................................................................................................................29 5.3 系统运行.......................................................................................................................29
第六章 结束语.......................................................................................................30 参考文献.................................................................................................................31
IV
第一章
概述
1.1 网上购物系统的背景
随着社会的发展和人们生活节奏的加快,传统的购物模式已不能满足人们的需求,再加上Internet的迅速崛起,为电子商务的发展提供了技术支持,网上购物开始逐渐走进人们的生活。
1.1.1 网上购物发展背景
现行在网上交易的物品主要有虚拟的物品和实体的物品两种。虚拟的物品包括服务和虚拟商品,如电影、歌曲等。实体的物品即为我们常见的可触及的物品,如书、电器、衣服等。本网上购物系统里进行的是实体物品的交易。
网上购物最主要的是涉及购买物品、库存、物流三方面。然而电子商务在我国发展时间还短,各方面都还不成熟。如还没有完善的法律来规范和保障交易的安全进行,对商品的定价也缺乏有效的市场机制和宏观调控机制,除淘宝、当当网等较大型的交易平台有更专门、较安全的结算方式外,很多商城只能依靠“货到付款”等浪费时间人力的结算方式;对商品的保存方面,全国各地到处是分散的仓库,有的甚至就是在自己家里隔出一房间作为仓库,这很不利于商品的整体资源分配,造成很大的浪费;现在有存在很多的物流公司,更大的有申通、韵达、圆通等,各城市又有很多的只在本城市接受业务的小物流公司,这样的局面造成物流公司没有很好的服务意识,物品被损坏的事情时有发生,并且没有规范的赔偿机制。因此建立一个友好、安全的购物环境迫在眉捷。
存在多种电子商务模式。包括B2B,即,B2C(Business to Customer,即企业对消费者),C2C(Customer to Customer,即消费者对消费者)电子商务的前端商务平台,在其商务活动全过程中起着举足轻重的作用。本文主要考虑的是如何建设B2C的网上购物系统。1.1.2 网上购物系统开发技术背景
目前基于B/S模式下的购物系统开发发技术主要有ASP、PHP、JSP三种。三者各有优缺点。
对于ASP,基于Windows9X/NT平台下进行开发,它对数据库的支持性好,并且容易开发,但是安全性不好,并且跨平台性不好。对于PHP,它有开发容易,安全性好跨平台性好的特点,但是由于本身的一些缺点,不适合于开发大型的电子商务站点,更适合于开发小型的商业站点。对于JSP,虽然较难开发,国内也大多使用ASP和PHP,但是在国外是较为流行的开发技术,特别是应用于电子商务,大多是使用JSP。
第二章
需求分析
总体来说,ASP、PHP和JSP三者各有各的优势,我们应该根据实际情况来选择自己需要的技术,JSP有很好的跨平台性和安全性,我自己学得也是JSP,所以本系统使用的是JSP
1.2 网上购物系统的意义
传统的购物方式,需要有专门的店面来展示商品,并且要有多个营业员来出售商品,购买者也要花很长的时间在路上和交通费用等缺点。但是,使用网上购物系统有很多的好处。
对于网店的经营者,投资少,成本低。不需要花大量的时间和金钱去寻找和装修店面,并且网店的维护简单、便宜;一个人可在线同时与多名消费者进行交流,提高交易量,提高效率;更新产品时,也只需在网上进行商品信息的发布和更新,不用费尽心思在店里寻找场地来展示;上班时不用一直站着,只需与消费着在线交流即可;可以很方便的看到其他卖家商品的价格,作为参考来定位自己的商品。对于消费者,能够方便、快速收集商品信息,包括其他网店的价格、商品的性价比、其他消费者对其的评价等等,以此来决定是否购买,购买哪一件商品,从而能够更好的购得适合自己的物商;消费者可以足不出户,就购得商品,节约的时间和交通费用;消费者还可以将自己的购物心得在网上进行发布,实现信息的即时共享,与其他消费者进行交流。
总的来说,通过购物网站系统这一平台,将厂商、物流、卖家和买家等紧密的联系走来,可以方便、快捷的进行信息共享和沟通,扩大了交易的范围,大大的节约的成本。
第二章
需求分析
2.1 系统可行性分析
系统实现之前一定要做可行性研究,才能清楚的知道在现有的条件下系统能否实现,同时这也是一个很好的进行整体分析和把握系统的方法。因此可行性分析是重要的,也是必要的。
技术可行性分析。JAVA本身具有平台无关性、完全面向对象和简单性、可靠性、安全性等特点。JSP作为JAVA平台的一部分,使用JAVA完成动态WEB开发,是在HTML代码中嵌入JAVA代码以实现功能,由于JAVA语言的跨平台特性,所以JSP不会受到操作系统或者开发平台的制约,而且有多种服务器可以支持,如TOMCAT、WEBLOGIC、WEBSPHERE等,所以经常在中大型项目开发中使用。不难看出在JSP技术编写的程序应用于更灵活的、可扩展的、现有的技术条件下,能够完成功能。
经济可行性分析。此作品只是作为自己的毕业设计,不用很多的经济成本,当然也没有什么效益可言。
法律可行性分析。本系统不涉及商业目的,也不涉及侵权行为,是符合法律规定的。综上所述,本系统在各方面都是可行的,可以进行开发。
2.2 系统总体目标分析
本系统采取人机对话的方法,为用户提供一个数据存储安全可靠、界面友好、操作方便、运行稳定的购物系统。
2.3 系统功能需求分析
一个系统的成功与否,最重要的就是能否满足用户的使用需要。一个购物系统的用户主要是卖家和买家。因此,本购物系统应该要实现以下功能:
会员注册功能。在购物商品前,网民需要注册成为网店的会员,填写个人信息,包括名称、密码、电子邮箱等。
会员登录。未登录的网发只能浏览信息,而不能下订单。只是登录之生,才可以下订单购买商品。
会员信息管理。会员登录之后,可以对自己的信息进行修改,如修改字码,修改电话号码,修改电子邮箱等。
管理员管理注册会员。管理上员可以对已经注册的会员进行审查和管理。
第二章
需求分析
管理员对商品进行管理。管理员可以上传新的商品,删除不再出售的商品,或者对商品的信息进行更新等。
管理员对订单处理。管理员对会员下的订单进行管理,可以删除订单,使订单无效;也可以确认订单有效,成功购得商品。系统总的功能图如下
图2.3 系统总功能图
第三章
系统的开发技术及开发模式(开发工具)
3.1 开发技术
选择一个合适的开发平台,对于系统的开发是很重要的。开发一个系统,主要涉及的开发技术,一方面是要使用的开发语言,一方面是用于数据存储的数据库,还有一方面是要用到的数据库。本系统用到的是JSP开发语言,Mcrosoft sql server 2008数据库还有Tomcat 6.0服务器。3.1.1开发语言----JSP JSP技术所开发的Web应用程序是基于Java的,它拥有Java语言跨平台的特性,以及业务代码分离、组件重用、基础Java Servlet功能和预编译等特征。
跨平台性。JSP是在Java语言基础上的,那么它可用Java API,应用于不同操作系统的数据库也可以为JSP服务,JSP使用JDBC技术操作数据库,从而避免了代码移植导致更换数据库时的代码修改问题。正是因为跨平台的特性,使得采用JSP技术开发的项目可以不加修改地应用到任何不同的平台上,这也应验了Java语言的“一次编写,到处运行”的特点。
业务代码分离。采用JSP技术开发的项目,通常使用HTML语言来设计和格式化静态页面的内容,而使用JSP标签和Java代码片段来实现动态部分。程序开发人员可以将业务处理代码全部放到JavaBean中,或者把业务处理代码交给Servlet、Struts等其他业务控制层来处理,从而实现业务代码从视图层分离。这样JSP页面只负责显示数据即可,当需要修改业务代码时,不会影响JSP页面的代码。 组件重用。JSP中可以使用JavaBean编写业务组件,也就是使用一个JavaBean类封装业务处理代码或者作为一个数据存储模型,在JSP页面甚至整个项目中都可以重复使用这个JavaBean。JavaBean也可以应用到其他Java应用程序中,包括桌面应用程序。
继承Java Servlet功能。Servlet是JSP出现之前的主要Java Web处理技术。它接受用户请求,在Servlet类中编写所有Java和HTML代码,然后通过输出流把结果页面返回给浏览器。其缺点是:在类中编写HTML代码非常不便,也不利于阅读。使用JSP技术之后,开发Web应用便变得相对简单快捷多了,并且JSP最终要编译成Servlet才能处理用户请求,因此我们说JSP拥有Servlet的所有功能和特性。
预编译。预编译就是在用户第一次通过浏览器访问JSP页面时,服务器将对JSP页面代码
第三章
系统的开发技术及开发模式(开发工具)
进行编译,并且仅执行一次编译。编译好的代码将被保存,在用户下一次访问时,直接执行编译好的代码。这样不仅节约了服务器的CPU资源,还大大提升了客户端的访问速度。3.1.2 数据库----Microsoft sql server 2008 Microsoft sql server 2008是一个功能非常丰富的关系型数据库管理系统。
它包括了用于数据存储和处理的数据库引擎(Database Engin)、用于数据的移动复制和转换的Integration Services、用于数据挖掘应用程序的Analysis Services等等。当然,最重要也是最常用到的还是SQL Server Management Studio,它是一个集成环境,在这里可以编写SQL语句,可以对数据库的各个对象进行管理,数据库对象包括数据库关系图、表、视图、同义词、存储过程、函数、触发器、程序集、类型、规则和默认值等。一般情况下,我们可以在这里创建数据库,创建表等,并且对其进行管理。还有一个经常会使用的是SQL Server 配置管理器,在此对端口等信息进行管理,启动实例服务等。3.1.3服务器----Tomcat 6.0 Tomcat 6.0技术先进、性能稳定,而且是免费的,是目前比较流行的Web应用服务器。使用Tomcat6.0服务器,首先要进行安装和安装JDK,并且配置环境变量。Tomcat6.0主要文件夹有:
bin。所有的可执行命令,启动和关闭服务器的命令都在此文件夹中 conf。服务器的配置文件夹,其中保存了各个配置信息 lib。Tomcat服务器所需要的各个库文件 logs。保存服务器的系统日志
webapps。Web应用程序存放的目录,Web项目保存到此目录中即可发布 work。临时文件夹,生成所有的临时文件(*.java、*.class)
3.2 MVC开发模式
MVC一种设计模式,它强制的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:M(数据模型)、V(用户界面)、C(控制器)。它们各自处理自己的任务,其工作流程如下图:
图3.2 工作流程图
现在我们总结MVC的处理过程,首先控制器接收用户的请求,并决定应该调用哪个模型来进行处理,然后模型用业务逻辑来处理用户的请求并返回数据,最后控制器用相应的视图格式化模型返回的数据,并通过表示层呈现给用户。
使用MVC模式,可以提高软件的健壮性,代码的重用率。
第四章
系统的实现及功能流程
第四章
系统的实现及功能流程
在前面的内容中,阐述了本购物网站系统的开发平台、所用到的技术和设计等,在本章将具体介绍系统的实现过程,所实现的功能。
本章主要介绍本系统的用户,包括普通游客、普通会员和管理员的功能实现流程、主要代码和界面,以及数据库的设计与实现。
4.1 游客功能
普通游客进入本系统,只能浏览网站。可以浏览商品信息、搜索商品和查看公告,还可以注册成为本系统的会员。但是不能登录本系统,也不不购买商品。
游客功能流程图
图4.1 游客功能图 进入本系统可以看到如下图首页。
图4.2 系统图
点击用户注册之后,进行注册界面,在里面如实填写个人信息,然后提交。如果提示信息不正确,则要重新填写信;如果提示注册成功,则成为本系统的会员,从此拥有会员的功能,关于会员的功能将在下节介绍。
注册界面如下
图4.3 注册界面图
4.2普通会员功能
当游客注册成功,成为本系统的会员之后,在游客的浏览商品和搜索商品的基础上又新增加了登录、购物功能,普通会员拥有的功能流程如下:
图4.4 功能流程图
4.2.1 会员登录功能
普通会员进行本系统后,可以输入自己注册时的用户名和密码登录本系统。会员登录界面如下
第四章
系统的实现及功能流程
图4.5 会员登录图
普通会员登录进行控制的主要代码如下
publicvoid doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
Validate vd = new Validate();String name = vd.getUnicode(request.getParameter(“name”));String pwd = vd.getUnicode(request.getParameter(“pwd”));UserLoginBean lb = new UserLoginBean();int flag = lb.login(name, pwd);ArrayList al = lb.getArrayLst();HttpSession session = request.getSession();session.setAttribute(“login”, al);if(flag == 2 || flag == 3){ } RequestDispatcher request.setAttribute(“error”, “1”);rd=request.getRequestDispatcher(“/qiantai/index.jsp”);rd.forward(request,response);} 4.2.2 会员信息管理
作为会员,最基本的权限功能是可以对自己的信息进行管理,如修改个人信息。登录之后点击用户中心,进入用户信息管理页面,则可以重新填写自己的新信息,以便购物。
图4.6 信息管理页面图 对会员修改信息进行功能实现的主要代码如下
publicvoid doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
Validate vd = new Validate();String id = vd.getUnicode(request.getParameter(“id”));String pwd = vd.getUnicode(request.getParameter(“pwd”));String age = vd.getUnicode(request.getParameter(“age”));String noid = vd.getUnicode(request.getParameter(“noid”));String address = vd.getUnicode(request.getParameter(“address”));String phone = vd.getUnicode(request.getParameter(“phone”));String email = vd.getUnicode(request.getParameter(“email”));String code = vd.getUnicode(request.getParameter(“code”));String sql = “update users set pwd='”+pwd+“',age='”+age+“',card='”+noid+“',address='”+address+“',phone='”+phone+“',email='”+email+“',code='”+code+“' where id='”+id+“'”;
InsertUpdateDelBean ib = new InsertUpdateDelBean();ib.insertANDupdateANDdel(sql);SelectBean sb = new SelectBean();String sql1 = “select * from users where id='”+id+“'”;String args[] ={“id”,“name”,“pwd”,“realname”,“sex”,“age”,“card”,“address”,“phone”,“email”,“code”,“type”};
ArrayList al = sb.select(sql1, args);request.setAttribute(“user”, al);RequestDispatcher rd=request.getRequestDispatcher(“/qiantai/modifyuser.jsp”);rd.forward(request,response);
第四章
系统的实现及功能流程
} 4.2.3会员购物功能
会员成功登录系统,并且确认个人信息之后,可以找到自己所需要的商品,查看商品的信息,包括生产日期、价格、对商品的介绍等等。然后加入购物车中,并且修改自己所需要购买的数量。系统会自己计算出每种商品的价格及本次订单所的消费总额。进入购物车后的界面如下
图4.7 购物车界面图 实现购物功能的主要代码如下
publicvoid doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { String bookId = request.getParameter(“bookId”);//获取books_id String m = request.getParameter(“i”);String num = request.getParameter(“num”+m);//获取购物车修改数量 String str = “";//mapping跳转时的值
String sql = ”select * from books where id=“+bookId;//sql语句 String[] args = {”id“,”name“,”author“,”publishing“,”number“,”price“,”storage“,”brief“,”type“,”tate“,”sums“,”imgpath“};
String del = request.getParameter(”del“);//获取删除商品的记号
String remove = request.getParameter(”remove“);//获取清空购物车的记号 HttpSession session = request.getSession();ArrayList login =(ArrayList)session.getAttribute(”login“);//获取用户信息 SelectBean ib = new SelectBean();ArrayList al = ib.select(sql, args);//查询图书信息 int sum = 1;//购买一种图书的数量
if(login == null || login.size()== 0){ str = ”/servlet/SessLoginServlet“;//用户信息不存在跳到首页 }else{ str = ”/qiantai/shopping.jsp“;//跳到购物车页面
ArrayList shopping =(ArrayList)session.getAttribute(”shopping“);//获取购物车信息
if(bookId!=null&&!bookId.equals(”“)){
ArrayList altem =(ArrayList)al.get(0);if(shopping == null || shopping.size()== 0){//购物车为空时
ArrayList alShop = newArrayList();
} alShop.add(altem.get(0));alShop.add(altem.get(1));alShop.add(altem.get(5));alShop.add(”“+sum);shopping = newArrayList();shopping.add(alShop);boolean bool = true;for(int i = 0;i < shopping.size();i++){//查找是否有相同的商品,有
} if(bool){//没有的话,加入一个新商品
ArrayList alShop = newArrayList();
} alShop.add(altem.get(0));alShop.add(altem.get(1));alShop.add(altem.get(5));alShop.add(”“+sum);shopping.add(alShop);ArrayList alShop =(ArrayList)shopping.get(i);if(alShop.get(0).equals(bookId)){
}
sum = Integer.parseInt(alShop.get(3).toString())+sum;if(num!= null&&!num.equals(”“)){ }
alShop.set(3,”“+sum);bool = false;break;
sum = Integer.parseInt(num);}else{ 的话数目加1
} if(del!= null&&!del.equals(”“)&& shopping!=null&& shopping.size()!= shopping.remove(Integer.parseInt(del));//删除商品 } session.setAttribute(”shopping“,shopping);if(remove!= null&&!remove.equals(”“)&& 0){ session.getAttribute(”shopping“)!= null&&!session.getAttribute(”shopping“).equals(”“)){
} session.removeAttribute(”shopping“);//清空购物车 }
第四章
系统的实现及功能流程
} RequestDispatcher rd=request.getRequestDispatcher(str);rd.forward(request,response);4.3 管理员的管理功能
每个系统除了有供游客和普通会员使用的前台,还有应该有供管理员对系统进行管理的后台管理系统。在此后台管理系统中,首先是管理员登录后台管理系统,然后可以对注册会员进行管理,如删除不合法用户;可以对商品类别进行管理,如删除不需要的商品类别和新添商品类别等。并且可以点击本系统的logo进入系统的首页。
管理员功能流程图如下:
首先管理员登录进入后台管理系统,登录界面如下
图4.8 管理员登录图 后台系统登录主要代码如下
publicvoid doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
} Validate vd = new Validate();String name = vd.getUnicode(request.getParameter(”name“));String pwd = vd.getUnicode(request.getParameter(”pwd“));String str = ”“;AdminLoginBean lb = new AdminLoginBean();int flag = lb.login(name, pwd);ArrayList al = lb.getArrayLst();HttpSession session = request.getSession();session.setAttribute(”adminlogin“, al);if(flag == 2 || flag == 3){
} if(flag == 1){ } RequestDispatcher rd=request.getRequestDispatcher(str);str = ”/admin/booklist.jsp“;str = ”/admin/index.jsp“;request.setAttribute(”error“, ”1“);rd.forward(request,response);4.3.1会员管理
管理员进入后台管理系统台可以对已注册的普通会员进行管理,如查询所有的会员信息和删除普通会员,从而达到了解会员信息,并且删除不合法会员的效果。
会员管理界面如下
图4.9 会员管理界面图 对会员进行管理的主要代码如下:
publicvoid doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
String id = request.getParameter(”id“);SelectBean sb = new SelectBean();String sql = ”select * from users where id='“+id+”'“;String args[] ={”id“,”name“,”pwd“,”realname“,”sex“,”age“,”card“,”address“,”phone“,”email“,”code“,”type“};
ArrayList al = sb.select(sql, args);request.setAttribute(”user“, al);RequestDispatcher
第四章
系统的实现及功能流程
rd=request.getRequestDispatcher(”/admin/showuser.jsp“);rd.forward(request,response);}
4.3.2订单管理
管理员登录后台管理系统后,可以对订单进行管理,从而更好的掌握商品的销售情况,订单管理的界面如下
图4.10 订单管理图 订单管理所涉及的主要代码如下
publicvoid doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
Validate vd = new Validate();String userid = vd.getUnicode(request.getParameter(”userid“));String bookname = vd.getUnicode(request.getParameter(”bookname“));String orderda = vd.getUnicode(request.getParameter(”orderda“));String orderxiao = vd.getUnicode(request.getParameter(”orderxiao“));String sql = ”select a.id as userid,b.id as bookid,c.id as orderid,realname,phone,address,b.name as bookname,booksum,price,times from users a,books b,orders c where a.id=c.userid and b.id=c.bookid “;String[] args = {”userid“,”bookid“,”orderid“,”realname“,”phone“,”address“,”bookname“,”booksum“,”price“,”times“};
if(userid!= null&&!userid.equals(”“)){ } if(bookname!= null&&!bookname.equals(”“)){ } if(orderda!= null&&!orderda.equals(”“)){ sql += ”and a.id='“+userid+”'“;sql += ”and b.name like '%“+bookname+”%'“;
} } sql += ”and c.booksum>'“+orderda+”'“;if(orderxiao!= null&&!orderxiao.equals(”“)){ } SelectBean sb = new SelectBean();ArrayList al = sb.select(sql, args);request.setAttribute(”order“, al);RequestDispatcher rd=request.getRequestDispatcher(”/admin/order.jsp“);sql += ”and c.booksum<'“+orderxiao+”'“;rd.forward(request,response);4.3.3商品类别管理
对商城里的商品分类管理有利于提高效率,避免浪费,是很重要的。对已有的商品类别可以进行修改、删除,也可以新增商品类别。
新添加商品类别的界面和主要代码如下:
图4.11 添加商品类别图
publicvoid doGet(HttpServletRequest request, HttpServletResponse response)
} throws ServletException, IOException { Validate vd = new Validate();String name = vd.getUnicode(request.getParameter(”name“));String sql =”insert into types values('“+name+”')“;InsertUpdateDelBean ib = newInsertUpdateDelBean();int flag = ib.insertANDupdateANDdel(sql);String str = ”“;if(flag ==-1){
} RequestDispatcher rd=request.getRequestDispatcher(str);rd.forward(request,response);str = ”/admin/addtype.jsp“;request.setAttribute(”error“, ”1“);str = ”/admin/typelist.jsp“;request.setAttribute(”ok“, ”1“);}else{ 对已有商品类别进行修改界面和主要代码如下:
第四章
系统的实现及功能流程
图4.12 类别修改界面图
publicvoid doGet(HttpServletRequest request, HttpServletResponse response)
RequestDispatcher rd=request.getRequestDispatcher(”/admin/updatetype.jsp“);rd.forward(request,response);}
throws ServletException, IOException { Validate vd = new Validate();String id = vd.getUnicode(request.getParameter(”id“));String name = vd.getUnicode(request.getParameter(”name“));if(name!= null&&!name.equals(”“)){
} SelectBean sb = new SelectBean();String sql2 = ”select * from types where id='“+id+”'“;String[] args2 = {”id“,”name“};ArrayList al2 = sb.select(sql2, args2);request.setAttribute(”bookinf“, al2);String sql =”update types set name='“+name+”' where id='“+id+”'“;InsertUpdateDelBean ib = new InsertUpdateDelBean();ib.insertANDupdateANDdel(sql);当该商品类别里没有商品了的时候可以删除该商品类别,删除商品类别界面和主要代码如下
图4.13 删除商品类别图
if(typeid!= null&&!typeid.equals(”“)){
str = ”/admin/typelist.jsp“;sql = ”delete from types where id='“+typeid+”'“;int flag = ib.insertANDupdateANDdel(sql);if(flag ==-1){ } request.setAttribute(”error“, ”1“);
4.3.4 商品管理
对已有的商品可以进行修改、删除,也可以新增商品。商品的信息包括商品名称、生产时间、商品介绍等
新增商品的界面和主要代码如下
图4.14 新增商品界面图
publicvoid doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
Validate vd = new Validate();String name = ”“;String author = ”“;String publishing = ”“;String number = ”“;String price = ”“;String storage = ”“;String brief = ”“;String type = ”“;
第四章
系统的实现及功能流程
String tate = ”“;String path = ”“;String str = ”“;
SmartUpload mySmartUpload = new SmartUpload();//init mySmartUpload.initialize(config,request,response);try {
mySmartUpload.upload();name = mySmartUpload.getRequest().getParameter(”name“).trim();author = mySmartUpload.getRequest().getParameter(”author“).trim();publishing = number = mySmartUpload.getRequest().getParameter(”number“).trim();price = mySmartUpload.getRequest().getParameter(”price“).trim();storage = mySmartUpload.getRequest().getParameter(”storage“).trim();brief = mySmartUpload.getRequest().getParameter(”brief“).trim();type = mySmartUpload.getRequest().getParameter(”type“).trim();tate = mySmartUpload.getRequest().getParameter(”tate“).trim();
int count = 0;SmartFile file = mySmartUpload.getFiles().getFile(0);String fileExt = file.getFileExt();path=”/bookimg“;
InsertUpdateDelBean ib = new InsertUpdateDelBean();mySmartUpload.getRequest().getParameter(”publishing“).trim();String sql = ”insert into books([name], [author], [publishing], [number], “ [price], [storage], [brief], [type], [tate], [imgpath])” + values('“+name+”','“+author+”','“+publishing+”','“+number+”','“+price+”','“+storage+”','“+brief+”','“+type+”','“+tate+”','“+path.substring(1)+”/“+file.getFileName()+”')“;
} int flag = ib.insertANDupdateANDdel(sql);if(flag ==-1){
} count = mySmartUpload.save(path);// TODO自动生成 catch 块 e.printStackTrace();str = ”/admin/addbook.jsp“;request.setAttribute(”error“, ”1“);str = ”/admin/booklist.jsp“;request.setAttribute(”ok“, ”1“);}else{ } catch(SmartUploadException e){
} RequestDispatcher rd=request.getRequestDispatcher(str);rd.forward(request,response);publicvoid doPost(HttpServletRequest request, HttpServletResponse response)
} throws ServletException, IOException { doGet(request,response);修改已有商品的界面和主要代码如下
图4.15 修改已有商品界面图
publicvoid doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { Validate vd = new Validate();String id = vd.getUnicode(request.getParameter(”id“));String name = vd.getUnicode(request.getParameter(”name“));String author = vd.getUnicode(request.getParameter(”author“));String publishing = vd.getUnicode(request.getParameter(”publishing“));String number = vd.getUnicode(request.getParameter(”number“));String price = vd.getUnicode(request.getParameter(”price“));String storage = vd.getUnicode(request.getParameter(”storage“));
第四章
系统的实现及功能流程
String brief = vd.getUnicode(request.getParameter(”brief“));String type = vd.getUnicode(request.getParameter(”type“));String sql =”update books set name='“+name+”',author='“+author+”',publishing='“+publishing+”',number='“+number+”',price='“+price+”',storage='“+storage+”',brief='“+brief+”',type='“+type+”' where id='“+id+”'“;
InsertUpdateDelBean ib = new InsertUpdateDelBean();ib.insertANDupdateANDdel(sql);SelectBean sb = new SelectBean();String sql2 = ”select * from books where id='“+id+”'“;String[] args2 = {”id“,”name“,”author“,”publishing“,”number“,”price“,”storage“,”brief“,”type“,”tate“,”sums“,”imgpath“};
RequestDispatcher rd=request.getRequestDispatcher(”/admin/updatebook.jsp“);rd.forward(request,response);}
ArrayList al2 = sb.select(sql2, args2);request.setAttribute(”bookinf“, al2);删除商品的界面和主要代码如下
图4.16 删除商品界面图
if(bookid!= null&&!bookid.equals(”“)){
} str = ”/admin/booklist.jsp“;sql = ”delete from books where id='“+bookid+”'“;ib.insertANDupdateANDdel(sql);4.3.5库销管理
及时了解库存和销售情况,能够使我们更好的知道商品现状,也就能够更好的制作销售和库存计划。库销管理的界面和主要代码如下:
图4.17 库销管理界面图
publicvoid doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { Validate vd = new Validate();String kuda = vd.getUnicode(request.getParameter(”kuda“));String kuxiao = vd.getUnicode(request.getParameter(”kuxiao“));String souda = vd.getUnicode(request.getParameter(”souda“));String souxiao = vd.getUnicode(request.getParameter(”souxiao“));String sql = ”select * from books “;String[] args = {”id“,”name“,”author“,”publishing“,”number“,”price“,”storage“,”brief“,”type“,”tate“,”sums“,”imgpath“};
} if(kuda!= null&&!kuda.equals(”“)){ } if(kuxiao!= null&&!kuxiao.equals(”“)){ } if(souda!= null&&!souda.equals(”“)){ } if(souxiao!= null&&!souxiao.equals(”“)){ } SelectBean sb = new SelectBean();ArrayList al = sb.select(sql, args);request.setAttribute(”books“, al);RequestDispatcher rd=request.getRequestDispatcher(”/admin/kuxiao.jsp“);sql += ”where sums<“+souxiao;sql += ”where sums>“+souda;sql += ”where storage<“+kuxiao;sql += ”where storage>“+kuda;rd.forward(request,response);4.3.6公告管理功能
在购物网站中显示公告,有利于提高系统的质量。对公告的管理包括添加新的公告,删除和修改已添加的公告。
添加新公告的界面和主要代码如下
第四章
系统的实现及功能流程
图4.18 添加公告界面图
publicvoid doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { Validate vd = new Validate();String name = vd.getUnicode(request.getParameter(”name“));String content = vd.getUnicode(request.getParameter(”content“));String sql =”insert into affiche(name,content)InsertUpdateDelBean ib = new InsertUpdateDelBean();int flag = ib.insertANDupdateANDdel(sql);String str = “";if(flag ==-1){
} RequestDispatcher rd=request.getRequestDispatcher(str);rd.forward(request,response);values('”+name+“','”+content+“')”;str = “/admin/addaffiche.jsp”;request.setAttribute(“error”, “1”);str = “/admin/affiche.jsp”;request.setAttribute(“ok”, “1”);}else{
}
修改已有公告的界面和主要代码如下
图4.19 修改公告界面图
publicvoid doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { Validate vd = new Validate();String id = vd.getUnicode(request.getParameter(“id”));String name = vd.getUnicode(request.getParameter(“content”));if(name!= null&&!name.equals(“")){
} SelectBean sb = new SelectBean();String sql2 = ”select * from affiche where id='“+id+”'“;String[] args2 = {”id“,”name“,”content“,”times“};ArrayList al2 = sb.select(sql2, args2);request.setAttribute(”affiches“, al2);String sql =”update affiche set content='“+name+”' where id='“+id+”'“;InsertUpdateDelBean ib = new InsertUpdateDelBean();ib.insertANDupdateANDdel(sql);
第四章
系统的实现及功能流程
RequestDispatcher rd=request.getRequestDispatcher(”/admin/affiche_rework.jsp“);rd.forward(request,response);} 删除已有公告的界面和主要代码如下
图4.20 删除公告界面图
if(afficheid!= null&&!afficheid.equals(”“)){
} str = ”/admin/affiche.jsp“;sql = ”delete from affiche where id='“+afficheid+”'";ib.insertANDupdateANDdel(sql);4.4 数据库的设计与实现
数据库设计要遵循一些规则,一个好的数据库满足一些严格的约束和要求。尽量分离各实体对应的表,一个实体对应一个表,搞清楚该实体有哪些属性,对应有些什么字段,以及各实体之间有何种联系。实体、属性与联系是进行概念设计时要考虑的三个元素,也是一个好的数据库设计的核心。
本系统所数据库如下
1.用于存储和管理管理员信息的Admin表
表4.1 admin表
2.用于存储和管理公告信息的Affiche表
表4.2 affiche表
3.用于存储和管理商品信息的Books表
表4.3 books表
4.用于管理和存储订单信息Orders表
表4.4 orders表
5.用于存储和管理热销商品信息的Paihang表
表4.5 paihang表
6.用于存储和管理商品类别信息的Type表
表4.6 type表
7.用于存储和管理普通会员信息的Users 表
表4.7 user表
第四章
系统的实现及功能流程
第五章
系统的使用
5.1 系统环境要求
硬件环境:硬盘:10G+,内存:512M+。
软件环境:windowsXp/2000+;jdk1.5+;Tomcat5.X+;Sql2000+;IE6.0+。
5.2 系统安装
1.将整个项目发布到Tomcat中,2.将wlbm数据库附加到sql2008中.5.3 系统运行
1.启动Tomcat和sql2008服务
2.访问首页:http://localhost:8080/wlbm/qiantai/index.jsp 访问后台管理页面:http://localhost:8080/wlbm/manage/index.jsp
第六章
结束
第六章
结束
大学四年转瞬即逝,告别了初入校园青涩稚嫩的我们,四年的学习生活让我们懂得什么是成长。在这段时间里,离不开老师和同学们的帮助和指导,为我平凡的生活增添了绚丽的色彩。
感谢雷金娥老师耐心的细心指导。本次系统的开发实现让我品尝到了开发的乐趣,也找出了一些自己没有掌握的专业知识,并且得到了雷老师的耐心指导,她不会指责我们的每一个问题,相反总是毫无保留、详细而耐心的讲解每一个细节。严谨认真负责是雷老师工作的一贯风格,感谢老师的严格要求和耐心指导,让我们培养了良好的习惯,雷老师的精神在以后工作当中也将会一直影响着我。感谢老师的付出。
同时感谢和我四年朝夕相处的室友与同学们,感谢你们一直的关心和支持,在我高兴的时刻陪伴高兴,在失落时给予我支持。感谢我的校园、我的老师们,我的大学生活,因为有你们,我的生活一直很精彩。
参考文献
[1] 清宏计算机工作室.JSP编程技巧[M].机械工业出版社,2000.1 [2] BruceEckel.JSP编程思想[M].机械工业出版社,2003年10月 [3] 孙一林,彭波.JSP数据库编程实例[M].清华大学出版社,2002年8月 [4] 武延军,黄飞跃.精通JSP编程技术[M].人民邮电出版社,2001.8 [5] Karl Moss.Java Servlet开发人员指南[M].清华大学出版社,2002 [6] Steven Holzner.Java技术内幕[M].机械工业出版社,2002.1 [7] Steven Holzner.Java技术内幕[M].北京:机械工业出版社,2002.1 [8] Phil Hanna.JSP技术大全[M].北京:机械工业出版社,2002.3 [9] Karl Moss.Java Servlet开发人员指南[M].北京:清华大学出版社,2002 [10]刘洁,李颖,刘琳,刘显伟.基于JSP和JavaBean技术的网上书店设计与实现[J].现代情报,2005 [11]马新.基于JSP的网上书店的设计与实现[J].白城师范学院学报,2010 [12]郭小雪,房至一.基于JSP/Servlet的三层式网上书店的实现[J].微计算机信息,2006 [13]梁瑾,陈婷.基于JSP小型网上书店的设计[J].电脑学习,2008 [14]赵森.中文SQL Server 2005 程序设计教程[M].冶金工业出版社, 2006.7
第三篇:网上购物系统论文
目录
第一章 系统设计概述 1 1.1引言 1 1.1.1系统开发的背景 1 1.1.2系统开发的目的与意义 1 第二章 可行性研究与需求分析 3 2.1可行性研究 3 2.1.1技术可行性 3 2.1.2经济可行性 3 2.1.3运行可行性 3 2.1.4法律可行性 3 2.2需求分析 3 2.2.1系统目的 3 2.2.2数据流图 4 2.2.3数据字典 6 2.2.4功能需求 8 2.2.5性能要求 8 第三章 项目设计的基本原理和采用的主要方法与技术 9 3.1项目设计的基本原理 9 3.2项目设计采用的主要方法与技术 9 第四章 总体设计 12 4.1总体设计原理 12 4.2运行环境 12 4.3系统流程图 12 4.4系统功能模块图 14 4.5系统安全与维护 15 第五章 详细设计 17 5.1程序流程图 17 5.2数据库设计 19 5.2.1概念结构设计 20 5.2.2逻辑结构设计 23 第六章 编码实现与测试用例设计 28 6.1登录界面 28 6.2管理界面 30 6.3网站主界面 33 6.4订单查询界面 34 第七章 测试用例设计、测试与运行记录 37 7.1测试目的 37 7.2 测试目标 37 7.3测试方法 37 7.4测试项目 37 7.5测试界面 37 7.5.1管理员登录测试 37 7.5.2管理商品信息测试 38 7.5.3管理订单信息测试 39 7.5.4用户管理测试 40 7.5.5管理员密码修改测试 40 7.5.6用户登录测试 41 7.5.7用户个人管理测试 42 7.5.8添加商品信息测试 42 总结 44 参考文献 47 本系统必须具备以下几个功能如下:
1.顾客登录及身份验证功能:接受游客的基本信息。
2.顾客在线购物功能:顾客浏览商品信息,进行选购,提交订单后进行交易。3.管理员功能:管理员对整个系统进行管理。
4.购物车功能:在顾客提交订单之前,一直存放顾客选购得商品
第四篇:网上购物管理系统
课程实践报告
课程名称:软件工程实践II 项目名称:网上购物系统 专业班级:
姓
名: 学
号:
指导教师:
成绩:______ 报告日期:2014年12月9日
网上购物管理系统
摘要
随着计算机技术在各行各业日益广泛和深入的应用,网络的概念早已深入人心。网络在各行各页的发展战略占据了重要的位置,成为了商家不可分割的一部分。网络已经成为了商家展示自己的另一个舞台。商家建立网站,通过网站可以实现,浏览商品,网上购物,结账
本系统实现了网上购物商城的基本功能和购物流程。主要模块有:商品查询、商品管理、商品显示、购物车、订单管理、用户管理等功能。其开发主要包括:数据库的建立,前台Web页面设计,后台管理。本系统采用MySql数据库和Tomcat服务器实现,并且使用HTML、JSP等技术来编辑网页,并运用Hibernate技术把数据库和动态网页相关联。
关键字
关键词:网上商场,购物车,结账,Tomcat,Sevlet,JSP,MySql数据库
目录
摘要..............................................................................................................................................2 关键字..........................................................................................................................................2 1需求分析.......................................................................................................................................4 1.1背景.........................................................................................................................................4 1.2可行性分析.............................................................................................................................4 1.3对性能的规定.........................................................................................................................4 1.3.1时间特性要求..................................................................................................................4 1.3.2灵活性..............................................................................................................................5 1.4其他专门要求.........................................................................................................................5 1.5运行环境的规定.....................................................................................................................5 1.6设备.........................................................................................................................................5 1.7支持软件.................................................................................................................................5 2功能分析.......................................................................................................................................6 2.1功能分析的目的.....................................................................................................................6 2.2业务描述.................................................................................................................................6 2.3用例图.....................................................................................................................................8 2.4 状态图..................................................................................................................................10 3模块设计.....................................................................................................................................10 3.1系统功能模块.......................................................................................................................10 3.2模块分析...............................................................................................................................11 4数据库分析与设计.....................................................................................................................18 4.1数据库分析...........................................................................................................................18 4.2系统整体ER图的设计........................................................................................................19 4.3数据库设计...........................................................................................................................20 5编码,实现及测试.....................................................................................................................22 5.1各功能源代码.......................................................................................................................22 6 结论............................................................................................................................................29 6.1系统优点...............................................................................................................................29 6.2系统缺点...............................................................................................................................29 6.3未来发展...............................................................................................................................29 7实验小结.....................................................................................................................................30 7.1 孙佳伟实验小结..................................................................................错误!未定义书签。7.2 喻道斌实验小结..................................................................................错误!未定义书签。7.3 金龙实验小结......................................................................................错误!未定义书签。1需求分析
1.1背景
在发达国家,电子商务的发展非常迅速,通过Internet进行交易己成为一种潮流。基于电子商务所连带出的商品交易方案、电子结账方案和信息安全方案等,已逐步成为国际信息技术市场竞争的焦点。随着电子商务的日益发展,产生了网上购物、网络广告等新兴信息产业,从侧面反应了电子商务正在对社会和经济产生着深刻的影响。
在我国,网上购物从无到有也不过短短几年时间。但是就在这几年时间,网络购物已经深入千家万户,普通的购物已经不能满足人们的消费。网上购物以其诸多优势,获得人们的青睐。它以其方便,快捷,高效,高选择性等优点,迅速得到了广大网友的喜爱与青睐,现在的网上购物已经非常普及。本系统设计就是为了满足广大网友的这些需求,改变传统的交易模式,通过互联网完成查看商品,购买商品等完成网上交易。方便消费者,同时对商家的商品信息进行管理,便于商家的商品数据分析。截止2013年1月中国有网上购物的用户将近5000万人,这足以证明网上购物具有良好的群众基础,网上购物方式日趋被大家所接受。因此我们小组致力于做一个基于B/S架构的网上购物管理系统,使广大用户可以享受网上购物的种种优势。
1.2可行性分析
随着计算机的普及,Internet的发展,网购已经成为人们生活消费中一大部分。一个网上购物系统可以为消费者提供软件条件,使其可以更加快捷,方便,实惠的选择商品,而商家也可以更好的管理商品,节约成本,两全其美。所以构建一个网上购物商城在运行上是完全可行的。
此次开发使用JSP作为开发语言,采用Servlet技术,Tomcat7.0座位Web服务器,采用MySql作为数据库,这几种技术及工具的方便,快捷,免费大大的缩短了开发的时间,减少了开发的成本。并且使得开发更方便安全,更利于后期的维护。网上购物服务系统给人们带来了方便,成为一种全新的商务模式。因此,不用出门就可以在家购物的新时尚已经到来,构建一个网上购物服务系统在经济上是完全可行的。
综上所述:开发本系统是完全可行的。
1.3对性能的规定 1.3.1时间特性要求
对于商品基本信息,订单信息管理的增加删除修改必须是实时响应,与客户端的交互响应时间不超过5s 1.3.2灵活性
操作方式的变化,可以直接从UI或从数据库输入行,对初始行进行增加,删除,删除等操作。
1.4其他专门要求
文字描述必须准确,精炼,通俗易懂。安全性要得以保障,可移植性要高,为了适应不同系统,程序吞吐量必须要大,否则不能动态适应购物网站的需要。
1.5运行环境的规定 1.6设备
开发环境: 操作系统:windows 7 硬件环境:
客户终端:pc机; 服务器:Tomcat 编译环境:Jdk 1.6 1.7支持软件
操作系统:** 开发软件:MyEclipse 数据库: Mysql
2功能分析
2.1功能分析的目的
从用户需求出发,对于网上购物系统做细致全面的功能分析,准确地定义网上购物系统的目标,确定系统必须做什么,再用UML建模,并以Rational Rose工具画出功能模型,以此形式分析确定此网上购物系统的功能。
2.2业务描述
用户进入网站后,可以根据价格高低确定是否进行筛选,不筛选则进入所有的商品浏览界面,筛选则得出筛选后的浏览界面。接着可以点击商品加入购物车,可以自己选择加入的数量。加入购物车以后可以查看购物车,在购物策划模块中可以选择添加或删除购物车商品,接着用户可以自行判断是否继续购物,如果继续购物则返回首页,不购物则进行结账。结账之后可以查看订单界面,这里有详细的订单信息。,否则注销退出。
下图为网上购物系统的业务流程图。
开始用户进入网站按照价格高低进行筛选筛选后的浏览界面浏览商品加入购物车查看购物车添加或删除购物车商品继续购物结账查看订单订单界面注销退出结束
图 1-1 系统业务流程图
2.3用例图
用例图
浏览商品用例,可以实现浏览商品
搜索商品用例,可以根据商品的价格进行筛选查询商品。 管理商品详情用例,可以实现对商品中所有信息的浏览。
加入购物车用例,是用户才有的功能,能在浏览商品后把商品加入购物车 管理购物车用例,在加入购物车后扩展的功能,对于购物车内的商品可以增加删除 购买商品用例,用户可以对于商品显示页面的商品进行购买 管理自身订单,用户可以对自身的订单进行搜索,删除功能。 清空购物车用例,用户对购物车中所有商品进行清空
浏览曾经的商品(历史记录)用例,用户可以在这里浏览曾经使用的商品 结账模块用例,用户可以在这里进行结账功能。
<
图1-2主用例图
删除商品用户浏览购物车清空购物车继续购物结账
图 1-3 购物车用例图
结账用户事务管理查看订单信息
图 1-4 结账用例图
2.4 状态图
对于系统进行状态细节分析如下 a)b)c)d)e)f)g)h)用户首页输入网址进入首页界面 用户浏览商品进入商品展示界面
浏览完之后可选择喜欢的商品进入购物车界面 在购物车中可以添加或删除商品进入更改商品界面
更改接受后确定是否继续购物,若继续择返回商品展示界面 若不继续购物则进入结账界面
在结账界面中进行查看订单,进入订单确认状态
订单确认无误后,则系统提交,之后用户可以注销退出。
按价格筛选用户输入网址首页浏览商品商品展示界面加入购物车购物车界面结账界面发出结账请求查看订单注销继续购物确定是否购物添加或删除商品订单确认状态退出
3模块设计
3.1系统功能模块
功能模块图:
系统总体分为前台展示模块,购物车模块,结账模块。
前台展示模块包括:浏览商品模块,筛选商品模块,商品详情模块,历史纪录模块。购物车模块包括:购物车展示模块,删除商品模块,清空购物车模块,继续购物模块。
结账模块包括:订单确认模块,提交订单模块,事务处理模块。
网上购物管理系统前台展示模块购物车模块结账模块浏览商品模块筛选商品模块商品详情模块历史纪录模块购物车展示模块删除商品模块清空购物车模块继续购物模块订单确认模块提交订单模块事务处理模块
图3-1 功能模块图
3.2模块分析
1:商品展示模块
这是网站的主页面,用户不登陆也可以进入该页面,登陆成功后,页面会显示用户的信息。此页面主要是显示一些主要商品的图片、名称、价格等信息,用户可以输入商品名称,种类等进行搜索,也可以直接点击商品查看商品细节信息。
图 3-2 商品展示模块
在主界面中可以根据价格的高低排序
2:商品详情模块
当你点击一个商品的链接,可以进入商品的详情页面,这里会相识一个商品的所有具体信息,可以看到书名,作者,价格,出版日期
图3-3 商品详情模块
3:购物车模块
用户喜欢的商品可以选择放进购物车里,可以在购物车里产看用户选择的商品的名称价格以及购物车商品的总价,用户可以对购物车中的商品进行操作,修改购买数量,删除商品,清空购物车,结账等。
图3-3 购物车前台模块
图3-4购物车展示界面
清空购物车
删除购物车中的某教材
图3-5清空购物车界面
图3-6删除购物车某教材
4:回顾商品模块
当您想看曾经浏览过的商品时,可以点击查看浏览的历史记录,根据最近浏览的显示记录排序
5:结账模块
图3-7 回顾商品模块
在购物车进行结算以后,会跳转至结账界面,系统会显示当前的信用卡姓名,信用卡帐号,当您提交时就会结算成功,并且通过事务管理防止重复提交
图3-8 结账模块界面
余额不足时提示
图3-8 余额不足界面
6:订单页面模块
在购物车进行结算以后,就会生成订单,订单会显示订单号、收货人、地址、电话等信息。点击查看详情就可以进入订单详情页面
图 3-9 订单页面模块
4数据库分析与设计
4.1数据库分析
对于以上模块的划分以及分析我们建立网上购物管理系统数据库,建了5个表,分别是帐户表(account),书籍信息表(mybooks),订单表(trade),订单项目表(tradeItem),用户信息管理(usersInfo),各表的实现的功能在上述模块设计中已经指出,此刻不再赘述。
帐户表(account)中的各列分别为:帐户编号(accounted)主码,帐户余额balance 书籍信息表(mybooks)中的各列分别为:书籍(Id)主码,作者(Author),标题(Title),价格(Price),出版日期(Publishingdate),车辆类型(Salesamount),车辆规格(Storenumber),单价预算(Remark)订单表(trade)中的各列分别为:订单编号(tradeid)主码,用户编号(userid)外码,订单日期(tradetime)订单项目表(tradeItem)中的各列分别为:订单编号(itemid)主码,书籍编号(bookid)外码,(quantity),使用年限(tradeid)用户信息管理(usersInfo)中的各列分别为:用户编号(userid),用户名(username),帐户编号(accountid)
4.2系统整体ER图的设计
用户编号订单编号帐户编号帐户余额订单表订单日期帐户表用户名用户编号帐户编号生成拥有用户信息管理拥有购买订单项目表书籍信息表订单编号书籍价格作者出版日期标题书籍编号使用年限
图4-1 系统整体ER图设计
4.3数据库设计
帐户表(account)设计
书籍信息表(mybooks)设计
图4-2帐户表(account)设计
订单表(trade)设计
图4-3书籍信息表(mybooks)设计
图 4-4订单表(trade)设计
订单项目表(tradeItem)设计
用户信息表(userinfo)设计
图4-5订单项目表(tradeItem)设计
图4-6 用户信息表(userinfo)设计 5编码,实现及测试
5.1各功能源代码
5.1.1 分页的实现
public List
String sql=null;System.out.println(“ method------------>”+method);if(method.equals(“price”)){ sql=“SELECT id, author, title, price, publishingDate, ” +
} elseif(method.equals(“salesamount”)){
} elseif(method.equals(“publishingdate”)){
} else{
} returngetForList(sql, sql=“SELECT id, author, title, price, publishingDate, ” +
“salesAmount, storeNumber, remark FROM mybooks ” + “WHERE price >= ? AND price <= ?order by price ”+ “LIMIT ?, ?”;sql=“SELECT id, author, title, price, publishingDate, ” +
“salesAmount, storeNumber, remark FROM mybooks ” + “WHERE price >= ? AND price <= ?order by publishingdate ”+ “LIMIT ?, ?”;sql=“SELECT id, author, title, price, publishingDate, ” +
“salesAmount, storeNumber, remark FROM mybooks ” + “WHERE price >= ? AND price <= ?order by salesamount ”+ “LIMIT ?, ?”;
“salesAmount, storeNumber, remark FROM mybooks ” + “WHERE price >= ? AND price <= ?order by price desc ”+ “LIMIT ?, ?”;cb.getMinPrice(),cb.getMaxPrice(),(cb.getPageNo()-1)*pageSize,pageSize);5.1.2:运用ajax技术实现页面的局部刷新
//ajax修改单个商品的数量
//1.获取页面中所有的text,并为其添加onclick事件 $(“:text”).change(function(){
varquantityVal = $.trim(this.value);varreg=/^d+$/g;varquantity=-1;
varflag=false;if(reg.test(quantityVal)){
} if(!flag){ alert('输入的数量不合法');$(this).val($(this).attr(“class”));return;}
var$tr = $(this).parent().parent();vartitle = $.trim($tr.find(“td:first”).text());if(quantity==0){
} varflag = confirm(“确定要修改” + title + “的数量吗?”);if(!flag){ $(this).val($(this).attr(“class”));} //2.请求地址为: bookServlet varurl = “Books”;
//3.请求参数为: method:updateItemQuantity, id:name属性值, varidVal = $.trim(this.name);varargs = {“method”:“updateItemQuantity”, “id”:idVal,//4.在updateItemQuantity方法中, 获取quanity, id, 再获取购物车对象, //5.传回 JSON 数据: bookNumber:xx, totalMoney return;
varflag2=confirm(“确定要删除”+title+“吗?”);if(flag2){ varserializeVal = $(“:hidden”).serialize();varhref=$tr.find(“td:last”).find(“a”).attr(“href”);window.location.href=href+ “&” + serializeVal;;return;} quantity=parseInt(quantityVal);if(quantity>=0)flag=true;
quantity:val, time:new Date()
“quantity”:quantityVal, “time”:newDate()};调用 service 的方法做修改
//6.更新当前页面的bookNumber和totalMoney $.post(url, args, function(data){
varbookNumber = data.bookNumber;vartotalMoney = data.totalMoney;$(“#totalMoney”).text(“总金额: ¥” + totalMoney);$(“#bookNumber”).text(“您的购物车中共有” + bookNumber + “本书”);},“JSON”);});5.1.3:运用ThreadLocal类实现数据库的连接与当前线程绑定,实现结账的事务操作
publicvoiddoFilter(ServletRequest request, ServletResponse response, FilterChain chain)throwsIOException, ServletException {
Connection connection = null;try {
connection = DBUtils.getConnection();
connection.setAutoCommit(false);
ConnectionContext.getInstance().bind(connection);
chain.doFilter(request, response);
connection.commit();e.printStackTrace();try {
}
HttpServletResponseresp =(HttpServletResponse)response;HttpServletRequestreq =(HttpServletRequest)request;resp.sendRedirect(req.getContextPath()+ “/error-1.jsp”);connection.rollback();e1.printStackTrace();} catch(SQLException e1){ } catch(Exception e){
}
}
ConnectionContext.getInstance().remove();DBUtils.Release(connection);
} finally{ 5.1.4:使用过滤器实现页面的编码
publicvoiddoFilter(ServletRequest request, ServletResponse response, FilterChain chain)throwsIOException, ServletException {
} String encoding = request.setCharacterEncoding(encoding);chain.doFilter(request, response);filterConfig.getServletContext().getInitParameter(“encoding”);5.1.5:数据库底层操作,运用泛型技术和反射技术
public class BaseDao
private Class
publicBaseDao(){
} @Override public long insert(String sql, Object...args){
long id=0;Connection conn=ConnectionContext.getInstance().get();try {
PreparedStatement for(inti=0;i
prepareStatement.setObject(i+1, args[i]);clazz = ReflectionUtils.getSuperGenericType(getClass());System.out.println(clazz);
privateQueryRunnerqueryRunner=new QueryRunner();prepareStatement=conn.prepareStatement(sql,java.sql.Statement.RETURN_GENERATED_KEYS);
}
} { } // TODO Auto-generated catch block e.printStackTrace();id=resultSet.getLong(1);} catch(SQLException e){ return id;@Override public void update(String sql, Object...args){
} @Override public T query(String sql, Object...args){
} @SuppressWarnings(“unchecked”)@Override public
Connection conn=ConnectionContext.getInstance().get();try {
} return(V)queryRunner.query(conn, sql, new ScalarHandler(), args);// TODO Auto-generated catch block e.printStackTrace();} catch(SQLException e){ Connection conn=ConnectionContext.getInstance().get();try {
} return null;return(T)queryRunner.query(conn, sql, new BeanHandler
} queryRunner.update(conn, sql, args);// TODO Auto-generated catch block e.printStackTrace();} catch(SQLException e){
} } return null;@Override public void batch(String sql, Object[]...args){
} @Override public List
} Connection conn=ConnectionContext.getInstance().get();try {
} return null;System.out.println(“sql-----------”+sql);returnqueryRunner.query(conn, sql, new BeanListHandler
e.printStackTrace();Connection conn=ConnectionContext.getInstance().get();try {
} queryRunner.batch(conn, sql, args);e.printStackTrace();} catch(SQLException e){ } catch(SQLException e){ 5.1.6:使用session防止表单重复提交
publicvoidcash(HttpServletRequest request, HttpServletResponse response)
HttpSession session=request.getSession();
Thread.sleep(5000);String username=request.getParameter(“username”);String accountId=request.getParameter(“accountId”);StringBuffer errors=validateFormField(username, accountId);if(errors.toString().equals(“")){
errors=validateUser(username, accountId);if(errors.toString().equals(”“)){ throwsServletException, IOException, InterruptedException {
;
}
} errors=validateBookStoreNumber(request);if(errors.toString().equals(”“)){ }
errors=validateBalance(request,accountId);String code=(String)session.getAttribute(”code“);System.out.println(code+”---------“);String codeRe=request.getParameter(”checkCode“);if(!code.equals(codeRe)){ } if(!errors.toString().equals(”“)){ request.setAttribute(”errors“, errors);errors.append(”验证码输入不正确“);request.getRequestDispatcher(”/WEB-INF/pages/cash.jsp“).forward(request,service.cash(BookStoreWebUtils.getShopCart(request),username,accountId)
request.getRequestDispatcher(”/WEB-INF/pages/error.jsp“).forward(reques
} }
} if(valS==null){ request.setAttribute(”username“, username);request.getRequestDispatcher(”/success.jsp“).forward(request, session.removeAttribute(”date“);}
String val=request.getParameter(”date“);
String valS=(String)session.getAttribute(”date“);
if(valS!=null&&valS.equals(val)){ return;response);response);t, response);5.1.7:使用数据库连接池 <?xmlversion=”1.0“encoding=”UTF-8“?>
root
123456
jdbc:mysql:///bookstore
com.mysql.jdbc.Driver
2
5
5
10
20
5
结论
6.1系统优点
系统实现了网上购物商城的基本功能,可以很好的完成网上购物的一系列流程。而且方便快捷,高效。页面也很美观,大方。对整个系统的框架设计合理,大大提升了系统的整体性与耦合性。也方便了后期的进一步开发与维护。
6.2系统缺点
系统缺乏创新性,没有自己过多的新增功能,没有特别突出的特点。可以增加一些功能,来丰富系统,提升系统的实用性。例如增加商品的销量排行榜,方便用户查看畅销商品。增加商品的交易评价,方便用户判断是否购买此商品。
6.3未来发展
这里指为了使本系统更好的适应环境的变化,有必要进行适应性维护。一方面由于计算机技术的飞速发展,原来的系统不能适应新的软硬件,另一方面,应用对象也在不断的发生变化,将导致系统不能适应新的应用环境,因此,有必要对系统进行调整,以保证系统时时都能满足用户要求。
7实验小结
第五篇:网上购物系统系统分析
一、系统流程分析
(1)普通用户分为注册会员用户和非会员用户。进入网站首页,会员用户登录成功后具有查看商品信息并订购商品、查看订购信息、查看公告信息、修改个人信息等权限;非会员用户不用登录,只能查看商品信息、公告信息,不能订购商品.只有注册成为会员用户并成功登录后。方可订购商品。
(2)部门管理员只可以对本部门销售的商品的分类、商品品牌和商品信息进行管理,也可对自己的个人信息进行管理维护。
(3)总管理员可以对商城销售的商品大类、各部门的管理员、公告信息和客户订单进行管理.并可以修改个人信息和密码。
图1-1 系统流程示意图
二、系统数据库设计
本系统客观存在的实体有:管理员(gly)、注册会员用户user)、商品种类(spzl)、商品子类(splx)、商品品牌(ppxx)、商品(sp)、商城公告(board)。共7个实体,图2-1 网上购物全局E-R图
三、逻辑结构设计
管理员:包括管理员编号、注册名、密码、真实姓名、地址、电话、E-mail、其他。当管理员编号为“0000”时,代表系统总管理员,其他编号为对应的部门管理员。注册会员用户信息:包括用户ID、姓名、密码、性别、地址、手 机号、电话、E—mail。
商品种类:包括商品种类编号,商品种类名称。每一个商品种类可以有多个商品子类。商品子类:包括子类编号、子类名称、指标名称I、指标名称
2、指标名称
3、指标名称
4、指标名称5。5个指标名称中分别存
放每一子类商品的5个主要的指标名称。
商品品牌:包括品牌编号、品牌名称、品牌生产商、业务联系 信息。
商品:包括商品编号、商品名称、商品型号、商品指标值
1、商品指标值
2、商品指标值3,商品指标值
4、商品指标值
5、参考销售单价、上市日期、图片、简介。5个商品指标值巾分别存放各商品的具体指标参数值。
商城公告信息:包括公告编号、公告标题、公告内容、发布时阅。
商品销售信息:包括订单编号、用户编号、商品种类编号、商品分类编号、商品品牌编号、商品编号、订购日期、订购数量、实际销售价、用户确认、发货日期、管理员确认。
四、数据库逻辑结构设计
1.公告信息表(题目,内容,时间,编号,提交人)
2.商品类别表(编号,类别,名称,序号,厂家,包装类型,销售价格,进货价格,商品简介,浏览次数,销售数量,相关图片)
3.购物车表(编号,用户名,商品编号,订购时间,订购数量,销售价格,用户确认,订单号,提交时间,管理员确认)
4.用户投诉表(投诉编号,投诉时间,用户名,订单号,投诉内容,处理结果,处理标志)5.用户信息表(用户名,用户密码,用户姓名,性别,地址,电子邮件地址,固定电话,移动电话)
6.管理员表(用户名,密码,用户姓名)
五、模块功能设计
(1)顾客注册,登录模块
顾客可以通过填写注册信息注册成为会员,会员注册,登录需要填写附加码,保证 系统的安全性。会员登录后才能进行购物,购物车的管理与意见反馈,为登录的会员或 未注册的顾客只能检索与浏览商品信息。(2)购物车模块
顾客输入帐号与密码登录后便可以进行购物车的管理,可以查看购物车,将商品添 加到购物车中,也可以删除购物车中的商品,修改购物车中商品的数量,在线下订单及 订单查看。
(3)商品检索,浏览模块,特价商品检索,浏览模块
顾客可以根据不同的商品种类浏览商品信息(如商品名称,商品图片,商品型号,价格,生产厂商,生产日期等),也可以输入关键字进行商品检索。顾客可以根据不同 的商品种类浏览特价商品信息(如商品名称,商品图片,商品型号,价格,生产厂商,生产日期等),也可以输入关键字进行特价商品检索。(4)顾客留言模块
顾客登录成功后,进入反馈信息界面,可以发表自己的意见或建议。(5)后台登录模块
系统管理员输入帐号,密码和附加码可以登录后台界面,登录验证模块根据输入的 帐号密码识别不同角色的管理员,然后进入不同的后台管理模块,账号密码输入错误后 给出错误提示并要求从新输入。(6)订单管理模块
订单管理员登录后,可以根据日期范围,订单完成状态,订单编号等取得订单列表 与查看某订单的详情,也可以修改订单的完成状态及订单中的商品或数量,还可以删除 订单本身及订单中的商品。(7)商品管理模块
商品管理员可以查看商品种类和商品信息,也可以新增,修改,删除商品的种类和 商品本身。
(8)特价商品管理模块
该模块也和商品管理模块一样,商品管理员可以查看特价商品种类和信息,也可以 新增,修改,删除商品的种类和特价商品本身,并且可以将商品列为特价商品以及将特 价商品修改为一般商品(9)会员管理模块
会员管理员登录后,可以根据注册时间范围,会员级别及会员D取得会员列表,然后对某个会员可以进行详细资料的查看,级别调整与删除操作;也可以根据留言时间 范围,回复状态及会员D取得留言列表,然后对某个留言进行内容查看,回复与删除 操作。
(10)系统用户管理模块
系统管理员登录后,可以根据用户列表进行用户详细资料的查看,新增用户,修改 用户与删除用户操作。论文
1. 网上购物系统的开发背景+可行性分析(经济,技术)2. 系统需求
3. 系统设计+系统分析、实现 4. 系统工作流程 5.