1、 本 科 毕 业 设 计 第 1 页 共 37 页1 引言传统书店往往要占用大量的空间,雇佣数量较多的工作人员同时也难以避免读者在购买图书时造成图书翻阅损耗等一系列费用,而与此同时随着互联网在中国的发展,我国网民已经超过了 2 亿,而其中绝大部分有是属于知识分子的青年人,无疑他们正是广大图书出版物的潜在消费者。当今网络所显现的超常信息量、无时空局限、传递快捷、操作灵活等优点吸引着越来越多的图书销售商把传统的书店移植到互联网上,从而形成了当今网上书店蓬勃发展的趋势。利云网上书店正是为了满足这种需求而研发的中小型电子商务系统利云网上书店系统是基于 B/S 模式的小型电子商务系统,能够满足中小型书店
2、的网上售书需要。搭建利云网上书店极为简单只需要一台 PC 机,一根网线,即可进行网上交易。利云网上书店基本上满足了中小型书店的网上销售需求,其主要功能包括图书展示、网上调查、购物车、收银台、会员管理、订单查询、图书管理、用户管理、订单管理、公告管理、投票管理、退出功能。图书展示主要实现图书的重点推荐、新书上架图书分类查询、销售排行榜等功能;网上调查功能则提供了书店经理了解读者书籍的需求情况,进而引导订书的种类;购物车功能给每个用户建立了一个相对应的唯一存放选中书籍存放的空间;收银台提供了客户付账的功能,当顾客决定购买购物车里的书籍时,向收银台提交订单;会员管理为每一位注册用户提供了注册、登陆、
3、修改自己注册信息的权利,例如当注册用户的联系方式和地址变动时用户可以通过此功能方便的修改自己的资料;订单查询功能为用户提供了查询自己订单的功能;后台的图书管理是为管理员提供修改、添加删除图书信息的功能;用户管理实现的功能有查看用户信息、消费总额、用户的解冻;订单管理主要负责查看用户的汇款执行情况;公告管理方便管理员向首页公告栏里添加网站公告;投票管理方便管理员向书店添加书店需要调查的书目或删除过期的书目;推出功能负责管理员的推出。利云网上书店的设计充分考虑了用户的视觉感受,努力做到界面简单明了,功能相对完善。后台开发充分考虑了使用软件的用户可能对计算机软件并不是很了解,所以在设计的过程中添加了
4、许多必要的提示和说明。总之利云网上书店将以 Java 技术为基础,实现图书信息的发布、购物、用户管理、图书后台管理等一系列的功能,力争成为中小型书店网络销售的理想软件。本 科 毕 业 设 计 第 2 页 共 37 页2 技术简介利云网上书店所涉及的技术主要有以 Java 语言为核心的 JSP(Java Server Pages)技术进行实现业务实现,后台的服务支撑部分为应用服务器 Tomca5.0.28 以及数据库服务器 SQL Server 2000。以下将对主要技术作简明的介绍。 2.1 JAVA 语言简介Java 是一种简单易用、完全面向对象、具有平台无关性且安全可靠的主要面向Inter
5、net 的开发工具。自从 1995 年正式问世以来, Java 的快速发展已经让整个 Web 世界发生了翻天覆地的变化。在早期,Java 比较多的用在浏览器上,插入到网页中 (即是Java Applet 程序 ),成为最灵活、最强大的网页多媒体的载体,但由于 Java 虚拟机相对于个人电脑而言,有占用资源大,安全性相对较差等缺点,Applet 逐渐的被后起之秀Flash 所替代,但随着 Java Servlet 的推出,Java 在电子商务方面开始崭露头角,最新的 JSP(Java Server Page)技术的推出,更是让 Java 成为基于 Web 的应用程序的首选开发工具,目前的 Jav
6、a 技术已成为所有大型电子商务项目的必然选择 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
7、是服务端技术,所以 JSP 文档要先经服务端翻译、解释、执行,才能得到客户端浏览器能识别的 HTML 文档。这是当前 Web 技术的潮流,是解决客户端浏览器兼容性问题的客观需要。服务端技术是 JSP 区别于 JavaScript、VBScript 等客户端动态页面技术的重要牲。JSP 是一种页面技术,而现在 JSP 只实现了 HTTP(Hypertext Transfer Protocol)协议,只能应用于 Web 页面。这是 JSP 区别于 Servlet 的重要牲。JSP 是一种动态技术,这是 JSP 基于 Java 的自然延伸。在页面中引入程序设计语言的目的是正是为了实现动态交互。因此,
8、JSP 就是基于 Java 的服务端动态页面技术。JSP 技术让动态网面更易编写,功能更强,可移植性更好。概括起来,JSP 的设计目标主要有以下几点:本 科 毕 业 设 计 第 3 页 共 37 页a)一次编写,到处运行JSP 技术是完全的与平台无关的设计,包含它的动态网页与底层的服务组件设计。可以在任何平台下编写 JSP 网面并且在任何支持 JSP 的系统上执行。也可建立自已的组件,并在 JSP 中使用。目前主要是 JavaBean 和 Java Servlet,而它们都是跨平台的。b)加强组件能力JSP 技术以 Java 的组件模型 JavaBean 为基础,加强了组件的使用能力。这不但省
9、去了一些开发时间,而且还可以将网页页面设计和商业分开,有助于快速开发和维护。c)作为 Java 企业平台的门户JSP 高度整合了 Java 企业平台部分(Java 专注于企业应用方面的平台技术) 。可以利用 Java 的企业级 API( Application Programming Interface)开发企业的各种需求系统,而使用 JSP 作为这些技术的前端。当需要升级应用程序时,只需升级组件与动态页面部分,而这些都存在于服务器上,所以修改服务器上的资源,客户端的显示即会跟着改变。d)更容易建立动态页面JSP 就是用标准 HTML 语法混合自身语法标记,就是如此简单,不需要有使用Java、
10、 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 页面中的
11、数据访问。这种表达式语言简化了 JSP 中数据访问的代码,不需要使用 Java Script 或者Java 表达式。b) 引入创建自定义标签的新语法,该语法使用.tag 和.tagx 文件,这类文件可由开发人员或者网页作者编写。c) 对 XML 语法做了实质性的改进,增加了新的标准文件扩展名(.tagx 用于标签本 科 毕 业 设 计 第 4 页 共 37 页文件,.jspx 用于 JSP 文件) 。2.3 TomcatTomcat 是一个免费的开源的 Serlvet 容器,它是 Apache 基金会的 Jakarta 项目中的一个核心项目,由 Apache、Sun 和其它一些公司及个人共同开
12、发而成。由于有了 Sun的参与和支持,最新的 Servlet 和 Jsp 规范总能在 Tomcat 中得到体现。Tomcat 服务器是在 SUN 公司的 JSWDK(JavaServer Web DevelopmentKit,SUN 公司推出的小型 Servlet/JSP 调试工具)的基础上发展起来的一个优秀的 Java Web 应用容器。Tomcat 已经被 JavaWorld 杂志的编辑选为 2001 年度最具创新力的 Java 产品,同时它又是 SUN 公司官方推荐的 Servlet/JSP 容器 14。作为一个开放源码的软件,Tomcat得到了开放源码志愿者的广泛支持,它可以和目前大部
13、分主流 HTTP 服务器一起工作(如 IIS 和 Apache 服务器) ,而且运行稳定、可靠、效率高。同时,它还提供了作为Web 服务器的一些特有功能,如 Tomcat 管理和控制平台、安全域管理和 Tomcat 阀等。作为 Servlet 容器, Tomcat 负责处理客户请求,把请求传送给 Servlet 并把结果返回给客户。Servlet 容器与 Servlet 之间的接口是由 Java Servlet API 定义的,在 Java Servlet API 中定义了 Servlet 的各种方法,这些方法在 Servlet 生命周期的不同阶段被Servlet 容器调用; Servlet
14、API 还定义了 Servlet 容器传递给 Servlet 的对象类,如请求对象 ServletRequest 和响应对象 ServletResponse。当客户请求访问某个 Servlet 时,Servlet 容器将创建一个 ServletRequest 对象和ServletResponse 对象。在 ServletRequest 对象中封装了客户请求信息,然后 Servlet 容器把 ServletRequest 对象和 ServletResponse 对象付给客户所请求的 Servlet。Servlet 把响应结果写到 ServletResponse 中,然后 Servlet 窗口把响
15、应结果传给客户。Tomcat 已经为 Servlet 和 JSP 提供了强大的支持, Servlet 和 JSP 最新技术规范都可以在 Tomcat 中及时地得到实现。Tomcat 应用已经成为目前开发企业 Java Web 应用的最佳选择之一。2.4 SQL Server 2000SQL Server 2000 是微软推出的一个大型的关系型数据库管理系统。作为 Windows数据库中出类拔萃的成员,SQL Server 2000 能够满足各种类型的企业客户和独立软件本 科 毕 业 设 计 第 5 页 共 37 页供应商构建商业应用程序的需要。SQL Server 的可伸缩性既可以适应很小的兆
16、字节个人数据库,也可以适应由数以万记用户使用的巨大的太字节数据库 15。SQL Server 2000 是一种客户机/服务器模式的数据库管理系统,这种体系结构把所有的工作负荷分解成在服务器机器上的任务和在客户机机器上的任务,有效地利用了资源,减轻了服务器的压力。Microsoft SQL Server 2000 能够提供特大系统所需要的数据库服务。在大型客户/服务器系统中,成千的用户可能同时连接一个 SQL Server 2000 实例,SQL Server 2000 有强大的保护功能来处理这种情况。SQL Server 2000 也可以有效地为多个用户分配可用的资源,如内在、网络带宽和磁盘
17、I/O 等 16。非常大的 Internet 站点能够将它们的数据在多个服务器间划分,将处理负担分布到许多计算机上,且允许站点为大量用户服务。多实例 SQL Server 2000 可以在单台计算机上运行。例如,为许多其他组织提供数据库服务的组织可以为每个用户组织运行一个单独的 SQL Server 2000 实例,所有实例都在一台计算机上。这样使得每个用户组织的数据相互独立,而服务组织只管理一个服务器计算机来减少开支。SQL Server 2000 应用程序也可以像 SQL Server 2000 一样运行在同一台计算机上。应用程序使用 Windows Interprocess Commun
18、ications(IPC)组件,如共享内存来连接 SQL Server 2000,而不是网络。这样 SQL Server 2000 就可以在小系统上使用,此时应用程序必须在本地保存它的数据。SQL Server 2000 还支持对多节点群集的规模扩充(Scale Out) ,即把一个巨型数据库分区到一个服务器群集中,但是对于用户来说,整个数据库的存储和访问就像是对待一个单独的数据库那样。通过使用这种扩充规模的伸缩样式,SQL Server2000 达到了任何数据库系统在任何平台上所能达到的性能。故障切换和恢复这两种技术内置到了 SQL Server 系统中,使得 SQL Server 具有了高
19、度的可用性 16。2.5 EclipseEclipse 最初是 IBM 公司的一个软件产品, 2001 年 11 月其 1.0 版正式发布。面世之初,Eclipse 还很不起眼,并饱受业界批评。所谓万事开头难,软件的初版一般都比较稚嫩。到 2003 年 3 月,Eclipse 发布了它的 2.1 版,立刻引起了轰动,下载的人蜂拥而至,导致它的下载服务器都因超载而拥塞了。本 科 毕 业 设 计 第 6 页 共 37 页现在,IBM 已将投入巨资开发的 Eclipse 作为一个开源项目捐献给了开源组织Elipse.org,Eclipse 出色而有独创性的平台,吸引了众多大公司加入到 Eclipse
20、 这个平台的发展上来,这样的公司有 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) 。它拥有功能
21、丰富的开发环境,并允许开发者高效地创建一些能够无缝集成到 Eclipse 平台中的工具。Eclipse 的设计思想是:一切皆为插件。Eclipse 的核心是非常小的,其它所有的功能都以插件的形式附加到这个 Eclipse 核心之上。这样的功能插件包括它的图形API(称为 SWT/JFace) 、 Java 开发环境插件、插件开发环境等。 Eclipse 还对这些插件的协同工作提供了良好的支持,不仅安装简单,而且还可以无缝结合。Eclipse 对这些插件是动态载入动态调用的。所谓动态就是指,Eclipse 启动后要真正用到这个插件时,它才会被调入内存。当插件不再被使用时,它就会被在适当的时候清除
22、出内存。因此即使装了一大堆插件在 Eclipse 里,也不必担心某些不常用的插件白白占着内存。此外,Eclipse 有极为强大的集成开发环境,它集成了 CVS,JUnit 和 Ant,并且强大的代码重构功能独步江湖无人能及。因为 Eclipse 的安装包集成了 Java 开发环境的插件 JDT,所以 Eclipse 默认是一个和 JBuilder 类似的 Java 开发工具。但 Eclipse 不仅仅只是 Java 的开发工具,我们只需要装上 C/C+的插件,就可以把它当作一个 C/C+开发工具来使用。只要有相应的插件,Eclipse 也可以用做其他语言的开发工具。Eclipse的这种插件扩展
23、机制是其最突出的特点和优势,它使 Eclipse 提升到了一个平台的高度。我们可以利用 Eclipse 的插件开发环境来开发自己的 Eclipse 插件,随己所需地扩展Eclipse 的功能。本 科 毕 业 设 计 第 7 页 共 37 页3 需求分析3.1 项目背景网上书店是一种应用于图书销售领域的动态网站。近年来随电子商务在图书销售领域广泛应用,网上书店如雨后春笋在全国迅速展开。与传统的书店相比,网上书店既可以避免书目订货的局限和盲目,又可以克服看样订货投入大,费用高,管理难的不足,而且网上选择范围广能直观看样,可浏览内容,可随时添订,结算及时,快捷方便,周转高速。这些优势是其它交易方式难
24、以达到的。图书网上交易是图书销售领域未来发展之必然,也是出版发行业摆脱困境,建立新的流通渠道,繁荣出版,繁荣市场的必由之路。目前当当、科利华、江苏考试书店等网上书店都在网上市场竞争中争的自己的一席之地。然而中小型的书店开展网上交易的数量,却显的凤毛麟角。一方面:中小型的书店向大型书店发展受到了资金、管理水平的限制;另一方面当今的互联网技术的发展赋予中小型图书销售商开展灵活快捷售书的机遇。利云网上书店正是基于这种市场潜力,面向全国中小型图书销售商而开发的,力争为全国的中小型书店提供一款功能完善、界面友好、性能可靠的网上销售软件。3.2 可行性分析利云网上书店同其他电子商务系统采用 B/S 结构的
25、开发模式,以此保证了用户使用系统的灵活性,顾客只要使用一台可以访问 Internet 的电脑就可以登录到系统中进行操作,无需客户端软件支持,这样方便了图书潜在的消费者快速浏览利云网上书店提供的图书。 利云网上书店采用 JSP 技术为基础进行设计开发。首先,由于 Java 技术的平台无关性,决定了本系统的强大的可移植性,这样可以不对客户作过多的限制,无论是Windows 平台还是 UNIX、Linux 都可以无障碍地进行部署发布。在技术上,JSP 作为SUN 公司在市场上的主打品牌,经过多年的考验已经非常成熟,使用它作为技术基础对本系统来说没有任何问题,而且 JSP 可以将前台用户接口与后台业务
26、处理进行很好本 科 毕 业 设 计 第 8 页 共 37 页的分离,以此保证了界面开发和后台实现互不干预,可维护性强。同时,JSP 技术相对比较简单,开发速度快,可以提高开发效率,又因为其基于 Java,本身又可以扩展使用任何的 Java 框架,所以它在功能上也是完全能够胜任本次开发任务的。在应用服务器的选择上,Tomcat 是 Apache 公司的一款出色的 Java Web Server,它是在 SUN 公司的 JSWDK(Java Server Web Development Kit, SUN 公司推出的小型Servlet/JSP 调试工具)的基础上发展起来的一个优秀的 Java Web
27、 应用容器,虽然小巧但是功能强大,而且反应速度快、运行稳定可靠、使用简单,如果需要还可以和当前大多数主流应用服务器集成到一起,可扩展性好,是部署中小型应用的理想容器,此外,它还是一款免费的软件,所以在很大程度上降低了成本。使用它来部署本系统,是一个理想的选择。3.3 功能分析利云网上书店提供前台图书前台和后台图书管理两大功能。顾客通过登陆利云网上书店的主页面,浏览和各种类型查询书店存书,然后客户通过网上自己的注册用户名、登陆、修改资料,在网上确认自己的购买所需图书,并把这些图书添加到购物车上。最后填写订单购书结账和订单的查询。利云网上后台管理主要是管理员通过登陆对图书和前台用户信息的管理,包括
28、查看、添加、修改、删除图书信息,查看用户信息和冻结不良的用户等功能。3.3.1 图书展示模块图书展示模块主要实现用户浏览到利云网上书店主页面的时候,用户对自己感兴趣书籍的查询和对书店所存书籍的了解。当注册用户登陆后不仅可以实现对图书的浏览、查询而且在相应的图书下面显示购物车,方便用户把图书放到自己的购物车上。主要功能如下:a) 重点推荐提供了无需客户注册就可以观看管理员为客户推荐的重点书籍,包括图书的封面作者价格等相关信息,而对登录用户则显示购买按钮方便用户将图书添加到自己的购物车车上。b) 新书上架提醒顾客网上书店新到的图书,同样客户可以查看到书籍的相关信息,对登录用户显示购买按钮。c) 图
29、书分类浏览功能给客户提供了分类别查看图书的一种简介途径。这项功能可以满足那些需要某类图书,但是读者又不知道自己确切需要的书目。本 科 毕 业 设 计 第 9 页 共 37 页d) 销售排行榜为顾客提供了解利云网上书店销售图书的情况,对客户具有一定的指导价值。3.3.2 网上调查模块网上调查主要通过用户对自己所需类型图书的投票,为书店经理提供进货参考。投票的结果对所用用户是公开的,结果分别用表格和柱状图例表示。这个模块的功能简单,也不是整个系统的重点,但是尽量使显示部分的界面美观大方。3.3.3 购物车模块购物车模块主要负责存放用户所购买的图书,具体包括添加至购物车,主要实现当登录用户查看到自己
30、所需图书的时候,将其添加到自己的购物车上;查看购物车,实现用户对自己购物车中物品的查询;从购物车移除图书负责从购物车中移除自己不想购买的书籍;清空购物车功能使购物车一次清空。需要注意的是设计时除了在购物车中实现购物车中图书数量的修改和清空功能还要建立继续购书和结账的超链接,方便用户使用。3.3.4 收银台模块收银台模块的设计虽然简单,但是却是利云网上书店设计中较为重要的模块。模块的主要功能包括填写订单信息和显示购书结果。3.3.5 会员管理模块会员管理模块提供了会员注册、会员登陆、会员资料的修改功能。3.3.6 订单查询模块订单查询模块主要的作用是方便用户查询自己所有订单的功能,但是用户不能对
31、这些订单进行具体的操作,保证了订单的唯一和确定性。3.3.7 图书管理模块图书管理模块是利云网上书店后台的核心模块,主要的功能包括:查看图书信息、添加图书信息、修改图书信息、删除图书信息。查看图书信息时所有的图书将以表格的形式,界面简介大方。添加图书信息,主要负责管理员登录利云网上书店后台后向书店添加图书,在添加图书的时候,将会给列出图书的主要信息,管理员添好以后,当用户在前台登陆后将会查看到这些图书,此外在这个界面上还设有推荐选项卡和新书选项卡,当管理员选中推荐是,将会在网站首页的推荐栏里展出,选择新书时,图书将会在首页的新书栏里出现。修改图书信息,由于图书号的内容是出版是确定的唯本 科 毕
32、 业 设 计 第 10 页 共 37 页一号码,所以此项不可改动。3.3.8 用户管理模块用户管理模块是管理员对所用用户管理的一个平台。主要功能有查看用户信息和冻结解冻用户,这个模块的设计相对来说比较容易。3.3.9 订单的管理订单的管理主要能够提供管理员查看订单信息和根据用户的汇款支付情况执行订单。3.3.9 公告管理模块公告管理提供查看公告信息、添加公告信息、删除公告信息的能力。管理员添加的公告将会在前台的公告栏里展出,信息将以滚动的方式进行。3.3.10 投票管理模块投票管理模块提供了:浏览投票项目、添加投票项目、删除投票项目的功能。这些功能是是书店经理更容易了解用户的需求,有助于合理进
33、货结构。3.4 系统实施环境该系统至少需要一台主机作为服务器,并且该主机要以独立的 IP 接入互联网。如果需要的话,可以为此 IP 申请域名绑定。具体系统需求如下:a) Windows XP 或 Windows 2000b) SQL Server 2000 SP4 或更高版本的数据库服务器c) JRE 1.4.2_03 或更高版本的 Java 运行时环境d) Tomcat 5.0.28 或更高版本的应用服务器本 科 毕 业 设 计 第 11 页 共 37 页4 概要设计4.1 系统功能图根据前期的分析和客户的需求,利云网上书店的前台主要包括重点推荐展台、新书上架、图书分类浏览、销售排行榜、网上
34、调查、查看调查结果、添加至购物车、查看购物车、从购物车中移除图书、清空购物车、填写订单信息、购书结账、会员注册、会员登录、会员资料修改、订单查询模块构成。利云网上书店前台功能结构如图 4.1 所示。利 云 网 上 书 店 前 台购 物 车收 银 台网 上 调 查会 员 管 理图 书 展 示订 单 管 理 重点推荐新书上架图书分类浏览销售排行榜网上调查查看调查从购物车移除书籍添加至购物车填写订单信息购物车结账会员登录会员资料修改会员注册订单查询查看购物车清空购物车图 4.1 前台功能结构图网上书店的后台模块主要包括查看图书信息、添加图书信息、修改图书信息、删除图书信息、查看用户信息、冻结解冻用户
35、、查看订单信息、执行订单、查看公告信息、添加公告信息、删除公告信息、浏览投票项目、添加投票项目、删除投票项目、退出后台管理。网上书店的后台功能结构如图 4.2 所示。本 科 毕 业 设 计 第 12 页 共 37 页利 云 网 上 书 店 后 台订 单 管 理公 告 管 理用 户 管 理 投 票 管 理图 书 管 理退 出查看图书信息添加图书信息修改图书信息删除图书信息查看用户信息冻结解除用户信息执行订单查看订单信息添加公告信息删除公告信息查看公告信息添加投票项目删除投票项目浏览投票项目退出后台管理图 4.2 后台功能结构图4.2 系统结构设计本系统将搭建在 B/S 结构的基础之上,系统将首先
36、由用户向 Web Server 发出请求,而 Web Server 则将请求交给 Servlet 进行处理,Servlet 根据请求的类型调用相应的JavaBean 业务组件来进行操作,业务处理将在 JavaBean 组件中进行,主要包括对数据库的存取。JavaBean 处理结束之后将结果返回给 Servlet,这时,Servlet 就可以根据结果将相应的 JSP 页面返回给用户。在这样的结构中,JSP 页面负责了前台显示,也就是视图(View)层, Servlet 扮演了控制器(Controllor )的角色,JavaBean 则是业务处理组件模型(Modal) 。这样的设计使得整个系统的结
37、构显得清晰,每个层负责自己相应的功能处理,而对超出自己能力范围之外的功能不作涉及。4.3 数据库物理表结构根据需求分析中对利云网站功能的各方面做出的定义,设计了相应的数据库物理表结构,即数据库的物理模型。进行开发时,在 SQL Server 2000 数据库服务器中应该严格按照此结构进行表之定义,而且一定要注意在设计的过程中,对各字段大小所做的限制。在名称为 db_bookmange 的数据库中,根据利云网上书店的需求建立相应的数据表。图书信息表 tb_bookinfo 用来保存图书详细信息。在表 tb_bookinfo 中共有十二个字段,其中字段 newbook 标识是否是新书,为 1 表示
38、是新书,默认值是 0,表示不推荐。字段 commend 标识是否在首页推荐该书,为 1 表示推荐,默认为 0 表示不推荐。表本 科 毕 业 设 计 第 13 页 共 37 页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 图书的作者
39、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_Me
40、mber)序号 字段名称 字段类型 字段大小 允许空 字段说明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 证件类型本 科 毕 业 设 计 第 14 页 共 37 页10 grade int 4
41、 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 v
42、archar 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
43、订单信息明细表(tb_order_detail) 用来保存订单的明细信息。其中各个字段都不能为空。订单明细信息编号 ID 为主键。其他各字段名称和其表示的含义如下图所示。表 4.4 订单信息明细表 (tb_order_detail)序号 字段名称 字段类型 字段大小 允许空 字段说明本 科 毕 业 设 计 第 15 页 共 37 页1 ID bigint 8 订单明细信息编号号2 orderID bigint 8 订单号3 ISBN varchar 20 图书 ISBN 号4 price money 8 图书单价5 number int 4 购买的图书数量表 4.5 为折扣信息表(tb_reb
44、ate),主要用来保存折扣信息。为了安全,管理员必须修改数据库中 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)序号 字段名称
45、字段类型 字段大小 允许空 字段说明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 公告时间本 科 毕 业 设 计 第 16 页 共 37 页5 详细设计根据在概要设计阶段产生的文档,接下来将要在详细设计阶段对各功能模块提供具体
46、的设计方案,以便在之后的编码阶段能够加快效率、提高质量。在详细设计的过程中,将逐步实现前台和后台的功能,包括:图书展台、网上调查、购物车、收银台、会员管理、订单功能、图书管理、用户管理、订单管理、公告管理、投票管理、退出。在注重实现功能的同时,兼顾系统的美观和可维护性。5.1 首页设计由于利云网上书店是一个网上电子商务系统,所以最终的目的是发布在互联网上,因此外观的设计对整个系统来说显得非常重要的,而利云网上书店的首页将是浏览者最先看到的欢迎式的页面,所以网站的首页极为重要,首页设计的好坏将直接影响到顾客的购买欲望。在利云网上书店的首页中用户不但可以在第一时间内掌握书店提供的优惠活动、公告信息
47、还可以查看推荐图书、新上架的图书、销售排行榜等。在利云网上书店的设计过程中不仅要在首页实现各种功能的展示,而且要兼顾首页的美观,使网页做到功能完善,页面简洁大方。在前面的需求分析中,已经对主页的要求有了一个大概的说明,而在此处,就要全方位地开始设计该系统的首页了。a) 在页面的布局上由于利云网上书店的前后台功能模块较多,所以决定书店的后台将放到一个独立的页面上。而在首页的底部提供一个后台管理员的入口,管理员可以通过正确的输入用户名和密码来登录到利云书店的网站后台。在成功解决了网站后本 科 毕 业 设 计 第 17 页 共 37 页台登录的问题后首页主要区域用来设计前台的功能。同众多网站一样,利
48、云网上书店把前台的主菜单放在首页的顶部。因为红色象征这激情而我们的用户主要是充满理想的知识青年,所以接下来的欢迎横幅是以红色为基调的欢迎图片。在做完网页顶部设计以后,剩下的版块留给用户登录、图书展示、网上调查等模块。为了便于规划将余下的空间分为左中右三部分。左部分为普通用户登录的入口,在普通用户的登录模块下为完善调查模块;在页面的中部为重点推荐图书展示部分;右部分的网页为新书上架和销售排行榜。b) 由于系统面向的用户为非计算机专业用户,所以用户不可能了解 JSP 网站运行的原理,这决定了在设计的过程中要努力做到界面简介,操作方便。使用户通过点击鼠标来完成大部分操作,体现了用户的友好。根据这些原
49、则,并经过精心的设计,最终形成的网站美观大方的首页。首页的主要部分,如图 5.1 所示。图 5.1 网站首页5.2 类的设计a) 由于系统的大部分功能都要涉及到对数据库的操作(Create、Retrieve、Update、Delete) ,所以数据库的设计无疑是利云网上书店整体模块设计中的重头戏,这里把数据库的连接和对数据的操作封装在一个名为 connDB.java的类里面,对数据库中数据的操作主要包括查询操作、执行更新操作、关闭数据库连本 科 毕 业 设 计 第 18 页 共 37 页接等。这样使得工程的结构清晰,思路明了。b) 在开发的过程中经常需要考虑中文的乱码问题、过滤一些特殊的字符 (如空格、null 值等等) 和显示文本中的回车换行、空格。这个功能通常需要编写一个独立的JavaBean 完成。在利云网上书店的开发过程中专门设计了处理此类问题的类“chStr.java”。5.3 重点推荐展台的实现在网站前台的居中位置,分栏列出了利云网上书店推荐的图书信息,主要包括图书的封面、名称、出版社、作者、定价信息等。同时设置了“添加至购物车” 按钮和“查看”按钮。分别用于将图书添加至购物车和查看图书的详细信息。重点推荐的图书同图书的基本信息同时保存在图书信息表 tb_bookinfo 中,以字段com