文档库 最新最全的文档下载
当前位置:文档库 › 【最新版】网上书店系统正文毕业设计论文

【最新版】网上书店系统正文毕业设计论文

1 引言

传统书店往往要占用大量的空间,雇佣数量较多的工作人员同时也难以避免读者在购买图书时造成图书翻阅损耗等一系列费用,而与此同时随着互联网在中国的发展,我国网民已经超过了2亿,而其中绝大部分有是属于知识分子的青年人,无疑他们正是广大图书出版物的潜在消费者。当今网络所显现的超常信息量、无时空局限、传递快捷、操作灵活等优点吸引着越来越多的图书销售商把传统的书店移植到互联网上,从而形成了当今网上书店蓬勃发展的趋势。利云网上书店正是为了满足这种需求而研发的中小型电子商务系统

利云网上书店系统是基于BS模式的小型电子商务系统,能够满足中小型书店的网上售书需要。搭建利云网上书店极为简单只需要一台PC机,一根网线,即可进行网上交易。利云网上书店基本上满足了中小型书店的网上销售需求,其主要功能包括图书展示、网上调查、购物车、收银台、会员管理、订单查询、图书管理、用户管理、订单管理、公告管理、投票管理、退出功能。图书展示主要实现图书的重点推荐、新书上架图书分类查询、销售排行榜等功能;网上调查功能则提供了书店经理了解读者书籍的需求情况,进而引导订书的种类;购物车功能给每个用户建立了一个相对应的唯一存放选中书籍存放的空间;收银台提供了客户付账的功能,当顾客决定购买购物车里的书籍时,向收银台提交订单;会员管理为每一位注册用户提供了注册、登陆、修改自己注册信息的权利,例如当注册用户的联系方式和地址变动时用户可以通过此功能方便的修改自己的资料;订单查询功能为用户提供了查询自己订单的功能;后台的图书管理是为管理员提供修改、添加删除图书信息的功能;用户管理实现的功能有查看用户信息、消费总额、用户的解冻;订单管理主要负责查看用户的汇款执行情况;公告管理方便管理员向首页公告栏里添加网站公告;投票管理方便管理员向书店添加书店需要调查的书目或删除过期的书目;推出功能负责管理员的推出。利云网上书店的设计充分考虑了用户的视觉感

受,努力做到界面简单明了,功能相对完善。

后台开发充分考虑了使用软件的用户可能对计算机软件并不是很了解,所以在设计的过程中添加了许多必要的提示和说明。总之利云网上书店将以Java技术为基础,实现图书信息的发布、购物、用户管理、图书后台管理等一系列的功能,力争成为中小型书店网络销售的理想软件。

2 技术简介

利云网上书店所涉及的技术主要有以Java语言为核心的JSP(Java Server Pages)技术进行实现业务实现,后台的服务支撑部分为应用服务器Tomca5.0.28以及数据库服务器SQL Server 2000。以下将对主要技术作简明的介绍。

2.1 JA V A语言简介

Java是一种简单易用、完全面向对象、具有平台无关性且安全可靠的主要面向Internet的开发工具。自从1995年正式问世以来,Java的快速发展已经让整个Web世界发生了翻天覆地的变化。在早期,Java比较多的用在浏览器上,插入到网页中(即是Java Applet程序),成为最灵活、最强大的网页多媒体的载体,但由于Java虚拟机相对于个人电脑而言,有占用资源大,安全性相对较差等缺点,Applet逐渐的被后起之秀Flash所替代,但随着Java Servlet的推出,Java在电子商务方面开始崭露头角,最新的JSP(Java Server Page)技术的推出,更是让Java成为基于Web的应用程序的首选开发工具,目前的Java技术已成为所有大型电子商务项目的必然选择[1]。

2.2 JSP技术

JSP是“Java Server Pages”的缩写,可以解释为“基于Java的服务端动态页面技术”

[4]基于Java是JSP一切优秀品质的根本物质基础。因为Java是编译解释执行的,所以JSP也就摆脱了VBScript、Perl等脚本语言纯粹的解释执行带来的低效率问题。尽管在JSP中Java仍被称为脚本语言。因为Java是平台无关的,所以JSP是跨平台的。基于Java是JSP区别包含ASP(Active Server Pages)在内的其它服务端动态页面技术的重要特征。JSP是服务端技术,所以JSP文档要先经服务端翻译、解释、执行,才能得到客户端浏览器能识别的HTML文档。这是当前Web技术的潮流,是解决客户端浏览器兼容性问题的客观需要。服务端技术是JSP区别于JavaScript、VBScript等客

户端动态页面技术的重要牲。JSP是一种页面技术,而现在JSP只实现了HTTP (Hypertext Transfer Protocol)协议,只能应用于Web页面。这是JSP区别于Servlet 的重要牲。JSP是一种动态技术,这是JSP基于Java的自然延伸。在页面中引入程序设计语言的目的是正是为了实现动态交互。因此,JSP就是基于Java的服务端动态页面技术。

JSP技术让动态网面更易编写,功能更强,可移植性更好。概括起来,JSP的设计目标主要有以下几点:

a)一次编写,到处运行

JSP技术是完全的与平台无关的设计,包含它的动态网页与底层的服务组件设计。可以在任何平台下编写JSP网面并且在任何支持JSP的系统上执行。

也可建立自已的组件,并在JSP中使用。目前主要是JavaBean和Java Servlet,而它们都是跨平台的。

b)加强组件能力

JSP技术以Java的组件模型JavaBean为基础,加强了组件的使用能力。

这不但省去了一些开发时间,而且还可以将网页页面设计和商业分开,有助于快速开发和维护。

c)作为Java企业平台的门户

JSP高度整合了Java企业平台部分(Java专注于企业应用方面的平台技术)。可以利用Java的企业级API(Application Programming Interface)开发企业的各种需求系统,而使用JSP作为这些技术的前端。当需要升级应用程序时,只需升级组件与动态页面部分,而这些都存在于服务器上,所以修改服务器上的资源,客户端的显示即会跟着改变。

d)更容易建立动态页面

JSP就是用标准HTML语法混合自身语法标记,就是如此简单,不需要有使用Java、C++等程序设计语言的能力与经验。可以这么说,它的出现也正是要实现简单容易的开发页面的需要,否则它与Java Servlet相比没有任何存在的理由。

JSP2.0是对JSP1.2版本的升级,其中增加了一些有趣的新特性。JSP2.0的设计目标是使动态网页的设计、开发和维护更加容易,网页编写者不必懂得Java编程语言,也可以编写JSP网页。JSP2.0增加了一种称为SimpleTag的扩展机制来简化标签API

(Tag API)。JSP2.0引入的最主要的新特性包括[2]:

a) 引入简单表达式语言(EL,Expression Language),它用于JSP页面中的数据访问。这种表达式语言简化了JSP中数据访问的代码,不需要使用Java Script或者Java 表达式。

b) 引入创建自定义标签的新语法,该语法使用.tag和.tagx文件,这类文件可由开发人员或者网页作者编写。

c) 对XML语法做了实质性的改进,增加了新的标准文件扩展名(.tagx用于标签文件,.jspx用于JSP文件)。

2.3 Tomcat

Tomcat是一个免费的开源的Serlvet容器,它是Apache基金会的Jakarta项目中的一个核心项目,由Apache、Sun和其它一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet和Jsp规范总能在Tomcat中得到体现。

Tomcat服务器是在SUN公司的JSWDK(JavaServer Web DevelopmentKit,SUN 公司推出的小型ServletJSP调试工具)的基础上发展起来的一个优秀的Java Web应用容器。Tomcat已经被JavaWorld杂志的编辑选为2001年度最具创新力的Java产品,同时它又是SUN公司官方推荐的ServletJSP容器[14]。作为一个开放源码的软件,Tomcat 得到了开放源码志愿者的广泛支持,它可以和目前大部分主流HTTP服务器一起工作(如IIS和Apache服务器),而且运行稳定、可靠、效率高。同时,它还提供了作为Web服务器的一些特有功能,如Tomcat管理和控制平台、安全域管理和Tomcat阀等。

作为Servlet容器,Tomcat负责处理客户请求,把请求传送给Servlet并把结果返回给客户。Servlet容器与Servlet之间的接口是由Java Servlet API定义的,在Java Servlet API中定义了Servlet的各种方法,这些方法在Servlet生命周期的不同阶段被Servlet容器调用;Servlet API还定义了Servlet容器传递给Servlet的对象类,如请求对象ServletRequest和响应对象ServletResponse。

当客户请求访问某个Servlet时,Servlet容器将创建一个ServletRequest对象和ServletResponse对象。在ServletRequest对象中封装了客户请求信息,然后Servlet容器把ServletRequest对象和ServletResponse对象付给客户所请求的Servlet。Servlet把响应结果写到ServletResponse中,然后Servlet窗口把响应结果传给客户。

Tomcat已经为Servlet和JSP提供了强大的支持,Servlet和JSP最新技术规范都

可以在Tomcat中及时地得到实现。Tomcat应用已经成为目前开发企业Java Web应用的最佳选择之一。

2.4 SQL Server 2000

SQL Server 2000是微软推出的一个大型的关系型数据库管理系统。作为Windows 数据库中出类拔萃的成员,SQL Server 2000能够满足各种类型的企业客户和独立软件供应商构建商业应用程序的需要。SQL Server的可伸缩性既可以适应很小的兆字节个人数据库,也可以适应由数以万记用户使用的巨大的太字节数据库[15]。

SQL Server 2000是一种客户机服务器模式的数据库管理系统,这种体系结构把所有的工作负荷分解成在服务器机器上的任务和在客户机机器上的任务,有效地利用了资源,减轻了服务器的压力。

Microsoft SQL Server 2000能够提供特大系统所需要的数据库服务。在大型客户服务器系统中,成千的用户可能同时连接一个SQL Server 2000实例,SQL Server 2000有强大的保护功能来处理这种情况。SQL Server 2000也可以有效地为多个用户分配可用的资源,如内在、网络带宽和磁盘IO等[16]。

非常大的Internet站点能够将它们的数据在多个服务器间划分,将处理负担分布到许多计算机上,且允许站点为大量用户服务。

多实例SQL Server 2000可以在单台计算机上运行。例如,为许多其他组织提供数据库服务的组织可以为每个用户组织运行一个单独的SQL Server 2000实例,所有实例都在一台计算机上。这样使得每个用户组织的数据相互独立,而服务组织只管理一个服务器计算机来减少开支。

SQL Server 2000应用程序也可以像SQL Server 2000一样运行在同一台计算机上。应用程序使用Windows Interprocess Communications(IPC)组件,如共享内存来连接SQL Server 2000,而不是网络。这样SQL Server 2000就可以在小系统上使用,此时应用程序必须在本地保存它的数据。

SQL Server 2000还支持对多节点群集的规模扩充(Scale Out),即把一个巨型数据库分区到一个服务器群集中,但是对于用户来说,整个数据库的存储和访问就像是对待一个单独的数据库那样。通过使用这种扩充规模的伸缩样式,SQL Server2000达到了任何数据库系统在任何平台上所能达到的性能。故障切换和恢复这两种技术内置到了SQL Server系统中,使得SQL Server具有了高度的可用性[16]。

2.5 Eclipse

Eclipse最初是IBM公司的一个软件产品,2001年11月其1.0版正式发布。面世之初,Eclipse还很不起眼,并饱受业界批评。所谓万事开头难,软件的初版一般都比较稚嫩。到2003年3月,Eclipse发布了它的2.1版,立刻引起了轰动,下载的人蜂拥而至,导致它的下载服务器都因超载而拥塞了。

现在,IBM已将投入巨资开发的Eclipse作为一个开源项目捐献给了开源组织https://www.wendangku.net/doc/9b9575497.html,,Eclipse出色而有独创性的平台,吸引了众多大公司加入到Eclipse这个平台的发展上来,这样的公司有HP、Oracle、Sybase、Borland、RedHat、Rational Software、SuSE、Together Soft等。

最初Eclipse的开发人员,大部分都来自于当年与JBuilder齐名的Visual Age项目组,现在虽然IBM已将Eclipse捐献给了开源组织,但仍由IBM的子公司OTI(主要从事Eclipse开发的人)继续领导着Eclipse的开发[11]。

Eclipse是一种通用工具平台——普遍适用的开放式扩展IDE(Integrated Develop Environment)。它拥有功能丰富的开发环境,并允许开发者高效地创建一些能够无缝集成到Eclipse平台中的工具。

Eclipse的设计思想是:一切皆为插件。Eclipse的核心是非常小的,其它所有的功能都以插件的形式附加到这个Eclipse核心之上。这样的功能插件包括它的图形API(称为SWTJFace)、Java开发环境插件、插件开发环境等。Eclipse还对这些插件的协同工作提供了良好的支持,不仅安装简单,而且还可以无缝结合。

Eclipse对这些插件是动态载入动态调用的。所谓动态就是指,Eclipse启动后要真正用到这个插件时,它才会被调入内存。当插件不再被使用时,它就会被在适当的时候清除出内存。因此即使装了一大堆插件在Eclipse里,也不必担心某些不常用的插件白白占着内存。

此外,Eclipse有极为强大的集成开发环境,它集成了CVS,JUnit和Ant,并且强大的代码重构功能独步江湖无人能及。因为Eclipse的安装包集成了Java开发环境的插件JDT,所以Eclipse默认是一个和JBuilder类似的Java开发工具。但Eclipse不仅仅只是Java的开发工具,我们只需要装上CC++的插件,就可以把它当作一个CC++开发工具来使用。只要有相应的插件,Eclipse也可以用做其他语言的开发工具。Eclipse的这种插件扩展机制是其最突出的特点和优势,它使Eclipse提升到了一个平台的高度。

我们可以利用Eclipse的插件开发环境来开发自己的Eclipse插件,随己所需地扩展Eclipse的功能。

3 需求分析

3.1 项目背景

网上书店是一种应用于图书销售领域的动态网站。近年来随电子商务在图书销售领域广泛应用,网上书店如雨后春笋在全国迅速展开。与传统的书店相比,网上书店既可以避免书目订货的局限和盲目,又可以克服看样订货投入大,费用高,管理难的不足,而且网上选择范围广能直观看样,可浏览内容,可随时添订,结算及时,快捷方便,周转高速。这些优势是其它交易方式难以达到的。图书网上交易是图书销售领域未来发展之必然,也是出版发行业摆脱困境,建立新的流通渠道,繁荣出版,繁荣市场的必由之路。目前当当、科利华、江苏考试书店等网上书店都在网上市场竞争中争的自己的一席之地。然而中小型的书店开展网上交易的数量,却显的凤毛麟角。一方面:中小型的书店向大型书店发展受到了资金、管理水平的限制;另一方面当今的互联网技术的发展赋予中小型图书销售商开展灵活快捷售书的机遇。

利云网上书店正是基于这种市场潜力,面向全国中小型图书销售商而开发的,力争为全国的中小型书店提供一款功能完善、界面友好、性能可靠的网上销售软件。

3.2 可行性分析

利云网上书店同其他电子商务系统采用BS结构的开发模式,以此保证了用户使用系统的灵活性,顾客只要使用一台可以访问Internet的电脑就可以登录到系统中进行操作,无需客户端软件支持,这样方便了图书潜在的消费者快速浏览利云网上书店提供的图书。

利云网上书店采用JSP技术为基础进行设计开发。首先,由于Java技术的平台无关性,决定了本系统的强大的可移植性,这样可以不对客户作过多的限制,无论是Windows平台还是UNIX、Linux都可以无障碍地进行部署发布。在技术上,JSP作为SUN公司在市场上的主打品牌,经过多年的考验已经非常成熟,使用它作为技术基础对本系统来说没有任何问题,而且JSP可以将前台用户接口与后台业务处理进行很好的分离,以此保证了界面开发和后台实现互不干预,可维护性强。同时,JSP技术相对

比较简单,开发速度快,可以提高开发效率,又因为其基于Java,本身又可以扩展使用任何的Java框架,所以它在功能上也是完全能够胜任本次开发任务的。

在应用服务器的选择上,Tomcat是Apache公司的一款出色的Java Web Server,它是在SUN公司的JSWDK(Java Server Web Development Kit, SUN公司推出的小型ServletJSP调试工具)的基础上发展起来的一个优秀的Java Web应用容器,虽然小巧但是功能强大,而且反应速度快、运行稳定可靠、使用简单,如果需要还可以和当前大多数主流应用服务器集成到一起,可扩展性好,是部署中小型应用的理想容器,此外,它还是一款免费的软件,所以在很大程度上降低了成本。使用它来部署本系统,是一个理想的选择。

3.3 功能分析

利云网上书店提供前台图书前台和后台图书管理两大功能。顾客通过登陆利云网上书店的主页面,浏览和各种类型查询书店存书,然后客户通过网上自己的注册用户名、登陆、修改资料,在网上确认自己的购买所需图书,并把这些图书添加到购物车上。最后填写订单购书结账和订单的查询。利云网上后台管理主要是管理员通过登陆对图书和前台用户信息的管理,包括查看、添加、修改、删除图书信息,查看用户信息和冻结不良的用户等功能。

3.3.1 图书展示模块

图书展示模块主要实现用户浏览到利云网上书店主页面的时候,用户对自己感兴趣书籍的查询和对书店所存书籍的了解。当注册用户登陆后不仅可以实现对图书的浏览、查询而且在相应的图书下面显示购物车,方便用户把图书放到自己的购物车上。主要功能如下:

a) 重点推荐提供了无需客户注册就可以观看管理员为客户推荐的重点书籍,包括图书的封面作者价格等相关信息,而对登录用户则显示购买按钮方便用户将图书添加到自己的购物车车上。

b) 新书上架提醒顾客网上书店新到的图书,同样客户可以查看到书籍的相关信息,对登录用户显示购买按钮。

c) 图书分类浏览功能给客户提供了分类别查看图书的一种简介途径。这项功能可以满足那些需要某类图书,但是读者又不知道自己确切需要的书目。

d) 销售排行榜为顾客提供了解利云网上书店销售图书的情况,对客户具有一定的

指导价值。

3.3.2 网上调查模块

网上调查主要通过用户对自己所需类型图书的投票,为书店经理提供进货参考。投票的结果对所用用户是公开的,结果分别用表格和柱状图例表示。这个模块的功能简单,也不是整个系统的重点,但是尽量使显示部分的界面美观大方。

3.3.3 购物车模块

购物车模块主要负责存放用户所购买的图书,具体包括添加至购物车,主要实现当登录用户查看到自己所需图书的时候,将其添加到自己的购物车上;查看购物车,实现用户对自己购物车中物品的查询;从购物车移除图书负责从购物车中移除自己不想购买的书籍;清空购物车功能使购物车一次清空。需要注意的是设计时除了在购物车中实现购物车中图书数量的修改和清空功能还要建立继续购书和结账的超链接,方便用户使用。

3.3.4 收银台模块

收银台模块的设计虽然简单,但是却是利云网上书店设计中较为重要的模块。模块的主要功能包括填写订单信息和显示购书结果。

3.3.5 会员管理模块

会员管理模块提供了会员注册、会员登陆、会员资料的修改功能。

3.3.6 订单查询模块

订单查询模块主要的作用是方便用户查询自己所有订单的功能,但是用户不能对这些订单进行具体的操作,保证了订单的唯一和确定性。

3.3.7 图书管理模块

图书管理模块是利云网上书店后台的核心模块,主要的功能包括:查看图书信息、添加图书信息、修改图书信息、删除图书信息。查看图书信息时所有的图书将以表格的形式,界面简介大方。添加图书信息,主要负责管理员登录利云网上书店后台后向书店添加图书,在添加图书的时候,将会给列出图书的主要信息,管理员添好以后,当用户在前台登陆后将会查看到这些图书,此外在这个界面上还设有推荐选项卡和新书选项卡,当管理员选中推荐是,将会在网站首页的推荐栏里展出,选择新书时,图书将会在首页的新书栏里出现。修改图书信息,由于图书号的内容是出版是确定的唯一号码,所以此项不可改动。

3.3.8 用户管理模块

用户管理模块是管理员对所用用户管理的一个平台。主要功能有查看用户信息和冻结解冻用户,这个模块的设计相对来说比较容易。

3.3.9 订单的管理

订单的管理主要能够提供管理员查看订单信息和根据用户的汇款支付情况执行订单。

3.3.9 公告管理模块

公告管理提供查看公告信息、添加公告信息、删除公告信息的能力。管理员添加的公告将会在前台的公告栏里展出,信息将以滚动的方式进行。

3.3.10 投票管理模块

投票管理模块提供了:浏览投票项目、添加投票项目、删除投票项目的功能。这些功能是是书店经理更容易了解用户的需求,有助于合理进货结构。

3.4 系统实施环境

该系统至少需要一台主机作为服务器,并且该主机要以独立的IP接入互联网。如果需要的话,可以为此IP申请域名绑定。具体系统需求如下:

a)Windows XP 或Windows 2000

b)SQL Server 2000 SP4或更高版本的数据库服务器

c)JRE 1.4.2_03 或更高版本的Java运行时环境

d)Tomcat 5.0.28 或更高版本的应用服务器

4 概要设计

4.1 系统功能图

根据前期的分析和客户的需求,利云网上书店的前台主要包括重点推荐展台、新书上架、图书分类浏览、销售排行榜、网上调查、查看调查结果、添加至购物车、查看购物车、从购物车中移除图书、清空购物车、填写订单信息、购书结账、会员注册、会员登录、会员资料修改、订单查询模块构成。利云网上书店前台功能结构如图4.1所示。

图4.1 前台功能结构图

网上书店的后台模块主要包括查看图书信息、添加图书信息、修改图书信息、删除图书信息、查看用户信息、冻结解冻用户、查看订单信息、执行订单、查看公告信息、添加公告信息、删除公告信息、浏览投票项目、添加投票项目、删除投票项目、退出后台管理。网上书店的后台功能结构如图4.2所示。

图4.2 后台功能结构图

4.2 系统结构设计

本系统将搭建在BS结构的基础之上,系统将首先由用户向Web Server发出请求,而Web Server则将请求交给Servlet进行处理,Servlet根据请求的类型调用相应的JavaBean业务组件来进行操作,业务处理将在JavaBean组件中进行,主要包括对数据库的存取。JavaBean处理结束之后将结果返回给Servlet,这时,Servlet就可以根据结果将相应的JSP页面返回给用户。在这样的结构中,JSP页面负责了前台显示,也就是

视图(View)层,Servlet扮演了控制器(Controllor)的角色,JavaBean则是业务处理组件模型(Modal)。这样的设计使得整个系统的结构显得清晰,每个层负责自己相应的功能处理,而对超出自己能力范围之外的功能不作涉及。

4.3 数据库物理表结构

根据需求分析中对利云网站功能的各方面做出的定义,设计了相应的数据库物理表结构,即数据库的物理模型。进行开发时,在SQL Server 2000数据库服务器中应该严格按照此结构进行表之定义,而且一定要注意在设计的过程中,对各字段大小所做的限制。

在名称为db_bookmange的数据库中,根据利云网上书店的需求建立相应的数据表。

图书信息表tb_bookinfo用来保存图书详细信息。在表tb_bookinfo中共有十二个字段,其中字段newbook标识是否是新书,为1表示是新书,默认值是0,表示不推荐。字段commend标识是否在首页推荐该书,为1表示推荐,默认为0表示不推荐。表tb_bookinfo的设计结构如表4.1所示。

表4.1 图书信息表(tb_bookinfo)

序号字段名称字段类型字段大小允许空字段说明

1 ISBN varchar 15 图书的ISBN号

2 Bookname varchar 200 图书名称

3 Type varchar 50 图书类别的名称

4 publisher varchar 100 出版社的名称

5 Writer varchar 100 图书的作者

6 Introduce text 16 T 图书的简介

7 Price money 8 图书的定价

8 Pdate varchar 50 T 图书的出版日期

9 Cover varchar 100 T 图书封面的文件名

10 INTime datatime 8 图书信息录入时间

11 Newbook Int 4 标识是否为新书

12 command int 4 T 标识是否为推荐

表4.2为是用户信息表(tb_Member),用来存放所有用户信息。具体字段的定义及

其含义如下表所示(在freeze表示用户是否被冻结,为1表示已经被冻结,为0表示未被冻结)。

表4.2 用户信息表(tb_Member)

序号字段名称字段类型字段大小允许空字段说明

1 ID int 4 用户ID,主键;

2 username varchar 20 用户名

3 TrueName varchar 20 用户的真实姓名

4 PassWord int 20 用户的密码

5 city varchar 20 用户所在城市

6 address varchar 100 用户居住的地址

7 postcode varchar 6 用户的邮编

8 CardNO varchar 24 T 证件号码

9 CardType varchar 20 T 证件类型

10 grade int 4 T 用户等级

11 Amount money 6 T 消费金额

12 Tel int 4 T 用户电话号码

13 Email varchar 100 用户Email地址

14 Freeze int 4 T 用户是否被冻结

表4.3订单信息表(tb_Order)用来保存订单的概要信息。在tb_Order中共有10个字段,其中OrderID为主键。各个字段的名称和含义如表所示。

表4.3 订单信息表(tb_Order)

序号字段名称字段类型字段大小允许空字段说明

1 OrderID bigint 8 订单号

2 bnumber smallint 2 品种数

3 Truename varchar 20 用户真实姓名

4 address varchar 100 用户居住的地址

5 postcode varchar

6 用户的邮编

6 address varchar 100 用户居住的地址

7 tel int 4 用户电话号码

8 email varchar 20 用户Email地址

9 pay varchar 20 付款方式

10 carry varchar 8 运送方式

11 rebate float 8 表示折扣

12 OrderDate smalldateis 4 订单日期

13 Bz varchar 200 T 备注信息

14 enfore int 4 T 订单是否被执行

表4.4订单信息明细表(tb_order_detail)用来保存订单的明细信息。其中各个字段都不能为空。订单明细信息编号ID为主键。其他各字段名称和其表示的含义如下图所示。

表4.4 订单信息明细表(tb_order_detail)

序号字段名称字段类型字段大小允许空字段说明

1 ID bigint 8 订单明细信息编号号

2 orderID bigint 8 订单号

3 ISBN varchar 20 图书ISBN号

4 price money 8 图书单价

5 number int 4 购买的图书数量

表4.5为折扣信息表(tb_rebate),主要用来保存折扣信息。为了安全,管理员必须修改数据库中tb_rebate表的内容,方能改变各个级别的用户相对应的打折比例。各个字段名称及其表示如表4.5所示。

表4.5 折扣信息表(tb_rebate)

序号字段名称字段类型字段大小允许空字段说明

1 grade varchar 20 用户的等级

2 Amout money 8 消费金额

3 rebate float 8 打折比率

表4.6为管理员信息表(tb_manager)用来保存管理员的信息,其中自动编号ID是表的主键。各个字段名称含义具体如表。

表4.6 管理员信息表(tb_manager)

序号字段名称字段类型字段大小允许空字段说明

1 ID int 4 自动编号

2 manager varchar 30 管理员名称

3 PWD varchar 30 密码

表4.7所示为公告信息表tb_BBS,用来保存管理员信息。字段名称含义如下。

表4.7 公告信息表(tb_BBS)

序号字段名称字段类型字段大小允许空字段说明

1 ID int 4 自动编号

2 content varchar 4000 公告内容

3 INTime datetime 8 T 公告时间

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时,代表图书是重点推荐的图书。查询重点推荐的图书的关键代码如下:

<%ResultSet rs_book=connDB.executeQuery("select * from tb_bookinfo where commend=1");%>

需要注意的是“添加至购物车”按钮只有在用户登录后才可显示出来,即“只有登录的用户才可以购买图书”。

当用户单击“查看”按钮后可以查看图书的详细信息。实现这个功能的方法是:在“查看”按钮的onClick事件中,将页面连接到book_detail.jsp页面并传递相应的图书ISBN 号,然后在显示详细信息页面中通过ISBN号进行检索即可。图书详细信息页面的运行结构如图5.2所示。

图5.2 图书详细页面

5.4新书上架实现过程

在前台页面中,单击“新书上架”超链接可以进入到新书上架页面newbook.jsp,在该页面中显示了全部的上架新书的重点信息,用户可以单击书名超链接查看图书的详细信息。新书上架的全部信息保存在图书信息表tb_bookinfo中,以字段newbook标识,当newbook字段的值为1时,代表该图书为上架新书。上架新书同重点推荐一样,对于没有登录的用户“购买”按钮不可用,并给出提示语。新书上架的页面运行结果如图5.3所。

图5.3 新书上架页面

上架新书信息保存在图书信息表tb_bookinfo中,以字段newbook标识,当newbook 字段的值为1时,代表该图书为上架新书。上架图书的关键代码如下:<%ResultSet rs_newbook=connDB.executeQuery("select top 5 * from tb_bookinfo where newbook=1 order by INTime desc");%>

5.5 图书分类实现过程

为了方便用户查询所需的图书信息,在网站中设置了图书分类显示模块。点击导航条中的“图书分类”超练接进入到图书分类显示页面,在该页面左侧的“图书分类列表”中类出了数据库中的全部图书类别,用户点击某类别则可以在右侧显示该类别的图书信息列表,单击书名可以查看相应的图书的详细信息。如果用户已经登录,还可以直接将图书添加到购物车中。图书分类显示的运行结果如图5.4所示。

图5.4 图书分类

5.6 用户管理实现的过程

用户管理主要包括用户的注册、用户登录、用户修改资料,由于用户修改资料比较简单所以这里主要介绍一下用户注册和用户登录的实现。

a) 用户注册

为了统一管理,利云网上书店规定只有会员用户才可以购买图书。所以要想购买图书的新用户必须先进行注册。用户的注册入口在网站首页的左边。用户单击“注册”按钮进入到用户注册页面,网站要求用户名必须唯一,为了方便用户注册在用户注册页面设置了“检测用户名”的超连接用户可以检测自己的用户名是否已经被注册。该页面的运行结果如图5.5所示。

图5.5 用户注册运行结果

b) 用户登录

用户登录窗口设置在首页的左侧,当用户在登录窗口中输入用户名和密码并单击“登录”按钮后,系统将对输入的用户名和密码进行验证,如果用户输入的用户名存在并且冻结字段的值不为1,则判断用户输入的密码是否正确,如果密码也正确,则重新进入网页的主页显示登录用户的用户名、用户等级、“修改资料”按钮、“退出”按钮,否则登录失败,并给出提示信息。

5.7 购物车的实现过程

购物车主要用来暂时保存挑选出来的图书,主要包括对所选图书的添加、查看购物车、单件图书购买数量的修改、清空购物车四个部分。用户登录后,单击图书展示展示

相关文档
相关文档 最新文档