小型电子商务网站系统设计与规划.docx
目 录一 网上购物系统概述41.1系统开发的背景41.1.1网上购物的发展41.2.1网上购物系统的现状41.2系统实现的目标41.3系统的开发意义5二 网上购物系统分析52.1网站的设计目标52.2网站的可行性分析52.3网站的深入调查52.4网站设计的特点62.5网站开发的设计思想62.6系统设计的总体规则6三 系统的开发技术及主要架构63.1开发技术的选择63.2系统的主要架构及开发模式73.2.1基于B/S的体系结构73.2.2基于MVC的应用开发模型8四 系统的功能和流程分析94.1网站的功能分析94.2平台功能模块的设计分析94.3系统流程分析94.3.1前台购物流程94.3.2注册功能流程104.3.3商品搜索流程104.3.4用户登录流程114.3.5商品管理流程114.3.6购物车流程12五 系统功能的具体实现125.1系统数据库表的基本设计125.2功能总体说明145.2.1目录结构说明145.2.2功能页面结构145.2.3主要功能流程155.3 各功能模块的实现155.3.1数据库的连接155.3.2用户登录模块的实现165.3.3购物车模块的实现185.3.4后台管理模块的实现205.3.5商品搜索模块的实现22六 系统中所存在的问题及解决方案226.1系统的整体设计的整体设计和规划中的问题226.2开发功能模块所遇到的难点226.3系统中存在的问题及拟定的解决方法22网上购物电子商务系统规划与设计书一 网上购物系统概述1.1系统开发的背景1.1.1网上购物的发展 几年来,跟随着Internet的迅速崛起,互联网已日益成为收集提供信息的最佳渠道并逐步进入传统的流通领域。于是电子商务开始流行起来,越来越多的商家在网上建起在线商店,向消费者展示出一种新颖的购物理念网上购物系统作为B2B,B2C(Business to Customer,即企业对消费者),C2C(Customer to Customer,即消费者对消费者)电子商务的前端商务平台,在其商务活动全程过程中起着举足轻重的作用,本文主要考虑的是如何建设B2C的网上购物系统。网上购物是一种具有交互功能的商业信息系统。他向用户提供静态和动态两类信息资源。所谓静态信息是指那些比经常变动或更新的资源,如公司简介,会议安排和培训信息等。网上购物系统具有强大的交互功能。可使商家和用户方便的传递信息,完成电子贸易或EDT交易。这种全新的交易方式实现了公司间文档与资金的无纸化交换。1.2.1网上购物系统的现状目前在国内PHP与ASP应用最为广泛。而JSP由于是一种较新的技术,国内采用的较少。但在国外,JSP已经是比较流行的一种技术,尤其是电子商务类的网站,多采用JSP。采用PHP的网站如新浪网(sina)、中国人(chinaren)等,但由于PHP本身存在的一些缺点,使得它不是和应用大型电子商务站点,而更适合一些小型的商业站点。首先,PHP缺乏规模支持。其次,缺乏多层结构支持。对于答复和站点,解决方法只有一个:分布计算。数据库、应用逻辑层、表示逻辑层彼此分开,而且同层也可以根据流量分开,组成二维阵列。而PHP则缺乏这种支持。还有上面提到过的一点,PHP提供的数据库接口支持不容易,这就使得他不是和运用在电子商务中。ASP和JSP则没有以上缺陷,ASP可以通过Microsoft Windows的COM/DCOM获得ActiveX规模支持,通过DCOM和Transcation Server获得结构支持:JSP可以通过SUN Java 的Java Class和EJB获得规模支持,通过EJB/CORBA以及众多厂商的Application Server获得结构支持。三者中,JSP应该是未来发展的趋势。世界上一些大的电子商务解决方案提供商都采用JSP/Server。比较出名的如IBM的Ebusiness,它的核心是采用JSP/Servlet的WebSphere;西方另外一个非常著名的电子商务软件提供商,Intershop。他原来的产品Intershop1,2,3,4占据了主要的电子商务软件份额。它们都是通过CGT来提供支持的。但去年10月后他推出了Enfinity,一个采用JSP/Servlet的电子商务Application Server,而且声言不再开发传统软件。总的来说,ASP,PHP,JSP三者都有相当数量的支持者,而这四者也各有所长,在开发过程中,我们应该根据实际的需要来使用最适合的技术,本系统则采用较新的jsp技术,一方面jsp的安全性和跨平台性比较好,另一方面,我也希望能从开发该系统的过程中,深入学习一下这门编程语言。1.2系统实现的目标现在流行的网上购物系统不仅要有漂亮的网页,更要有严谨的规划,注重每一个细小的环节。这样才能使得在电子交易时避免不必要错误的发生。我们将使用HTML、JSP等技术来编辑网页,并运用JDBC技术把数据库和动态网页相关联。传统的管理信息系统信息获取方法是由专业文字录入人员将信息输入到管理系统的数据库中,这种方法在数据量不大时有很多的应用场合。当数据量比较大,并且较强的专业性时,录入的费用和出错的可能性都相应上升。本设计在实际应用中的解决方案是建立网站,以及自己的数据库,似的所需商品信心可以及时的保存、更新,可以更好的及时了解商品买卖的情况。1.3系统的开发意义Internet的发展,为改变传统的商业运作模式提供了一种技术上的可行性的方案:利用Internet的技术和协议,建立各种企业内部网Internet,企业外部网Extranet,通过廉价的通讯手段,将买家与卖家、商场和合作伙伴紧密结合在了一起,消除时间与空间带来的长安,从而大大的节约了交易成本,扩大了交易范围。而在世界的生活中,这种方案已经被广泛的运用到了世纪的商业活动中了,人们将这种交易模式成为:电子商务。当今比较流行的网上购物系统国外有“淘宝()”,国内游“当当(设计和完成一个电子商务网站的,将会牵涉到许多技术上的问题,如:动态网页制作技术的,后台数据库的设计和管理,通过实际的只做个网站,可以避免纸上谈兵,在实践中掌握上述技术的使用。二 网上购物系统分析系统分析师平台开发的一个不可缺少的环节,为了能够使本系统更好、更完善地被设计出来吗,就必须先进行调查研究。在系统调查的基础上,对新系统的功能进行细致的分析,从而才能够开发出完整的系统设计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。他们的特性比较如下: 这三中都是在传统的HTML代码中,利用HTML标签的扩展,构成页面。不难看出,JSP的综合实力是最强的,尤其是在安全性和化平台性两个方面,比其他的两种技术都要好,因此,最后我们选择基于Java的JSP技术作为动态网页的开发技术。3.2系统的主要架构及开发模式系统的建设关键在于其所使用的架构吗,而网上购物这种机遇web的系统,传统的C/S架构已经不能满足大量用户的访问和操作,B/S基于浏览器的架构则是目前网络系统应用的主流,他将大量的数据处理工作交给服务器端来处理,客户端只用通过普通的IE浏览器即可访问系统,方便快捷而且利于系统的更新和维护,Java语言在该方面更是得天独厚,j2ee规范的出现则是系统的开发更加规范,层次更加清楚,更利于对复杂事物的处理,而且在安全性方面也做得更好。机遇mvc的开发流程则是开发过程更加清晰明了,利于做一些复杂的逻辑实现,从而节省了开发周期和开发成本。3.2.1基于B/S的体系结构在B/S体系结构系统中,用户通过浏览器向分布在网络上的许多服务器发出请求,服务器队浏览器的请求进行处理,将用户所需信息返回到浏览器。B/S结构简化了客户机的工作。客户机上只需配置少量的客户端软件。服务器将担负更多的工作,对数据库的访问和应用程序的执行将在服务器上完成。浏览器发出请求,而其余如数据请求、加工。结果返回以及动态网页生成等工作全部由Web Server完成。实际上B/S体系结构是把二层C/S结构的事务处理逻辑模块从客户机的任务中分离出来,由Web服务器单独组成一层来负担其任务这样客户机的眼里减轻了,把负荷分配给了Web服务器。这种三层体系结构如图3.1所示。这种结构不仅把客户机从沉重的负担和不断对其提高的性能的要求中解放出来,也把技术维护人员从繁重的维护升级工作中解脱出来。由于客户机把事务处理逻辑部分分给了功能服务器,是客户机一下子“苗条”了许多,不再负责处理复杂计算和数据访问等关键事务,只负责显示部分,所以维护人员不再为程序的维护工作奔波于每个客户机之间,而把主要精力放在功能服务器上程序的更新共组。这种三成结构在成渝层之间相互独立,任何一层的改变不会影响其它层的功能。3.2.2基于MVC的应用开发模型在传统的机遇web的应用系统中,例如ASP,CGI等,通常开发者将业务逻辑,数据逻辑、展示逻辑等混杂在一起,在同一个界面里既进行后台数据库的访问和操作,同时还包含业务流程和页面表示。这样编写出来的程序,既不利于程序员对业务代码的调试,同时也不利于编辑人员进行交互页面的设计。同时系统也不具备可扩展性。当我们要在现有业务上进行扩展的时候,通常无法借助于现有的资源和应用,而只能够重新编写,大大增加了投资,延长了系统上线的时间,失去了竞争市场的优势。在本网上购物系统中,将采用通行的MVC模式来构建应用。这种结构解决了前面所述的所有问题,在我们的应用集成网络中,通过企业高端J2EE应用服务器实现MVC开发模型,MVC的逻辑图如下: 通过这种方案,我们可以迅速的实现整个业务,其优势和特点如下:Model(模型)层:由EJB组件来实现,EJB将具体的业务封装在组建内部,具备安全、高性能、可重用等优秀的特征。Vlew(视图)层:由JSP、HTML组成。这一层次的特点是能够真实的展示和客户交互的界面,具备可描绘的功能,同时能够嵌套动态数据,可以进行动态页面的展示。同时可以方便地进行客户端的个性化定制,根据每个客户的需求来展示不同风格的界面。Controller(控制器)层,是非常重要的一层,这一层是连接View和Model的纽带,同时也是将这两层进行最大限度分离的工具。通常由Servlet来实现,Servlet和JSP虽然同样都属于页面展示工具,但分属两层。主要在于JSP以脚本语言的形式存在,它的主要优势是进行动态数据的Web展示,而Servlet是一个完整的Java程序,进行业务的调用和流程的处理是他的长处。通过这种母性的建立,我们的应用系统具备了非常好的性能和可扩展性。将业务组件和展示页面进行分离,并通过Controller来描述调用关系,一方面可以提高效率,另一方面也可以增加系统扩充的能力,是我们的胸可以进行最快速度的业务扩展,以满足不同用户、不同阶段、各种各样的业务需求。四 系统的功能和流程分析4.1网站的功能分析经过前期的深入调查和研究,总结出该平台需要完成的一些具体功能,分析如下:用户管理 :能够完成用户基本信息录入的注册和用户基本信息的修改。管理员管理:能够完成管理员对网站的商品信息管理(商品添加、商品审查)会员管理(会员审查)、网站信息管理(新闻添加、修改删除、公告设置),以及常规设置(广告添加,友情链接)等功能。搜索功能 :能过电子商品的名称进行搜索。查询功能 :能够通过查看购物车对所选商品进行确定、挑选。4.2平台功能模块的设计分析在平台功能的分析基础上,得到本平台的功能模块图如下:4.3系统流程分析4.3.1前台购物流程4.3.2注册功能流程 注册的具体实现为: 点击主页面的用户注册选项后,会弹出一个注册信息页面,用户需要如实填写用户名,密码,Email,地址,电话,真实姓名等各项信息,提交后,系统进行检测判断该用户名是否已经注册过,如果已经存在则弹出新页面,提示用户该用户名已经注册过,如果没有则进行下一步判断,用户输入的两次密码是否一致,然后依次往后判断用户所填写的各项信息是否符合要求,知道所有信息均正确无误,系统将该用户注册信息写入会员表即member并提示用户注册成功,用户登录号,就可以进行有效的购物了。4.3.3商品搜索流程商品的搜索功能使用户更加方便的进行自己所需要的商品查询,节省时间,提高效率。用户搜索时只要输入商品的关键字就能搜索到所有相关商品。并且能列出通过搜索的到的商品的详细信息。4.3.4用户登录流程用户登录,首先要有一个提供用户登录的表单。用户登录的表单应该嵌入整体的结构当中。在实际的应用中,可以这样设计,如果用户没有登录,则在页面中显示用户登录的选项,用户登录后,则可隐藏用户登录的选项而代之以用户的基本信息。首先,用户要有一个用户名和密码。商务网站需要很高的稳定性和安全性,因此对用户名不允许使用恶意的代码作为用户名。同时对密码也要求保密,将密码加密后再存入数据库。另外,一个电子商务网站。用户的真实姓名是必不可少的。除此之外还需要用户的性别、Email、电话号码等。4.3.5商品管理流程在该功能里管理员可以进行不需要的商品的删除,在这里管理员当然也可以浏览到商品的详细信息。并且比普通用户在浏览商品界面里所看到的商品信息多一个该商品在数据库中的ID。4.3.6购物车流程购物车具体的实现可采用这种形式:定义一个购物车的类(Class)。1 列出商品的列表,使用户能够自由选择所需要的商品。2 当用户在点击“添加到购物车”的连接时,执行如下功能:检查用户购物车类是否存在。如不存在,则建立,并注册这Session变量:在由用户购物车类存在的情况下,在检查该类中是否有该商品。如存在,则商品数量相应加1;如没有该商品,则该商品添加到该类中。五 系统功能的具体实现5.1系统数据库表的基本设计在建设网站系统之前,我们必须对系统所用到的数据进行大致的分类和具体的结构设计,既要做到清晰明了,又要能适应系统各项功能的调用,而不至于产生结构上的逻辑混乱,保证关键数据在意外情况下不会被破坏,可以说数据库是系统的重中之重。数据库设计要遵循一些规则,一个好的数据库满足一些严格的约束和要求。进两分离歌试题对应的表,一个实体对应一个表,搞清楚该试题有哪些属性,对应有些什么字段,以及各实体之间有何种联系。实体、属性与联系是进行概念设计时要考虑的三个元素,也是一个好的数据库设计的核心。从实际出发,经过仔细地设计,得到各表的设计如表5.15.9所示。说明对于商品信息表,因为经验不足,我将其关键字段hw_id商品编号采用的是Access数据库中的自动编号,虽然也确定了商品信息的唯一性,但不具备直观的特点, 在实际应用中最好是将其设置一个命名规则,管理人员再添加商品的时候能够自动产生一个有一定规则和一定意义的命名规则,方便管理人员对其进行管理和维护,例如对于手机类商品可将其编号设置为mobile+型号+添加日期,这样更容易对商品进行管理。Hw_pic字段代表图片,但在这里存放的只是它的路径所以应该使用文本类型。说明对于会员信息表,会员编号也要有一定的命名规则,另外会员账号的命名规则也有一定要求,如必须以字母开头,不能有特殊字符,长度大于4个字符小于16个字符等等,还有一个需要注意的是用户密码,由于Acess数据库本身不提供特殊字段的加密,用户注册以后注册密码是一明码形式存放在数据库中,这对系统来说是极不安全的,因此需要我们用一些特殊工具来对其进行加密。说明购物车表则是系统中与其他几个表关系最多的一个表,它包含了商品表,会员表中的几个重要字段,是我们进行最后购物统计的主要依据,我们在确定购买一样商品的时候,系统将数据写入购物车表,在用户确定去结账之前basket_check值为否,确定之后质变卫士,一个用户可能对应多个basket记录,但在同级的时候,仅对basket_check为真的记录进行统计,这样就可以避免造成统计错误。说明该表和会员表一样存在字段的命名规则的要求,出于安全考虑对于管理员账号发放应该谨慎,管理人员数量一定要控制,越少越安全,在实际应用中,我们还要对整个数据库进行加密,以防止系统重要数据泄漏。说明存储网站新闻信息,与其他表没有关联。说明该表主要存储一些网站信息,如系统管理员的联系方式等,一页面的形式提供给用户,与其他表没有关联。说明该表为单独的表,与其他表没有关联,主要存储一些链接网站或广告信息。5.2功能总体说明5.2.1目录结构说明(1)admin用于存储系统管理员的后台操作脚本,包括商品类别管理、商品信息管理、站内公告管理、订单管理、系统用户管理等功能:(2)pic用来存储商品的图片资料,管理员上传的商品图片也存在这里。(3)img用来存储网页上的图片文件。(4)database用来存储系统的数据库,由于环境限制,本系统采用的是windows自带的Acess数据库,所有的相关表也都放在这里。(5)Class用来存储封装起来的一些servelet,也可称为JavaBeam文件。5.2.2功能页面结构(1)前台功能页面主页面框架:index.jsp,top.in-search jsp,includenotice.jsp,paihang.jsp,middle.jsp商品展示 :bought.jsp,cash.jsp,showing.jsp,views.jsp,inproduct.jsp登陆注册 :dengluyufou.jsp,reg.jsp,regsave.jsp,quit.jsp(2)后台管理页面主页面框架:index.jsp,manage.jsp,left.jsp,main.html,quit.jsp商品管理 :addhw.jsp,changehw.jsp,changehw_ok.jsp,savehw.jsp,delhw.jsp用户管理 :viewuser.jsp新闻管理 :addnews.jsp,editnews.jsp,delnews.jsp公告管理 :gg.jsp,gg2.jsp,ggdel.jsp广告链接 :guanggao.jsp,links.jsp,savelinks.jsp5.2.3主要功能流程5.3 各功能模块的实现5.3.1数据库的连接出于安全性的考虑,我们将于数据库的连接,单独写出来并进行编译,也就是数据库连接的JavaBean文件,编译出来的class文件是无法被修改的只能通过原文件进行修改,我们在JSP页面中只用直接调用改方法即可,在本系统中我们将其命名为faq存放在class/ckstudio/db下设其id为mab,我们在需要对数据库进行操作的时候只需在页面上添加这样一个标签<jsp:useBean id=”mab”class=”ckstudio.db.faq”scope=”page”/>即可。连接管件代码如下:5.3.2用户登录模块的实现用户登录模块是防止非法用户登录的第一道防线,通过它可以保护后台数据库的安全性,当用户要进行订购时,首先要进入的就是身份验证界面,只有在密码正确的情况下才能进行以后的购物,如果输入的密码不正确,则不能进行订购。如果用户已浏览者的身份进入网站,则只能进行一般的商品浏览和搜索,而不能进行选购,再点击添加购物车后,系统会判断该用户是否是登录用户,如果不是则弹出来提示页面,提示用户必须先登录才能订购商品,如果是第一次登录,请先注册。主页面的效果图如下:登录的具体实现要通过一个全程变量,即session变量来实现,在系统中则有一个单独的session.jsp页面来放置该session。用户登录的界面dengluyufou.jsp,从member表差的用户提交的账户名和密码正确后,用一个全局变量,即session变量保存这一消息(该变量名称为session(“user_name“)。具体的判断过程为:若session中user为空即session.getAttrubute(“user_name”)=null,表明没有经过登录与佛的验证,则立即跳转到dengluyufou.jsp,请用户登录:并将用户登录的账号和密码通过User_name=request.getParameter(“user_name”):User_pass=request.getParameter(“user_pass”):分别赋给变量user_name,和user_pase,然后将其与数据库中的相应信息进行比较String sql=”select*from member where user_name=”+user_name+”:如果user_game存在的话则判断奇密码是否正确User_pass.equaks(rs.getString(“user_pass”)如果为真则将用户信息赋给sessionSession.setAttribute(“user_name”,”+rs.getString(“user_name”)+):以方便系统对用户在操作一些会员功能是进行用户身份验证。如果用户还不是会员则提示用户进行注册,用户提交信息之后,系统开始判断用户的注册信息是否有效,首先是用户名是否为空,(该储存在用户命名规则的问题,后面问题中会详细解决)用户输入的两次密码是否一致,然后依次往后判断用户所填写的各项信息是否符合要求,知道所有信息均正确无误,系统将该用户注册写入会员表即member:并提示用户注册成功,用户登录后,就可以进行有效的购物了。注册页面效果图如下:系统对用户的注册信息的验证实现如下:用户输入的各项信息分别对应字段User_name,user_pass,user_pass2,user_adds,User_tel,user_mail,user_postcode:先判断用户名是否为空request.getParameter(“user_name”):如果不为空则将改制传给变量user_nameUser_name=getStr(request.getParameter(“user_name”):同样道理对密码进行判断Request.getParameter(“user_pass”).equals(“”)Request.getParameter(“user_pass2”).equals(“”)判断两次出入是否一致user_pass.equals(user_oass2)其它选项与上面类似,如果条件符合则将该支赋给各个字段用户名重复的验证代码为:Sql=”sekect*from member where user_name+”+user_name+”:Rs=mdb.esecuteQuery(sql):If(rs.next() Errmsg=errmsg+”用户名已被别人注册”: Fkunderr=true:当所有条件都符合的时候,系统将数据写入数据表,并返回成功页面,显示用户所填的注册信息,写入关键语句为:Sql=”Insert intoMember(user_ame,user_pass,user_adds,user_mail,user_tel,user_regip,user_namec)values(”+user_name+”,”+user_pass+”,+user_adds+”,+user_mail+”,”+user_tel,”+request.getRemoteHost()+”,+getStr(request.gerParameter(“user_namec)”:用户在注册之后也可以对自己的资料进行更改,再点击主页面的修改资料后,弹出这样的一个页面,用户可以直接在文本框里修改,然后确认。·修改这一过程具体实现过程为User_name=request.getParameter(“user_name”):Sql=”select*from member where user_name=”+user_name+”:ResultSet rs;rs=mdb,esecuteQuery(sql);根据用户名将该用户的所有新系列出来,以供用户修改修改方法采用的是rs.updateString(“user_pass”,user_pass);其他的类似。5.3.3购物车模块的实现 当用户登录成功以后,如果找到哦啊了希望订购的物品,再点击物品下方的订购以后,系统会弹出一个新的页面,显示该物品已经添加进购物车,然后用户需要选择订购的数量。页面效果如下:在点击确认以后,该物品信息被后台添加到购物车表即basket表中,如果用户需要继续购物,可以继续选择,不断添加,系统会自动将所有信息写入basket表,同时显示用户所购买的物品列表,及合计价格。其具体代码实现过程为:从session中缺的该用户的信息User_name=(String)session.getCalue(“user_name”);User_trpe=(String)session.getValue(“user_type”);对商品的信息进行提取以写入购物车表String hw_ids=resquest.getParameter(“hw_id”);String counts=getParameter(“count”);String hw_cashs=request.getParameter(“hw_cash);Hw_name+request.getParameter(“hw_name”);具体写入语句为:Sql=”insert into basket(hw_id,user_name,basker_count,hw_name,hw_cash)”;Sql=sql+”values(”+hw_ids+”,”+user_name”,”+counts+”,”+hw_name+”,”+hw_cashs+”)”;Mdb.executeInsert(sql):如果用户在去收银台结账前对已经选购的物品不满意时,可选择清空购物车,同时系统也将basket表中相关信息删除。用户完成选购之后,可点击收银台副快,系统返回最终选购物品列表和合计价格,如图所示系统只统计basketcheck为否的该用户选购的商品信息。用户再一次确认后,系统会显示购物成功并返回给用户一个订购单号,提示用户填写收货人详细信息,包括姓名、地址、邮箱、电话、付款方式等,这些信息是系统自动从用户表中提取出来的,用户可以修改5.3.4后台管理模块的实现网上购物系统除了能够让用户实现前台的浏览和购物等操作之外,还必须能够使管理人员能够对系统的各种信息进行维护,比如商品的增加、删除、修改,会员的审查,网站新闻的更新等等。管理功能是网上购物系统相当重要的一部分功能。管理员可以通过主页面的“管理进入“进行系统后台进行维护,点击之后,首要的就是进行身份验证,输入正确的账号,密码之后,方能进入。由于涉及到交易,出于安全性考虑,管理员账号应尽量少分配,密码也要尽量复杂,经常更换。进入之后系统管理的主页面采用了框架结构,左边是一个树形菜单,右边显示具体信息。管理的主要功能有商品信息的更新,会员信息维护,网站信息维护,广告连接设置等四大块,商品信息管理,主要就是添加新的商品,删除和修改已经添加的商品。如下图所示:会员信息管理,则主要是对一些恶意注册用户进行删除,该功能设计存在一定问题,具体在后面会有一定说明。网站信息管理,进行网上新闻的发布,修改删除,以及系统公告等信息的设置,这些功能虽然无关紧要,但在实际中却能方便用户,提高网站效益。广告链接,可以进行一些广告信息的发布,及更新和修改,主要是链接一些合作单位的网页,能够给自己带来一些经济上的收益。在完成系统的更新之后,作为管理人员,应该及时注销自己的账户,树形菜单的上方提供了注销登录的选项,点击之后,注销用户,并返回到前台页面,防止他人恶意修改网站信息,造成不必要的损失。以上两个部分都是比较简单的功能实现,具体实现过程与前几个类似。5.3.5商品搜索模块的实现网上购物作为一个在网上展示自己商品的销售系统,如何能让用户以最快的速度找到自己希望买到的物品,也是需要非常重视的一个问题,此时搜索引擎也就必不可少了。本购物系统也做了一个小模块,以供用户进行一些模糊查找,用户不必输入全部名称,只需输入一些关键词,系统就可以将符合该查询条件的所有商品信息以网页形式返回给用户。六 系统中所存在的问题及解决方案6.1系统的整体设计的整体设计和规划中的问题由于是基于B/S的系统,网页在其中就承担着非常大的工作吗,包括向服务端后台写入和修改数据,以及服务端响应客户端的请求,向客户端页面返回数据,这些工作不可能只有几个网页来完成,但网页数量一多又必然结构混乱,造成开发过程难以控制。为了解决这个问题,我采用了现代软件开发过程的模块化思想,现将系统功能进行分解,大致可分为两部分,级前台和后台,前台有包括主页面及产品信息展示页面、搜索功能页面。、新闻信息管理等几个部分,各个部分又由去多小的页面组成,这样一来虽然网页数量没有减少,但结构清晰了很多名在开发过程中可以逐步,逐个模块的实现,提高了开发效率。6.2开发功能模块所遇到的难点因为是第一次做这么完整的系统,所以碰到的问题也很多,除了一些基本的语法之外,感觉还是以而写考虑问题的思维方式不太得到,不如我的这个网上购物系统,我感觉难度比较大的还是购物车这个模块比较难设计,因为过程比较复杂,它的一些逻辑处理就比较的难以用代码实现。我参考了一些电子商务网站,研究了一下他们的购物流程,大概有了一些处理的想法,用户在点击订购之后吗,系统现将该商品信息写入购物车页面,只有当用户在选择了商品数量,及确认按钮之后,系统才将该信息写入basket表,用户不选择商品水量活着不点击确认按钮,系统就不把该商品信息写入basket表,这样就不至于造成basket表数据混乱,用户无法继续购物。当用户完成选购,点击去收银台结算时,系统开始判断商品库中的这些商品数量是否大于用户所选数量,如果没有,则提示用户没有该商品数量不足。如果有则将所有