网上书店系统 毕业设计正文_第1页
网上书店系统 毕业设计正文_第2页
网上书店系统 毕业设计正文_第3页
网上书店系统 毕业设计正文_第4页
网上书店系统 毕业设计正文_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

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

文档简介

1引言传统书店往往要占用大量的空间,雇佣数量较多的工作人员同时也难以避免读者在购买图书时造成图书翻阅损耗等一系列费用,而与此同时随着互联网在中国的发展,我国网民已经超过了2亿,而其中绝大部分有是属于知识分子的青年人,无疑他们正是广大图书出版物的潜在消费者。当今网络所显现的超常信息量、无时空局限、传递快捷、操作灵活等优点吸引着越来越多的图书销售商把传统的书店移植到互联网上,从而形成了当今网上书店蓬勃发展的趋势。利云网上书店正是为了满足这种需求而研发的中小型电子商务系统利云网上书店系统是基于B/S模式的小型电子商务系统,能够满足中小型书店的网上售书需要。搭建利云网上书店极为简单只需要一台PC机,一根网线,即可进行网上交易。利云网上书店基本上满足了中小型书店的网上销售需求,其主要功能包括图书展示、网上调查、购物车、收银台、会员管理、订单查询、图书管理、用户管理、订单管理、公告管理、投票管理、退出功能。图书展示主要实现图书的重点推荐、新书上架图书分类查询、销售排行榜等功能;网上调查功能则提供了书店经理了解读者书籍的需求情况,进而引导订书的种类;购物车功能给每个用户建立了一个相对应的唯一存放选中书籍存放的空间;收银台提供了客户付账的功能,当顾客决定购买购物车里的书籍时,向收银台提交订单;会员管理为每一位注册用户提供了注册、登陆、修改自己注册信息的权利,例如当注册用户的联系方式和地址变动时用户可以通过此功能方便的修改自己的资料;订单查询功能为用户提供了查询自己订单的功能;后台的图书管理是为管理员提供修改、添加删除图书信息的功能;用户管理实现的功能有查看用户信息、消费总额、用户的解冻;订单管理主要负责查看用户的汇款执行情况;公告管理方便管理员向首页公告栏里添加网站公告;投票管理方便管理员向书店添加书店需要调查的书目或删除过期的书目;推出功能负责管理员的推出。利云网上书店的设计充分考虑了用户的视觉感受,努力做到界面简单明了,功能相对完善。后台开发充分考虑了使用软件的用户可能对计算机软件并不是很了解,所以在设计的过程中添加了许多必要的提示和说明。总之利云网上书店将以Java技术为基础,实现图书信息的发布、购物、用户管理、图书后台管理等一系列的功能,力争成为中小型书店网络销售的理想软件。2.1JAVA语言简介Java是一种简单易用、完全面向对象、具有平台无关性且安全可靠的主要面向Internet的开发工具。自从1995年正式问世以来,Java的快速发展已经让整个Web世界发生了翻天覆地的变化。在早期,Java比较多的用在浏览器上,插入到网页中(即是JavaApplet程序,成为最灵活、最强大的网页多媒体的载体,但由于Java虚拟机相对于个人电脑而言,有占用资源大,安全性相对较差等缺点,Applet逐渐的被后起之秀Flash所替代,但随着JavaServlet的推出,Java在电子商务方面开始崭露头角,最新的JSP(JavaServerPage技术的推出,更是让Java成为基于Web的应用程序的首选开发工具,目前的Java技术已成为所有大型电子商务项目的必然选择[1]。2.2JSP技术JSP是“JavaServerPages”的缩写,可以解释为“基于Java的服务端动态页面技术”[4]基于Java是JSP一切优秀品质的根本物质基础。因为Java是编译解释执行的,所以JSP也就摆脱了VBScript、Perl等脚本语言纯粹的解释执行带来的低效率问题。尽管在JSP中Java仍被称为脚本语言。因为Java是平台无关的,所以JSP是跨平台的。基于Java是JSP区别包含ASP(ActiveServerPages)在内的其它服务端动态页面技术的重要特征。JSP是服务端技术,所以JSP文档要先经服务端翻译、解释、执行,才能得到客户端浏览器能识别的HTML文档。这是当前Web技术的潮流,是解决客户端浏览器兼容性问题的客观需要。服务端技术是JSP区别于JavaScript、VBScript等客户端动态页面技术的重要牲。JSP是一种页面技术,而现在JSP只实现了HTTP(HypertextTransferProtocol)协议,只能应用于Web页面。这是JSP区别于Servlet的重要牲。JSP是一种动态技术,这是JSP基于Java的自然延伸。在页面中引入程序设计语言的目的是正是为了实现动态交互。因此,JSP就是基于Java的服务端动态页面技术。JSP技术让动态网面更易编写,功能更强,可移植性更好。概括起来,JSP的设计目标主要有以下几点:a)一次编写,到处运行JSP技术是完全的与平台无关的设计,包含它的动态网页与底层的服务组件设计。可以在任何平台下编写JSP网面并且在任何支持JSP的系统上执行。也可建立自已的组件,并在JSP中使用。目前主要是JavaBean和JavaServlet,而它们都是跨平台的。b)加强组件能力JSP技术以Java的组件模型JavaBean为基础,加强了组件的使用能力。这不但省去了一些开发时间,而且还可以将网页页面设计和商业分开,有助于快速开发和维护。c)作为Java企业平台的门户JSP高度整合了Java企业平台部分(Java专注于企业应用方面的平台技术)。可以利用Java的企业级API(ApplicationProgrammingInterface)开发企业的各种需求系统,而使用JSP作为这些技术的前端。当需要升级应用程序时,只需升级组件与动态页面部分,而这些都存在于服务器上,所以修改服务器上的资源,客户端的显示即会跟着改变。d)更容易建立动态页面JSP就是用标准HTML语法混合自身语法标记,就是如此简单,不需要有使用Java、C++等程序设计语言的能力与经验。可以这么说,它的出现也正是要实现简单容易的开发页面的需要,否则它与JavaServlet相比没有任何存在的理由。a引入简单表达式语言(EL,ExpressionLanguage),它用于JSP页面中的数据访问。这种表达式语言简化了JSP中数据访问的代码,不需要使用JavaScript或者Java表达式。b引入创建自定义标签的新语法,该语法使用.tag和.tagx文件,这类文件可由开发人员或者网页作者编写。c对XML语法做了实质性的改进,增加了新的标准文件扩展名(.tagx用于标签文件,.jspx用于JSP文件)。2.3TomcatTomcat是一个免费的开源的Serlvet容器,它是Apache基金会的Jakarta项目中的一个核心项目,由Apache、Sun和其它一些公司及个人共同开发而成。由于有了Sun的参与和支持,最新的Servlet和Jsp规范总能在Tomcat中得到体现。Tomcat服务器是在SUN公司的JSWDK(JavaServerWebDevelopmentKit,SUN公司推出的小型Servlet/JSP调试工具)的基础上发展起来的一个优秀的JavaWeb应用容器。Tomcat已经被JavaWorld杂志的编辑选为2001年度最具创新力的Java产品,同时它又是SUN公司官方推荐的Servlet/JSP容器[14]。作为一个开放源码的软件,Tomcat得到了开放源码志愿者的广泛支持,它可以和目前大部分主流HTTP服务器一起工作(如IIS和Apache服务器),而且运行稳定、可靠、效率高。同时,它还提供了作为Web服务器的一些特有功能,如Tomcat管理和控制平台、安全域管理和Tomcat阀等。作为Servlet容器,Tomcat负责处理客户请求,把请求传送给Servlet并把结果返回给客户。Servlet容器与Servlet之间的接口是由JavaServletAPI定义的,在JavaServletAPI中定义了Servlet的各种方法,这些方法在Servlet生命周期的不同阶段被Servlet容器调用;ServletAPI还定义了Servlet容器传递给Servlet的对象类,如请求对象ServletRequest和响应对象ServletResponse。当客户请求访问某个Servlet时,Servlet容器将创建一个ServletRequest对象和ServletResponse对象。在ServletRequest对象中封装了客户请求信息,然后Servlet容器把ServletRequest对象和ServletResponse对象付给客户所请求的Servlet。Servlet把响应结果写到ServletResponse中,然后Servlet窗口把响应结果传给客户。Tomcat已经为Servlet和JSP提供了强大的支持,Servlet和JSP最新技术规范都可以在Tomcat中及时地得到实现。Tomcat应用已经成为目前开发企业JavaWeb应用的最佳选择之一。2.4SQLServer2000SQLServer2000是微软推出的一个大型的关系型数据库管理系统。作为Windows数据库中出类拔萃的成员,SQLServer2000能够满足各种类型的企业客户和独立软件供应商构建商业应用程序的需要。SQLServer的可伸缩性既可以适应很小的兆字节个人数据库,也可以适应由数以万记用户使用的巨大的太字节数据库[15]。本科毕业设计第5页共35页SQLServer2000是一种客户机/服务器模式的数据库管理系统,这种体系结构把所有的工作负荷分解成在服务器机器上的任务和在客户机机器上的任务,有效地利用了资源,减轻了服务器的压力。MicrosoftSQLServer2000能够提供特大系统所需要的数据库服务。在大型客户/服务器系统中,成千的用户可能同时连接一个SQLServer2000实例,SQLServer2000有强大的保护功能来处理这种情况。SQLServer2000也可以有效地为多个用户分配可用的资源,如内在、网络带宽和磁盘I/O等[16]。非常大的Internet站点能够将它们的数据在多个服务器间划分,将处理负担分布到许多计算机上,且允许站点为大量用户服务。多实例SQLServer2000可以在单台计算机上运行。例如,为许多其他组织提供数据库服务的组织可以为每个用户组织运行一个单独的SQLServer2000实例,所有实例都在一台计算机上。这样使得每个用户组织的数据相互独立,而服务组织只管理一个服务器计算机来减少开支。SQLServer2000应用程序也可以像SQLServer2000一样运行在同一台计算机上。应用程序使用WindowsInterprocessCommunications(IPC组件,如共享内存来连接SQLServer2000,而不是网络。这样SQLServer2000就可以在小系统上使用,此时应用程序必须在本地保存它的数据。SQLServer2000还支持对多节点群集的规模扩充(ScaleOut),即把一个巨型数据库分区到一个服务器群集中,但是对于用户来说,整个数据库的存储和访问就像是对待一个单独的数据库那样。通过使用这种扩充规模的伸缩样式,SQLServer2000达到了任何数据库系统在任何平台上所能达到的性能。故障切换和恢复这两种技术内置到了SQLServer系统中,使得SQLServer具有了高度的可用性[16]。2.5EclipseEclipse最初是IBM公司的一个软件产品,2001年11月其1.0版正式发布。面世之初,Eclipse还很不起眼,并饱受业界批评。所谓万事开头难,软件的初版一般都比较稚嫩。到2003年3月,Eclipse发布了它的2.1版,立刻引起了轰动,下载的人蜂拥而至,导致它的下载服务器都因超载而拥塞了。现在,IBM已将投入巨资开发的Eclipse作为一个开源项目捐献给了开源组织E,Eclipse出色而有独创性的平台,吸引了众多大公司加入到Eclipse这个平台的发展上来,这样的公司有HP、Oracle、Sybase、Borland、RedHat、RationalSoftware、SuSE、TogetherSoft等。最初Eclipse的开发人员,大部分都来自于当年与JBuilder齐名的VisualAge项目组,现在虽然IBM已将Eclipse捐献给了开源组织,但仍由IBM的子公司OTI(主要从事Eclipse开发的人)继续领导着Eclipse的开发[11]。Eclipse是一种通用工具平台——普遍适用的开放式扩展IDE(IntegratedDevelopEnvironment)。它拥有功能丰富的开发环境,并允许开发者高效地创建一些能够无缝集成到Eclipse平台中的工具。Eclipse的设计思想是:一切皆为插件。Eclipse的核心是非常小的,其它所有的功能都以插件的形式附加到这个Eclipse核心之上。这样的功能插件包括它的图形API(称为SWT/JFace)、Java开发环境插件、插件开发环境等。Eclipse还对这些插件的协同工作提供了良好的支持,不仅安装简单,而且还可以无缝结合。Eclipse对这些插件是动态载入动态调用的。所谓动态就是指,Eclipse启动后要真正用到这个插件时,它才会被调入内存。当插件不再被使用时,它就会被在适当的时候清除出内存。因此即使装了一大堆插件在Eclipse里,也不必担心某些不常用的插件白白占着内存。此外,Eclipse有极为强大的集成开发环境,它集成了CVS,JUnit和Ant,并且强大的代码重构功能独步江湖无人能及。因为Eclipse的安装包集成了Java开发环境的插件JDT,所以Eclipse默认是一个和JBuilder类似的Java开发工具。但Eclipse不仅仅只是Java的开发工具,我们只需要装上C/C++的插件,就可以把它当作一个C/C++开发工具来使用。只要有相应的插件,Eclipse也可以用做其他语言的开发工具。Eclipse的这种插件扩展机制是其最突出的特点和优势,它使Eclipse提升到了一个平台的高度。我们可以利用Eclipse的插件开发环境来开发自己的Eclipse插件,随己所需地扩展Eclipse的功能。3需求分析3.1项目背景网上书店是一种应用于图书销售领域的动态网站。近年来随电子商务在图书销售领域广泛应用,网上书店如雨后春笋在全国迅速展开。与传统的书店相比,网上书店既可以避免书目订货的局限和盲目,又可以克服看样订货投入大,费用高,管理难的不足,而且网上选择范围广能直观看样,可浏览内容,可随时添订,结算及时,快捷方便,周转高速。这些优势是其它交易方式难以达到的。图书网上交易是图书销售领域未来发展之必然,也是出版发行业摆脱困境,建立新的流通渠道,繁荣出版,繁荣市场的必由之路。目前当当、科利华、江苏考试书店等网上书店都在网上市场竞争中争的自己的一席之地。然而中小型的书店开展网上交易的数量,却显的凤毛麟角。一方面:中小型的书店向大型书店发展受到了资金、管理水平的限制;另一方面当今的互联网技术的发展赋予中小型图书销售商开展灵活快捷售书的机遇。利云网上书店正是基于这种市场潜力,面向全国中小型图书销售商而开发的,力争为全国的中小型书店提供一款功能完善、界面友好、性能可靠的网上销售软件。3.2可行性分析利云网上书店同其他电子商务系统采用B/S结构的开发模式,以此保证了用户使用系统的灵活性,顾客只要使用一台可以访问Internet的电脑就可以登录到系统中进行操作,无需客户端软件支持,这样方便了图书潜在的消费者快速浏览利云网上书店提供的图书。利云网上书店采用JSP技术为基础进行设计开发。首先,由于Java技术的平台无关性,决定了本系统的强大的可移植性,这样可以不对客户作过多的限制,无论是Windows平台还是UNIX、Linux都可以无障碍地进行部署发布。在技术上,JSP作为SUN公司在市场上的主打品牌,经过多年的考验已经非常成熟,使用它作为技术基础对本系统来说没有任何问题,而且JSP可以将前台用户接口与后台业务处理进行很好的分离,以此保证了界面开发和后台实现互不干预,可维护性强。同时,JSP技术相对比较简单,开发速度快,可以提高开发效率,又因为其基于Java,本身又可以扩展使用任何的Java框架,所以它在功能上也是完全能够胜任本次开发任务的。在应用服务器的选择上,Tomcat是Apache公司的一款出色的JavaWebServer,它是在SUN公司的JSWDK(JavaServerWebDevelopmentKit,SUN公司推出的小型Servlet/JSP调试工具)的基础上发展起来的一个优秀的JavaWeb应用容器,虽然小巧但是功能强大,而且反应速度快、运行稳定可靠、使用简单,如果需要还可以和当前大多数主流应用服务器集成到一起,可扩展性好,是部署中小型应用的理想容器,此外,它还是一款免费的软件,所以在很大程度上降低了成本。使用它来部署本系统,是一个理想的选择。3.3功能分析利云网上书店提供前台图书前台和后台图书管理两大功能。顾客通过登陆利云网上书店的主页面,浏览和各种类型查询书店存书,然后客户通过网上自己的注册用户名、登陆、修改资料,在网上确认自己的购买所需图书,并把这些图书添加到购物车上。最后填写订单购书结账和订单的查询。利云网上后台管理主要是管理员通过登陆对图书和前台用户信息的管理,包括查看、添加、修改、删除图书信息,查看用户信息和冻结不良的用户等功能。图书展示模块主要实现用户浏览到利云网上书店主页面的时候,用户对自己感兴趣书籍的查询和对书店所存书籍的了解。当注册用户登陆后不仅可以实现对图书的浏览、查询而且在相应的图书下面显示购物车,方便用户把图书放到自己的购物车上。主要功能如下:a重点推荐提供了无需客户注册就可以观看管理员为客户推荐的重点书籍,包括图书的封面作者价格等相关信息,而对登录用户则显示购买按钮方便用户将图书添加到自己的购物车车上。b新书上架提醒顾客网上书店新到的图书,同样客户可以查看到书籍的相关信息,对登录用户显示购买按钮。c图书分类浏览功能给客户提供了分类别查看图书的一种简介途径。这项功能可以满足那些需要某类图书,但是读者又不知道自己确切需要的书目。d销售排行榜为顾客提供了解利云网上书店销售图书的情况,对客户具有一定的指导价值。网上调查主要通过用户对自己所需类型图书的投票,为书店经理提供进货参考。投票的结果对所用用户是公开的,结果分别用表格和柱状图例表示。这个模块的功能简单,也不是整个系统的重点,但是尽量使显示部分的界面美观大方。购物车模块主要负责存放用户所购买的图书,具体包括添加至购物车,主要实现当登录用户查看到自己所需图书的时候,将其添加到自己的购物车上;查看购物车,实现用户对自己购物车中物品的查询;从购物车移除图书负责从购物车中移除自己不想购买的书籍;清空购物车功能使购物车一次清空。需要注意的是设计时除了在购物车中实现购物车中图书数量的修改和清空功能还要建立继续购书和结账的超链接,方便用户使用。收银台模块的设计虽然简单,但是却是利云网上书店设计中较为重要的模块。模块的主要功能包括填写订单信息和显示购书结果。会员管理模块提供了会员注册、会员登陆、会员资料的修改功能。订单查询模块主要的作用是方便用户查询自己所有订单的功能,但是用户不能对这些订单进行具体的操作,保证了订单的唯一和确定性。图书管理模块是利云网上书店后台的核心模块,主要的功能包括:查看图书信息、添加图书信息、修改图书信息、删除图书信息。查看图书信息时所有的图书将以表格的形式,界面简介大方。添加图书信息,主要负责管理员登录利云网上书店后台后向书店添加图书,在添加图书的时候,将会给列出图书的主要信息,管理员添好以后,当用户在前台登陆后将会查看到这些图书,此外在这个界面上还设有推荐选项卡和新书选项卡,当管理员选中推荐是,将会在网站首页的推荐栏里展出,选择新书时,图书将会在首页的新书栏里出现。修改图书信息,由于图书号的内容是出版是确定的唯一号码,所以此项不可改动。用户管理模块是管理员对所用用户管理的一个平台。主要功能有查看用户信息和冻结解冻用户,这个模块的设计相对来说比较容易。本科毕业设计第10页共35页公告管理提供查看公告信息、添加公告信息、删除公告信息的能力。管理员添加的公告将会在前台的公告栏里展出,信息将以滚动的方式进行。投票管理模块提供了:浏览投票项目、添加投票项目、删除投票项目的功能。这些功能是是书店经理更容易了解用户的需求,有助于合理进货结构。3.4系统实施环境该系统至少需要一台主机作为服务器,并且该主机要以独立的IP接入互联网。如果需要的话,可以为此IP申请域名绑定。具体系统需求如下:aWindowsXP或Windows2000bSQLServer2000SP4或更高版本的数据库服务器4概要设计4.1系统功能图根据前期的分析和客户的需求,利云网上书店的前台主要包括重点推荐展台、新书上架、图书分类浏览、销售排行榜、网上调查、查看调查结果、添加至购物车、查看购物车、从购物车中移除图书、清空购物车、填写订单信息、购书结账、会员注册、会员登录、会员资料修改、订单查询模块构成。利云网上书店前台功能结构如图4.1所示。图4.1前台功能结构图网上书店的后台模块主要包括查看图书信息、添加图书信息、修改图书信息、删除图书信息、查看用户信息、冻结解冻用户、查看订单信息、执行订单、查看公告信息、添加公告信息、删除公告信息、浏览投票项目、添加投票项目、删除投票项目、退出后台管理。网上书店的后台功能结构如图4.2所示。图4.2后台功能结构图4.2系统结构设计本系统将搭建在B/S结构的基础之上,系统将首先由用户向WebServer发出请求,而WebServer则将请求交给Servlet进行处理,Servlet根据请求的类型调用相应的JavaBean业务组件来进行操作,业务处理将在JavaBean组件中进行,主要包括对数据库的存取。JavaBean处理结束之后将结果返回给Servlet,这时,Servlet就可以根据结果将相应的JSP页面返回给用户。在这样的结构中,JSP页面负责了前台显示,也就是视图(View)层,Servlet扮演了控制器(Controllor)的角色,JavaBean则是业务处理组件模型(Modal)。这样的设计使得整个系统的结构显得清晰,每个层负责自己相应的功能处理,而对超出自己能力范围之外的功能不作涉及。4.3数据库物理表结构根据需求分析中对利云网站功能的各方面做出的定义,设计了相应的数据库物理表结构,即数据库的物理模型。进行开发时,在SQLServer2000数据库服务器中应该严格按照此结构进行表之定义,而且一定要注意在设计的过程中,对各字段大小所做的限制。在名称为db_bookmange的数据库中,根据利云网上书店的需求建立相应的数据表。图书信息表tb_bookinfo用来保存图书详细信息。在表tb_bookinfo中共有十二个字段,其中字段newbook标识是否是新书,为1表示是新书,默认值是0,表示不推荐。字段commend标识是否在首页推荐该书,为1表示推荐,默认为0表示不推荐。表tb_bookinfo的设计结构如表4.1所示。表4.1图书信息表(tb_bookinfo)序号字段名称字段类型字段大小允许空字段说明1ISBNvarchar15图书的ISBN号2Booknamevarchar200图书名称3Typevarchar50图书类别的名称4publishervarchar100出版社的名称5Writervarchar100图书的作者6Introducetext16T图书的简介7Pricemoney8图书的定价8Pdatevarchar50T图书的出版日期9Covervarchar100T图书封面的文件名10INTimedatatime8图书信息录入时间11NewbookInt4标识是否为新书12commandint4T标识是否为推荐表4.2为是用户信息表(tb_Member,用来存放所有用户信息。具体字段的定义及其含义如下表所示(在freeze表示用户是否被冻结,为1表示已经被冻结,为0表示未被冻结。表4.2用户信息表(tb_Member)序号字段名称字段类型字段大小允许空字段说明1IDint4用户ID,主键;2usernamevarchar20用户名3TrueNamevarchar20用户的真实姓名4PassWordint20用户的密码5cityvarchar20用户所在城市6addressvarchar100用户居住的地址7postcodevarchar6用户的邮编8CardNOvarchar24T证件号码9CardTypevarchar20T证件类型10gradeint4T用户等级11Amountmoney6T消费金额12Telint4T用户电话号码13Emailvarchar100用户Email地址14Freezeint4T用户是否被冻结表4.3订单信息表(tb_Order用来保存订单的概要信息。在tb_Order中共有10个字段,其中OrderID为主键。各个字段的名称和含义如表所示。表4.3订单信息表(tb_Order)序号字段名称字段类型字段大小允许空字段说明1OrderIDbigint8订单号2bnumbersmallint2品种数3Truenamevarchar20用户真实姓名4addressvarchar100用户居住的地址5postcodevarchar6用户的邮编6addressvarchar100用户居住的地址7telint4用户电话号码8emailvarchar20用户Email地址9payvarchar20付款方式10carryvarchar8运送方式11rebatefloat8表示折扣12OrderDatesmalldateis4订单日期13Bzvarchar200T备注信息14enforeint4T订单是否被执行表4.4订单信息明细表(tb_order_detail用来保存订单的明细信息。其中各个字段都不能为空。订单明细信息编号ID为主键。其他各字段名称和其表示的含义如下图所示。表4.4订单信息明细表(tb_order_detail序号字段名称字段类型字段大小允许空字段说明1IDbigint8订单明细信息编号2orderIDbigint8订单号3ISBNvarchar20图书ISBN号4pricemoney8图书单价5numberint4购买的图书数量表4.5为折扣信息表(tb_rebate,主要用来保存折扣信息。为了安全,管理员必须修改数据库中tb_rebate表的内容,方能改变各个级别的用户相对应的打折比例。各个字段名称及其表示如表4.5所示。表4.5折扣信息表(tb_rebate序号字段名称字段类型字段大小允许空字段说明1gradevarchar20用户的等级2Amoutmoney8消费金额3rebatefloat8打折比率表4.6为管理员信息表(tb_manager用来保存管理员的信息,其中自动编号ID是表的主键。各个字段名称含义具体如表。表4.6管理员信息表(tb_manager)序号字段名称字段类型字段大小允许空字段说明1IDint4自动编号2managervarchar30管理员名称3PWDvarchar30密码表4.7所示为公告信息表tb_BBS,用来保存管理员信息。字段名称含义如下。表4.7公告信息表(tb_BBS)序号字段名称字段类型字段大小允许空字段说明1IDint4自动编号2contentvarchar4000公告内容3INTimedatetime8T公告时间5详细设计根据在概要设计阶段产生的文档,接下来将要在详细设计阶段对各功能模块提供具体的设计方案,以便在之后的编码阶段能够加快效率、提高质量。在详细设计的过程中,将逐步实现前台和后台的功能,包括:图书展台、网上调查、购物车、收银台、会员管理、订单功能、图书管理、用户管理、订单管理、公告管理、投票管理、退出。在注重实现功能的同时,兼顾系统的美观和可维护性。5.1首页设计由于利云网上书店是一个网上电子商务系统,所以最终的目的是发布在互联网上,因此外观的设计对整个系统来说显得非常重要的,而利云网上书店的首页将是浏览者最先看到的欢迎式的页面,所以网站的首页极为重要,首页设计的好坏将直接影响到顾客的购买欲望。在利云网上书店的首页中用户不但可以在第一时间内掌握书店提供的优惠活动、公告信息还可以查看推荐图书、新上架的图书、销售排行榜等。在利云网上书店的设计过程中不仅要在首页实现各种功能的展示,而且要兼顾首页的美观,使网页做到功能完善,页面简洁大方。在前面的需求分析中,已经对主页的要求有了一个大概的说明,而在此处,就要全方位地开始设计该系统的首页了。a在页面的布局上由于利云网上书店的前后台功能模块较多,所以决定书店的后台将放到一个独立的页面上。而在首页的底部提供一个后台管理员的入口,管理员可以通过正确的输入用户名和密码来登录到利云书店的网站后台。在成功解决了网站后台登录的问题后首页主要区域用来设计前台的功能。同众多网站一样,利云网上书店把前台的主菜单放在首页的顶部。因为红色象征这激情而我们的用户主要是充满理想的知识青年,所以接下来的欢迎横幅是以红色为基调的欢迎图片。在做完网页顶部设计以后,剩下的版块留给用户登录、图书展示、网上调查等模块。为了便于规划将余下的空间分为左中右三部分。左部分为普通用户登录的入口,在普通用户的登录模块下为完善调查模块;在页面的中部为重点推荐图书展示部分;右部分的网页为新书上架和销售排行榜。b由于系统面向的用户为非计算机专业用户,所以用户不可能了解JSP网站运行的原理,这决定了在设计的过程中要努力做到界面简介,操作方便。使用户通过点击鼠标来完成大部分操作,体现了用户的友好。根据这些原则,并经过精心的设计,最终形成的网站美观大方的首页。首页的主要部分,如图5.1所示。图5.1网站首页5.2类的设计a由于系统的大部分功能都要涉及到对数据库的操作(Create、Retrieve、Update、Delete),所以数据库的设计无疑是利云网上书店整体模块设计中的重头戏,这里把数据库的连接和对数据的操作封装在一个名为connDB.java的类里面,对数据库中数据的操作主要包括查询操作、执行更新操作、关闭数据库连接等。这样使得工程的结构清晰,思路明了。b在开发的过程中经常需要考虑中文的乱码问题、过滤一些特殊的字符(如空格、null值等等和显示文本中的回车换行、空格。这个功能通常需要编写一个独立的JavaBean完成。在利云网上书店的开发过程中专门设计了处理此类问题的类“chStr.java”。5.3重点推荐展台的实现在网站前台的居中位置,分栏列出了利云网上书店推荐的图书信息,主要包括图书的封面、名称、出版社、作者、定价信息等。同时设置了“添加至购物车”按钮和“查看”按钮。分别用于将图书添加至购物车和查看图书的详细信息。重点推荐的图书同图书的基本信息同时保存在图书信息表tb_bookinfo中,以字段commend标识,当commend字段的值为1时,代表图书是重点推荐的图书。查询重点推荐的图书的关键代码如下:<%ResultSetrs_book=connDB.executeQuery("select*fromtb_bookinfowherecommend=1";%>需要注意的是“添加至购物车”按钮只有在用户登录后才可显示出来,即“只有登录的用户才可以购买图书”。当用户单击“查看”按钮后可以查看图书的详细信息。实现这个功能的方法是:在“查看”按钮的onClick事件中,将页面连接到book_detail.jsp页面并传递相应的图书ISBN号,然后在显示详细信息页面中通过ISBN号进行检索即可。图书详细信息页面的运行结构如图5.2所示。图5.2图书详细页面5.4新书上架实现过程在前台页面中,单击“新书上架”超链接可以进入到新书上架页面newbook.jsp,在该页面中显示了全部的上架新书的重点信息,用户可以单击书名超链接查看图书的详细信息。新书上架的全部信息保存在图书信息表tb_bookinfo中,以字段newbook标识,当本科毕业设计第19页共35页newbook字段的值为1时,代表该图书为上架新书。上架新书同重点推荐一样,对于没有登录的用户“购买”按钮不可用,并给出提示语。新书上架的页面运行结果如图5.3所。图5.3新书上架页面上架新书信息保存在图书信息表tb_bookinfo中,以字段newbook标识,当newbook字段的值为1时,代表该图书为上架新书。上架图书的关键代码如下:<%ResultSetrs_newbook=connDB.executeQuery("selecttop5*fromtb_bookinfowherenewbook=1orderbyINTimedesc";%>5.5图书分类实现过程为了方便用户查询所需的图书信息,在网站中设置了图书分类显示模块。点击导航条中的“图书分类”超练接进入到图书分类显示页面,在该页面左侧的“图书分类列表”中类出了数据库中的全部图书类别,用户点击某类别则可以在右侧显示该类别的图书信息列表,单击书名可以查看相应的图书的详细信息。如果用户已经登录,还可以直接将图书添加到购物车中。图书分类显示的运行结果如图5.4所示。图5.4图书分类5.6用户管理实现的过程本科毕业设计第20页共35页用户管理主要包括用户的注册、用户登录、用户修改资料,由于用户修改资料比较简单所以这里主要介绍一下用户注册和用户登录的实现。a用户注册为了统一管理,利云网上书店规定只有会员用户才可以购买图书。所以要想购买图书的新用户必须先进行注册。用户的注册入口在网站首页的左边。用户单击“注册”按钮进入到用户注册页面,网站要求用户名必须唯一,为了方便用户注册在用户注册页面设置了“检测用户名”的超连接用户可以检测自己的用户名是否已经被注册。该页面的运行结果如图5.5所示。图5.5用户注册运行结果b用户登录用户登录窗口设置在首页的左侧,当用户在登录窗口中输入用户名和密码并单击“登录”按钮后,系统将对输入的用户名和密码进行验证,如果用户输入的用户名存在并且冻结字段的值不为1,则判断用户输入的密码是否正确,如果密码也正确,则重新进入网页的主页显示登录用户的用户名、用户等级、“修改资料”按钮、“退出”按钮,否则登录失败,并给出提示信息。5.7购物车的实现过程购物车主要用来暂时保存挑选出来的图书,主要包括对所选图书的添加、查看购物车、单件图书购买数量的修改、清空购物车四个部分。用户登录后,单击图书展示展示中的购买按钮,可以将对应的图书添加到购物车上,购物车上将会保存图书的ISBN号、书名、单价、购买数量、每种图书的单价以及购物车内全部图书的合计金额。查看购物车页面时,单击退回图标可以从购物车中移去指定图书;在数量文本框中输入购买数量后,单击“修改数量”超链接可以修改指定图书的购买数量;单击“清空购物车”超链接,将退回购物车中的全部图书;如果用户确认购买当前购物车中的全部图书,可以单击“去收银台结账”超链接,进行订单处理。a添加至购物车添加至购物车页cart_add.jsp主要用于将图书信息暂存到购物车中。在购物车的设计过程中采用了Vector类型的变量cart来存储购物数据,这些数据被保存在session中。将图书信息添加至购物车时有两种情况。当cart为空时,也就是当用户每次向购物车添加1本书时,都要新建一个cart,然后将图书信息保存到cart中;当cart不是空时,说明购物车中已经保存了已经选购的书籍,这时不需要新建一个cart,只需要直接向里面加入图书信息即可。如果书籍是重复的,只要修改cart中的图书数量。添加购物车的关键代码如下://当cart中已经存在所添加的书籍时,只将数量加1。bookitem.number++;cart.setElementAt(bookitem,i;Flag=false;}//将cart保存到session中。session.setAttribute(“cart”,cartb查看购物车为了方便随时查看购物情况,在网站的首页的导航条中加入了查看购物车的超连接,通过查看购物车可以将用户放入购物车中的书图信息显示出来。查看购物车的运行结果如图5.6所示。图5.6查看购物车在查看购物车页面cart_see.jsp的顶部首先需要判断购物车是否为空,如果为空将页面跳转到购物车为空页面cart_null.jsp,否则显示购物车信息。c修改购物车中指定图书的购买数量购物车中还要加入修改指定图书购买数量的功能。在购物车中由于书的数量被存放在文本框中,用户只需在某种图书后面的文本框中输入相应的数量,然后将光标的焦点移到其他位置上就可以修改要提交表单的数量。d从购物车中移去指定图书在设计购物车时实现从购物车中移除指定图书是通过Vector类的removeElementAt(intindex方法非常方便。关键代码:cart.removeElementAt(id;e清空购物车清空购物车的方法很简单,只需将保存在Session中的购物车信息清空即可。清空购物车页面cart_clear.jsp的关键代码如下:<%session.removeAttribute(“cart”;response.sendRedirect(“cart_null.jsp”;%>5.8生成订单的过程生成订单是网上购物车的最终目的,前面所有功能都是为最后生成一个用户满意的订单做准备的。生成订单时不仅要保存用户订单中所购买的图书信息和订单信息,在同时还要返回一个可供用户随时查询的订单号。用户单击查看购物车页面中的“去收银台结账”超链接时就会进入到收银台页面填写订单信息,在该页面中系统会根据登录的用本科毕业设计第23页共35页户名自动填写用户的基本信息,除了用户名不可更改,其他的内容都可以有用户修改,收银台的运行页面如图5.7所示。图5.7收银台用户在收银台页面填写订单信息后,单击“提交”按钮将进入到保存订单页面cart_order.jsp将订单信息分别保存到订单主表和订单明细表中。由于网上书店中为用户设置了会员等级,所以在保存订单时还需要取出用户的等级,并根据会员等级打与之相符合的折扣,最后如果用户消费金额达到一定的数量时会员会进级,如果已经达到最高级别就不需要进级了。确定给每一级别打折的比例,需要管理员直接进入的数据库,修改数据库中的表tb_rebate中相应字段的值。5.9订单查询的实现过程订单查询页面是为了用户查询订单信息及其执行状态而设定的。用户成功登录后,单击网站顶端导航条中的“订单查询”超链接,就可以进入到订单查询页面,这个页面中列出了当前用户的全部订单及其信息列表。订单查询的页面如图5.8所示。查询订单概要信息主要从tb_order表中根据当前的登录用户名获取的订单信息。关键代码如下:ResultSetrs=connDB.executeQuery(“select”*fromtb_orderwhereusername=“”+(stringsession.getAttribute(“UserName”+“”;本科毕业设计第24页共35页图5.8订单查询查询订单概要信息主要从订单主表tb_order中根据当前登录的用户名获取订单信息。在订单查询页面中,单击“订单编号”可以进入到订单详细信息的查询。在订单详细查询中列出了订单号、用户地址、用户邮编、用户电话以及用户所购图书的编号、名称、数量、价格等一系列信息,向用户提供了一种参看核实订单的功能。订单详细查询的运行页面如图5.9所示。图5.9详细订单查询本科毕业设计第25页共35页5.10后台登录实现过程在网站前台首页的底部提供了后台管理员登录的入口,登录是管理员输入正确的用户名和密码登录到后台。在登录时,如果用户名或密码为空,系统将通过JavaScript进行判断并给予提示信息。为了网站的安全,防止一些不法分子的故意破坏在网站的后台设计了用于检验用户身份的文件safe.jsp。当用户没有正确登录的时候弹出“您还没有登录”的提示对话框。确定后退出后台页面回到首页。后台登录页面的运行结果如图5.10所示。图5.10后台登录窗口5.11图书管理实现的过程图书管理模块主要实现了对图书信息的管理,主要包括分页显示图书信息,添加图书信息,修改图书信息,删除图书信息等。a分页显示图书信息分页显示图书信息是图书管理的首页,主要是将数据表中的图书信息以列表的方式显示,除此之外还要添加修改和删除的超链接,方便后台对图书的修改和删除。在添加图书信息栏的左半部是专门为用户提供的提示信息,这样做使得网站更人性化。分页显示图书信息的页面运行结果如图5.11所示。在分页显示图书信息页面中主要显示图书的ISBN号、图书名称、出版社、是否是新书、是否是推荐的书等信息,图书的其他信息,可以通过单击图书名称超链接进入图书详细页面的查询。实现图书查询的代码比较简单,这里不做专门的介绍。图5.11利云网上书店后台首页b添加图书信息在图书管理首页中单击“添加图书信息”超链接即可进入到添加图书信息页面。添加图书信息页面主要用于向数据库中添加新的图书信息。在添加图书信息时,为了防止用户输入空的不真实的信息,利云网上书店采用了JavaScript编写自定义函数检测用户输入的图书信息。此外为了保证图书信息的唯一性,在保存图书信息前需要先根据用户输入的图书ISBN号判断图书信息是否存在,如果存在则给予提示信息并返回,否者将图书信息保存到数据表中。添加图书信息页面的运行结果如图5.12。保存图书信息页面manage\book_add_deal.jsp的关键代码如下:ResultSetrs=connDB.executeQuery(“select*fromtb_bookinfowhere“”+ISBN=+“””;If(rs.next({Out.println(“scriptlanguage=‟javascript‟>alert(„该图书信息已经添加!‟;History.back(-1;</script>”;图5.12添加图书的运行结果c修改图书信息在图书管理首页中单击想要修改的图书信息后面的修改图标就可以进入到修改图书信息页面。修改图书页面主要用于修改指定图书的基本信息。修改图书信息的运行结果如图5.13图5.13图书修改信息页面运行结果d删除图书信息在图书管理首页中单击想要删除的图书信息后面的图标进入到删除图书信息页面。删除图书信息页面主要用于删除指定图书的基本信息。删除图书信息页面的运行结果同修改图书信息页面的运行结果相近。在编写删除图书信息页面book_del.jsp时,首先需要判断从图书管理页面传递的参数ISBN是否为空值,如果为空值则说明用户不是正常操作,需要将页面重定向到图书管理首页,否则再根据参数ISBN查询图书的基本信息并显示相应的表单元素。5.12用户管理模块的实现单击后台导航条中的“用户管理”超链接就能进入到用户信息管理首页。对于用户的管理主要是查看用户的基本信息和对于不良用户的冻结和解冻。这些信息普通用户是无权查看的。用户管理的首页运行结果如图5.14所示。图5.14用户信息管理页面运行结果5.13订单管理模块的实现单击后台导航条中的“订单管理”超链接即可进入到订单信息管理的首页。订单管理首页主要实现分页显示订单概要信息、起执行订单和查看订单信息,分页显示订单概要信息的实现过程同分页显示图书信息的实现类似,所不同的是在订单列表的执行列中需要根据订单的状态显示不同的信息,如果订单已被执行则显示“执行”等文字,否则提供本科毕业设计第29页共35页执行订单的图标。此外管理员无权对已经存在的订单进行修改操作。订单管理页面的运行结果如图5.15所示。图5.15订单管理运行结果5.14公告管理实现过程单击后台导航条中的“公告管理”超连接进入到公告信息管理的首页。对于公告的管理主要是查看公告信息、添加公告信息、删除过时的公告信息,由于公告信息涉及到发布公告的时间,所以要及时修改公告信息。公告管理的运行结果如图5.16所示。图5.16公告运行结果5.15退出系统的实现网站后台对于整个网站的正常运行起着重要的重要。当网站管理员对网站维护工作本科毕业设计第30页共35页完成以后,必须推出系统,否则很容易被不法分子趁机进入,后果不堪设想。要想实现这个功能很简单只要单击“推出”超链接,连接到logout.jsp页面就可以了。Logout.jsp页面主要是将保存有管理员信息的Session变量清空,将页面重定向到网站首页前台即可。关键代码如下:session.invalidate(;response.sendRedirect(“index.jsp”;6运行效果检测系统编码完成之后,经过运行测试,整体安全性和易用性都表现良好,具体表现在如下几方面:a在第一次访问页面时需要一段时间的等待,这是由于JSP本身的“第一次进行编译”的机制决定的,在此之后,页面的访问速度就非常快了,排除网络方面的原因外,基本上发出请求后即刻就可以得到响应页面。b网站的后台登录页面中,当输入错误的用户名或密码时,点击登录按钮无法进入后台管理首页并弹出对话框,提示用户名或密码错误。当以正确的用户名和密码登录时,能够成功地登录到后台管理首页。c管理员登录到网站后台后,能够对图书的管理、用户管理、订单管理、公告管理、投票管理等模块进行数据的录入、删除、插入等操作。d用户通过注册可以成功的成为利云网上书店的会员,登录后可以修改自己的资料,查询书籍、购买书籍、查看订单等操作。e网站界面

温馨提示

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

评论

0/150

提交评论