网上书店系统开发_第1页
网上书店系统开发_第2页
网上书店系统开发_第3页
网上书店系统开发_第4页
网上书店系统开发_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

word文档可自由复制编辑摘要随着时代的发展,信息技术、Internet技术及数据库技术的不断发展完善,网络进程的加快,传统的购物方式也越来越不能满足人们快节奏的生活需求,电子商务应运而生。什么叫电子商务?利用互联网开展商务活动的总和就叫电子商务。其本质是"商务"。这种有别于传统的商务活动,包含以下三种基本的"流",既信息流,资金流和物资流。本文实现了一个电子商务系统网上书店销售系统。本设计论述了网上书店系统的研究目标、系统需求、数据库和系统总体设计,较详细地阐述了网上书店的设计与实现。并且对其它子系统实现中遇到的一些主要问题进行了分析。论文还给出了系统设计和实现中所涉及的主要关键技术。最后,本文对网上书店管理系统进行了总结并提出了还需要改进的问题。关键词:网上书店,JSP技术,数据库ABSTRACTWiththedevelopmentofthetimes,informationtechnology,Internettechnologyandthedatabasetechnologydeveloped,acceleratetheprocessofthenetwork,thetraditionalshoppingisincreasinglyunabletomeetthepeople'sfast-pacedlifedemandsE-commerceemerged.WhatisE-commerce?UseoftheInternettoconductbusinessactivitiesintheaggregatecallede-commerce.Thisisdifferentfromtraditionalbusinessactivities,includethefollowingthreebasic"Flow,"whichtheinformationflow,capitalflowandmaterialflow.Inthispaper,designingprocessofthee-commercesystem--onlinebookstoresmarketingsystemispresented.Thedesigndiscussedonlinebookstoresystemoftarget、SystemRequirements、Databaseandsystemdesign,MoredetailedexpositionoftheonlinebookstoresDesignandImplementation.Andtheothersubsystemsencounteredintherealizationofsomeofthemajorissuesofanalysis.Papersalsogivesthesystemdesignandimplementationinvolvedinkeytechnologies.Finally,thispaperonlinebookstoremanagementsystemandasummaryofitisalsonecessarytoimprovetheproblem.Keywords:OnlineBookstore,JSP,Database

目录摘要 IABSTRACT II第1章绪论 11.1背景 11.2研究内容 2第2章需求分析 32.1系统基本要求 32.2功能需求分析 32.3性能需求 42.4本章小结 4第3章数据库设计 53.1B/S结构的数据库设计原则 53.2逻辑结构设计 63.3数据库的安全性和完整性 83.4本章小结 9第4章系统的总体设计 104.1系统框架 104.2系统开发平台 114.2.1系统运行环境 114.2.2开发工具介绍 114.3开发环境资源 134.3.1Beans文件包 144.3.2Database文件包 154.3.3manage文件包 154.4本章小结 15第5章前台系统的详细设计 165.1登录界面 165.2新书上架 165.3重点推荐展台 175.4购物车 185.4.1添加购物车 185.4.2查看购物车 195.4.3从购物车中移去指定图书 205.5销售排行 205.6生成订单 215.7本章小结 23第6章后台系统的详细设计 246.1后台结构功能图 246.2后台登录页面 246.3图书管理 256.3.1添加图书信息 266.3.2修改图书信息 276.3.3删除图书信息 296.4订单管理 296.5用户管理 306.6公告管理 316.7退出系统 326.8本章小结 32第7章结论 33致谢 34参考文献 35第1章绪论1.1背景电子商务并不是一个新概念,可以说,在几十年前主机系统出现时就诞生了。但是,近年来,Internet的出现给了电子商务以新的活力,基于Internet的电子商务已经引起了全世界的注意。电子商务始于网络计算,网络计算是电子商务的基础。没有网络计算,就没有电子商务。其发展形式多种多样,从最初的电话、电报到电子邮件以及其后的EDI,都可以说是电子商务的某种发展形式。电子商务的发展有其必然性和可能性。传统的商业是以手工处理信息为主,并且通过纸上的文字交换信息,但是随着处理和交换信息量的剧增,该过程变得越来越复杂,这不仅增加了重复劳动量和额外开支,而且也增加了出错机会,在这种情况下需要一种更加便利和先进的方式来快速交流和处理商业往来业务;另一方面,计算机技术的发展及其广泛应用和先进通信技术的不断完善及使用导致了EDI和Internet的出现和发展,全球社会迈入了信息自动化处理的新时代,这又使得电子商务的发展成为可能。在必然性和可能性的推动下,电子商务得到了较快发展,特别是近两年来其发展速度令世人震惊。虽然如此,电子商务的战略作用却是逐渐被全球各国所认识的,而且其今后的发展道路也是漫长的。随着信息技术的发展,搭上国际网络直通车的文化企业面临着一场新的革命。网站在促成销售方面很有价值,因为有绝大部分的消费者在某商场购物之前会事先到该商场的网站中查询产品信息,实体商店尽管将网站同样也看作一个销售渠道,但对于网站的服务投入很少。这主要是由于对电子商务战略的评价方法存在问题,因为有很多的零售商将销售额作为网站是否成功的指标,有些公司用利润来评价。不过,网上零售商不应该将这种信号看作网上零售可以带来丰厚利润的信号,尽管在网络泡沫膨胀时很多人都这么认为。纯粹的网上零售商理应将网站带来多少利润作为最重要的业绩考评指标。多渠道零售商应该了解,并非每个浏览他们网站的顾客最终都会购买。拥有一个很成功的电子商务网站的零售商,收益将比非交易功能的网站多很多。那些希望将网上交易作为部分业务内容的公司发现,将网上网下集成起来很重要。尽管网上网下相结合成为不可逆转的趋势,但是由于集成的费用可能很高,使得许多零售企业的进程大为减慢,最好在商场内部系统软件已经基于网络标准更新之后再进行整合,一些大型商场的转型都经历了这个过程。由于无法量化,实体商店不能不考虑他们的网站对商店购买的影响,商店花费有限的网络资源支撑网站交易基础是有代价的,有可能最终失去有购买计划的顾客,最终将网下市场份额丢失给精明的竞争者。1.2研究内容本文主要实现一个网上书店的系统。在该系统里,用户可以通过浏览器访问系统,订购图书,对系统的管理也是通过浏览器来完成的。网上书店要做到有清爽的界面、方便的查询、快捷的买卖,成为一个有信用有保障的电子商务店。系统主要功能包括:网站首页能显示重点推荐图书、新书上架、销售排行、会员投票等功能。登录后的会员能投票自己需要的书籍,会员等级越高可以给最高的折扣。购物车用来存放要购买的书籍,可以查看、删除或者继续购买,选完书后可以进入收银台选择网上付款。第2章需求分析2.1系统基本要求系统基本要求如下:每个客户通过详细的资料填写注册才可成为会员。对客户资料会做一个统计,了解谁才是最主要的用户群,了解客户需要什么书籍,实现利益最大化。为了保障广大会员都能买到书,书店要能统计书的库存量,当然也要将成本降低,确保零库存,做到买卖方都收益。及时统计会员投票出来的书,实现会员的建议,让会员买到想要的书。2.2功能需求分析系统功能图如图2-1所示:图2-1系统功能图(1)图书展台模块在首页分栏显示了图书信息,主要包括图书封面、名称、出版社、作者及定价、简介等信息。(2)购物车模块购物车主要包括所选图书的添加、查看购物车、单件图书购买数量的修改、清空购物车四部分。(3)收银台模块生成订单是网上购物的最终目的。生成订单时,不仅要保存用户订单中所购买的图书信息和订单信息,同时还返回一个可供用户随时查询的订单号。(4)订单查询模块里面列了订单的付款方式、订单号、折扣等,主要提供客户可查询。(5)会员管理模块在这里可以给会员进行打折,根据会员等级不同,打折数也不同。(6)网上调查模块客户可以在首页进行投票,选择客户需要哪方面的书。2.3性能需求(1)及时性:通过查询及时发现药品库存数量,利润,销售情况。(2)全面性:通过数据,报表等形式全面反映商店的商品和库存情况。(3)可维护性:提供数据的更新,备份功能,提供系统恢复功能。(4)可扩充性:本项目已考虑到了系统以后扩充的可能,为将来的扩充提供了接口,为某些数据库的字段(如商品编码)预留了较长的位数。(5)一致性:本项目中的有关信息在录入后维护,在系统中数据保持一致性。(6)集成性:本项目的几个子系统可以方便地集成在一起,也为将来新子系统的加入提供了合理的外部接口。(7)可追踪性:本项目中的商品入库时具备了完整的信息(如供货单位,等),具有很好的可追踪性。2.4本章小结开发的网站要求功能齐全,适应客户群,通过需求分析,将系统分成六大功能模块,分别是图书展台、购物车、收银台、订单查询、会员管理、网行调查,每个模块相互关联。第3章数据库设计3.1B/S结构的数据库设计原则本系统采用B/S结构(Browser/Server结构)结构,即浏览器和服务器结构。它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。B/S结构将成为在网络上对数据库访问发展的必然趋势。B/S方式的最大好处是把所有的应用程序都储存在Web服务器上,需要时下载,客户端无需安装其他任何软件,也无需进行任何配置。客户应用程序接收数据实现网上的一个图书系统。B/S结构图如图3-1所示:防火墙普通客户普通客户WWW应用服务器企业内部客户Browser企业内部客户图形用户界面数据库访问网关数据库服务器图3-1三层B/S结构图要提高数据库访问性能,可从如下几个方面着手:(1)减少查询数据库的次数。重复使用的数据可以在一次检索后存储于隐藏窗口的数据窗口中,供其他数据窗口使用。(2)精心设计SQL语句,使数据库服务器返回的结果不含冗余值,尽可能减少返回结果。(3)利用存储进程来优化性能,避免从客户端向服务器发送大量的SQL语句。(4)设计独立于数据库的应用程序,使应用程序尽可能适用于不同的数据库。 3.2逻辑结构设计本系统采用数据库管理系统Sqlserver2000管理图书、目录、会员、订单、购物车等数据。数据库表的结构设计是应用软件中的关键部分,数据库表设计采用规范化关系模式的方法。在关系数据库中,规范化关系模式就是要解决关系模式中存在的插入异常、删除异常、修改复杂、数据冗余等问题。规范化的基本思想是消除数据依赖中不合适的部分,使模式中的各关系模式达到某种程度的“分离”,让一个关系描述一个概念、一个实体或者实体间的一种联系,若多于一个概念就把它分离出去。但这并不意味着,规范化程度越高,模式就越好。我们必须结合应用环境对关系模式进行优化,例如适当增加冗余,提高数据库应用系统的性能。本系统中设计的数据库表结构为:用户信息表如表3-1所示:表3-1用户信息表管理信息表如表3-2所示:表3-2管理信息表图书信息表如表3-3所示:表3-3图书信息表订单信息表如表3-4所示:表3-4订单信息表折扣信息表如表3-5所示:表3-5折扣信息表公告信息表如表3-6所示:表3-6公告信息表3.3数据库的安全性和完整性(1)数据库的安全性数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄露、更改或破坏。计算机系统都有这个问题,在数据库系统中大量数据集中存放,为许多用户共享,使安全问题更为突出。在一般的计算机系统中,安全措施是一级一级设置的。在DB存储这一级可采用密码技术,当物理存储设备失窃后,它起到保密作用。在数据库系统这一级中提供两种控制:用户标识和鉴定,数据存取控制。数据库安全可分为二类:系统安全性和数据安全性。系统安全性是指在系统级控制数据库的存取和使用的机制,包含:(a)有效的用户名/口令的组合;(b)一个用户是否授权可连接数据库;(c)用户对象可用的磁盘空间的数量;(d)用户的资源限制;(e)数据库审计是否是有效的;(f)用户可执行哪些系统操作。数据安全性是指在对象级控制数据库的存取和使用的机制,包含:哪些用户可存取一指定的模式对象及在对象上允许作哪些操作类型。服务器上提供了一种任意存取控制,是一种基于特权限制信息存取的方法。用户要存取一对象必须有相应的特权授给该用户。已授权的用户可任意地可将它授权给其它用户,由于这个原因,这种安全性类型叫做任意型。(2)数据完整性它是指数据的正确性和相容性。数据的完整性是为了防止数据库存在不符合主义的数据,防止错误信息输入和输出,即数据要遵守由DBA或应用开发者所决定的一组预定义的规则。应用于关系数据库的表的数据完整性有下列类型:插入或修改表的行时允许不允许包含有空值的列,称为空与非空规则。(a)唯一列值规则,允许插入或修改的表行在该列上的值唯一。(b)引用完整性规则,同关系模型定义。(c)用户对定义的规则,为复杂性完整性检查。允许定义和实施上述每一种类型的数据完整性规则,这些规则可用完整性约束和数据库触发器定义。完整性约束,是对表的列定义一规则的说明性方法。数据库触发器,是使用非说明方法实施完整性规则,利用数据库触发器(存储的数据库过程)可定义和实施任何类型的完整性规则。3.4本章小结对于B/S系统的数据库设计,提出了几条具有较高性能的数据库设计原则。并在SqlServer数据库里建立了不同功能的表格,分别用来存储图书信息、用户信息、管理信息、公告信息、订单信息、折扣信息。数据库的建立,为后面的系统功能实现做出铺垫。

第4章系统的总体设计4.1系统框架系统框架如图4-1所示:图4-1系统框架图(1)图书展台模块包括重点推荐展台、新书上架、销售排行展台。在这里分栏列出了图书信息,主要包括图书封面、名称、出版社、定价等信息。新书上架让大家最先、最快的了解到刚到的书籍。排行榜做了一个统计,反应现在最畅销的书。(2)网上调查模块只有登录后的会员才可以投票,选择自己所需要的书籍。(3)购物车模块如同商场的购物车实物一样,方便添加、查看、移出、清空等,买完可以到收银台结帐。(4)收银台模块用户要结帐需要填写订单信息,留下地址和联系方式,选择哪种付款方式,再确定结帐。(5)会员管理模块想要成为本店的会员需要进行注册,要填写用户名、密码、联系电话、地址、邮编等。会员是划分等级的,最高5级,当然消费的最多等级也越高,能打的折扣也越高。(6)订单查询模块列出了当前用户的全部订单概要信息列表,如订单号、付款方式、折扣、订书日期等。4.2系统开发平台4.2.1系统运行环境(1)Jdk1.5.0(2)操作系统WindowsXP(3)数据库服务器SQLServer2000(4)应用服务器Tomcat5.0(5)IDEEclipse3.1.2+MyEclipse开发工具介绍Java语言特点在Java语言发展的早期,它的实际能力和广告宣传有着巨大的差距。随着Java的成熟,技术变得更加稳定和可靠,人们对Java的期待也变得更为合理。现在Java广泛地用于嵌入式系统开发,正在成为开发手持设备,互联作息站,车载计算机,通信“中间件”等应用的标准。Java语言是一种纯面向对象的编程语言。它的目标之一就是要提高生产率。生产率来源于许多方面,但是JAVA希望在语言方面相对于他的前辈有所提高,从而为程序员提供更大的便利。具有以下优点:(1)Java设计者取消了手工内存分配和回收。在Java中,内存是自动进行垃圾收集的,从而不会出现内存崩溃的现象。(2)类库功能的强大,纯对象化。(3)完善的异常处理机制.他是一种能够确保错误必须被报告,而却对此必须有响应机制。(4)取消了指针算法,消除了条件性语句中弄混赋值和相等测试的可能性,消除了多重继承等。(5)最显著的优点是运行时的平台无关性,你可以在不同的系统上使用完全一样的代码。JavaJAVA程序设计语言依赖于被称做JAVA虚拟机(JavaVirtualMachine,JVM)的模拟机。JVM使得程序员不是和系统打交道,而是和虚拟机打交道。因此程序员使用的函数是JVM内嵌的函数,而不是操作系统的函数。这非常先进,因为它提供了可移植性。如果相同的JVM安装在两个完全不同的机器上,那么同一个JAVA程序应该在两台机器上都可以运行,因为JAVA程序依赖于JVM,而不是运行它的系统。由于它的高度可移植性,JAVA已经成为Internet上的主要编程语言。许多Web页面现在都和JAVA程序结合在一起。这些JAVA程序可以完成一些在浏览器中显示的任务。同时,JVM也非常小。或者说,它不占用大量的内存。这意味着JVM可以被应用于许多不同的机器。例如,电视机,蜂窝移动电话,以及计算机,都可以。因此,完全有可能向我们今天正在使用的设备中添加像游戏这样的复杂功能。如何使用JVM?JVM是我们对抽象计算机的称呼。或者说,JVM是在“真正的”硬件平台和操作系统上用软件来实现的。JAVA程序是为JVM编译,而不是系统。这就意味着程序员写的JAVA程序由JAVA编译器翻译成JVM执行的语言/代码。这些代码被称做字节代码(ByteCode)。字节代码可以被认为是JVM的机器语言。JVM把字节代码流解释成指令序列。然后这些指令被执行,生成期望的输出。一旦字节代码被JVM解释,JVM指令就会被映射成操作系统指令或者硬件指令。这就意味着JVM实际上是使用操作系统和机器指令来实现它所获取的指令。因此,JVM的指令在每一个安装JVM的操作系统或机器上都必须有一个可能的映射才能工作。这就是为什么JAVA语言并没有达到100%可移植的原因之一。可能有的JVM指令在一种操作系统上可以实现,而在另外一种操作系统上不能实现。Eclipse的特点Eclipse是一款非常优秀的开源IDE,非常适合Java开发,由于支持插件技术,受到了越来越多的开发者的欢迎。最新的Eclipse不但界面作了很大的增强,而且增加了代码折叠等众多优秀功能,速度也有明显的提升。配合众多令人眼花缭乱的插件,完全可以满足从企业级Java应用到手机终端Java游戏的开发。MyEclipse是IBM为Eclipse添加的IDE插件集.它给java程序员提供了极好的编程开发环境.其内的许多插件为开发JavaWeb应用系统提供了很好的支持如:Tomcat插件,Web浏览器插件,Structs插件等等。Tomcat的特点Tomcat是Sun和Apache合作做出来的JSPServer,支持Servlet2.2及JSP1.1等版本。而且Tomcat未来将会取代JServ,成为Apache主要的Servlet&JSPEngine。Tomcat在设计上是以独立的Server执行,而不像Jserv是附在Apache中,这样就更可以发挥在servlet中,非HttpServlet的能力。Tomcat是Java程序,所以只要有JDK就可以使用,不需要考虑操作系统平台。它对采用MVC结构的Jsp+servlet+JavaBean模式的JavaWeb应用提供了很好的支持。SQLServer2000的特点SQLServer2000是Microsoft公司推出的SQLServer数据库管理系统的新版本。该版本继承了SQLServer7.0版本的优点,同时又比它增加了许多更先进的功能,具有使用方便、可伸缩性好、与相关软件集成程度高等优点。可跨越从运行MicrosoftWindows98的膝上型电脑,到运行MicrosoftWindows2000的大型多处理器的服务器等多种平台使用。4.3开发环境资源在Eclipse环境所有类如图4-2所示:图4-2Eclipse包截图(1)图4-3Eclipse包截图(2)图4-4Eclipse包截图(3)Web应用程序目录环境,采用相对路径存放,如表4-1所示:表4-1Web应用环境存放目录序号目录存放内容1BookSupermarket\srcBean文件2BookSupermarket\Database数据库操作文件3BookSupermarket\manage后台操作4.3.1Beans文件包Beans文件包存放内容如表4-2所示:表4-2Beans文件存放目录Beans包说明connDB连接数据库和操作数据库chStr字符串处理bookelement保存购买信息4.3.2Database文件包里面存放数据库文件,有6张表分别是:图书信息表tb_bookinfo、用户信息表tb_Member、订单信息表tb_Order、订单信息明细表tb_order_detail、折扣信息表tb_rebate、管理员信息表tb_manager、公告信息表tb_bbs。4.3.3manage文件包包含所有的后台操作文件。如图书管理、用户管理、订单管理等模块功能都在此文件包下的JAVA文件来实现。4.4本章小结本章对系统进行总体规划,具体分成六个模块,并对每个模块分别要实现什么功能进行划分。系统所涉及的开发平台和开发工具都一一进行了详细阐述。环境资源主要给出了几个重要包所包含的内容。第5章前台系统的详细设计按照系统的总体框架,对前台系统的各个模块分析如下:5.1登录界面此处是用户登录后才可以进入购物车购买书籍。注册用户后才可以成为会员用户。登录界面如图5-1所示:图5-1登录界面用户注册页面如图5-2所示:图5-2注册页面5.2新书上架在新书上架页面中显示了上架新书的书名、出版社等重点信息。新书上架页面如图5-3所示:图5-3新书上架页面上架新书信息保存在图书信息表tb_bookinfo中,以字段newbook标识,当newboo字段的值为1时,代表图书为上架新书。<%@pagecontentType="text/html;charset=gb2312"language="java"import="java.sql.*"%><jsp:useBeanid="connDB"scope="page"class="beans.connDB"/><%ResultSetrs_newbook=connDB.executeQuery("select*fromtb_bookinfowherenewbook=1orderbyINTimedesc");%>5.3重点推荐展台重点推荐展台在网站前台居中的位置,分栏列出了超市推荐的图书信息,主要包括图书封面、名称、出版社、作者及定价等信息。同时设置了“添加至购物车”按钮和“查看”按钮,分别用于将图书添加至购物车和查看图书详细信息。重点推荐图书信息保存在图书信息表tb_bookinfo中。重点推荐页面如图5-4所示:图5-4推荐页面5.4购物车作为一个网上购物平台,购物车是最重要的一个功能。购物车主要包括所选图书的添加,查看购物车、单件图书数量的修改、清空购物车等四部分。5.4.1添加购物车购物车是采用Vectotr类型的变量cart来存储购物数据的,被保存在Session中。将图书信息添加至购物车时,可以分为以下两中情况:当cart就是当用户每次向购物车中、添加第一本图书时,都要新建:一个cart,然后将图书信息保存到cart中。如果cart不为空,说明购物车中已经有选购的书籍了,这时不需要新建cart,而直接向里面加入图书信息即可。如果书籍重复,只需要修改cart中的图书数量。for(inti=0;i<cart.size();i++){ bookelementbookitem=(bookelement)cart.elementAt(i);if(bookitem.ISBN.equals(mybookelement.ISBN)){ bookitem.number++; cart.setElementAt(bookitem,i); Flag=false; } }当cart中已经存在所添加的图书信息时,只将数量加1。session.setAttribute("cart",cart);将cart保存到session中。5.4.2查看购物车在首页会员登录后点击查看购物车,若购物车为空,则显示购买。要购买的书籍就放入购物车里,此时可以对书籍进行操作。可以修改数量,继续购书,去收银台结帐,或者清空购物车,用户对自己商品的管理。购物车页面如图5-5所示:图5-5购物车页面显示购物车信息主要是将保存在Session中的数据利用for语句输出到浏览器中,同时根据图书的定价、购买数量自动计算每种图书的金额和购物车中全部图书的金额。<%Vectorcart=(Vector)session.getAttribute("cart");if(cart==null||cart.size()==0){ response.sendRedirect("cart_null.jsp");}else{%>判断购物车是否为空。如果为空页面直接跳转到购物车为空页面cart_null.jsp.否则显示全部信息。5.4.3从购物车中移去指定图书实现从购物车中移去指定图书是通过Vector类的removeElementAt(intindex)方法实现。Vectorcart=(Vector)session.getAttribute("cart");try{ StringID=request.getParameter("ID"); intid=Integer.parseInt(ID); cart.removeElementAt(id); session.setAttribute("cart",cart); response.sendRedirect("cart_see.jsp"); }catch(Exceptione){}5.5销售排行销售排行数据主要是将销售明细表的数量按ISBN字段分组并统计销售数量再应用于查询获取销售数量最高的前10本图书,最后再使用连接查询获取相应的图书信息。销售排行如图5-6所示:图5-6销售排行<jsp:useBeanid="connDB"scope="page"class="beans.connDB"/><%ResultSetrs_sort=connDB.executeQuery("select*from(selecttop10*from(selectsum(number)asamount,ISBNfromtb_Order_detailgroupbyISBN)astaborderbyamountdesc)oinnerjointb_bookinfobono.ISBN=b.ISBNorderbyo.amountdesc");%>5.6生成订单生成订单是网上购物的最终目的,前面所有功能都是为最后生成一个用户满意的订单做准备。生成订单时,不仅要保存用户订单中所购买的图书信息和订单信息,同时还需要返回一个可供用户随时查询的订单号。图5-7收银台页面选择了自己的书籍后,点击收银台进入次页面。在此页面下,需要填下详细地址和联系方式,这样才能做到货到付款。<option>银行付款</option><option>邮政付款</option><option>现金支付</option></select>做了一个下拉菜单,包括银行付款,邮政付款和现金支付,方便交易。填写完信息,进入保存页面cart_order.jsp.由于超市中为用户设置了会员等级,所以在保存订单时还需要取出用户的等级,并根据会员等级打与之相符合的折扣,最后如果用户消费金额在一定数量时为会员进级,如果已经是5级,也就是最高级那么就无需再进级了。floatbnumber=cart.size();Stringsql="insertintotb_Order(bnumber,username,truename,address,postcode,tel,email,pay,carry,rebate,bz)values("+bnumber+",'"+username+"','"+truename+"','"+address+"','"+postcode+"','"+tel+"','"+email+"','"+pay+"','"+carry+"','"+rebate+"','"+bz+"')"; temp=connDB.executeUpdate_id(sql); if(temp==0){ flag="false"; }else{ orderID=temp; //out.println("<script>alert('"+String.valueOf(orderID)+"ID号')</script>"); }插入订单明细表数据。Stringsql_up="updatetb_MembersetAmount=Amount+"+Totalsum+"whereusername='"+username+"'"; temp=connDB.executeUpdate(sql_up); if(temp==0){ flag="false"; }更新会员等级。5.7本章小结本章主要论述了前台系统的详细开发。主要包括登录页面、注册页面、重点推荐页面、新书上架页面、购物车页面、订单页面。重点推荐页面分栏列出的图书信息,主要包括图书封面、名称、出版社、定价等信息。新书上架让大家最先、最快的了解到刚到的书籍。排行榜做了一个统计,反应现在最畅销的书。购物车让客户方便的买卖,查询订单让客户了解自己订购的是什么书,书是否已经发出。第6章后台系统的详细设计6.1后台结构功能图后台框架图如图6-1所示:图6-1后台框架图6.2后台登录页面登录界面如图6-2所示:图6-2登录页面这是管理员登录页面,在这里为了网站的安全,防止一些不法分子蓄意破坏,需要为网站后台设计用于验证用户身份的文件safe.jsp。<%if(session.getAttribute("manager")==null){out.println("<scriptlanguage='javascript'>alert('您还没有登录!');window.location.href='../index.jsp';</script>");}%>6.3图书管理图书管理模块主要实现对图书信息的管理,包括分页显示图书信息,添加图书信息,修改图书信息,删除图书信息等功能。图书管理页面如图6-3所示:图6-3图书管理页面此分页显示图书信息页面中主要显示图书的ISBN号、图书名称、出版社、是否为新书或推荐书等信息。(1)确定纪录跨度(2)确定纪录的总条数(3)根据公式“总页数=总纪录数/跨度”计算中页数,如果得出的总页数有余数,则舍去余数并加1(4)获取传递的当前页数参数,并把它转换为整型数据。(5)计算当前纪录数,当前纪录数=(获取的页数-1)*跨度+1(6)通过for循环分页显示图书信息。6.3.1添加图书信息添加页面如图6-4所示:图6-4添加页面为了保证图书信息在数据表中的唯一性,在保存图书信息前需要先根据用户输入的图书ISBN号判断图书是否存在,如果存在则给予提示信息返回,否则将图书信息保存到数据表中。if(introduce.equals(""))introduce="暂无"; ResultSetrs=connDB.executeQuery("select*fromtb_bookinfowhereISBN='"+ISBN+"'"); if(rs.next()){ out.println("<scriptlanguage='javascript'>alert('该图书信息已经添加!');history.back(-1);</script>"); }else{ Stringsql="Insertintotb_bookinfo(ISBN,BookName,Type,publisher,writer,Introduce,price,pDate,cover,newbook,commend)values('"+ISBN+"','"+bookname+"','"+type+"','"+TPI+"','"+writer+"','"+introduce+"',"+price+",'"+pDate+"','"+cover+"',"+newbook+","+commend+")"; intret=0; ret=connDB.executeUpdate(sql); if(ret!=0){ out.println("<scriptlanguage='javascript'>alert('图书信息添加成功!');window.location.href='index.jsp';</script>"); }else{ out.println("<scriptlanguage='javascript'>alert('图书信息添加失败!');window.location.href='book_add.jsp';</script>"); } }6.3.2修改图书信息修改图书信息主要用于修改图书的基本信息。修改页面如图6-5所示:图6-5修改页面<%if(request.getParameter("ISBN")!=null){ StringISBN=request.getParameter("ISBN"); ResultSetrs=connDB.executeQuery("select*fromtb_bookinfowhereISBN='"+ISBN+"'"); Stringbookname="";StringType=""; StringTPI=""; Stringauthor=""; Stringintro="";StringpDate=""; Stringcover=""; floatprice=0; intcommend=0; intnewbook=0; if(!rs.next()){ out.println("<scriptlanuage='javascript'>alert('您的操作有误!');window.location.href='index.jsp';</script>"); }else{ bookname=rs.getString("bookname"); Type=rs.getString("Type"); TPI=rs.getString("publisher"); author=rs.getString("writer"); intro=rs.getString("introduce"); price=rs.getFloat("Price"); pDate=rs.getString("pDate"); cover=rs.getString("cover"); newbook=rs.getInt("newbook"); commend=rs.getInt("commend"); }%>判断从图书管理首页传递的参数ISBN是否为空值。如果为空值则说明用户不是正常操作,需要将页面重定向到图书管理首页,否则根据参数ISBN查询图书的基本信息并显示在相应的表单元素中。6.3.3删除图书信息删除页面如图6-6所示:图6-6删除页面6.4订单管理订单管理实现分页显示订单概要信息,执行订单和查看订单详细信息的接口。订单列表中分页显示需要根据订单的状态显示不同的信息,如果订单已被执行,则显示“已执行”文字,否则提供执行订单的图标。订单管理页面如图6-7所示:图6-7订单管理页面主要通过订单管理页面传递的订单编号在订单主表tb_order中查询订单的基本信息,再通过视图V_order_detail查询订单的详细信息并显示。订单明细页面如图6-8所示:图6-8订单明细页面6.5用户管理用户的管理主要是查看用户基本信息和对于经常失信的用户予以冻结或解冻。用户管理页面如图6-9所示:图6-9用户管理页面在用户信息表tb_member中,除了包括用户基本信息字段外,还包括一个标记用户信息是否被冻结的字段freeze,该字段为int型,默认值为0,这里0代表未被冻结,1代表已经被冻结。由此可见,实现冻结用户只需将该用户的freeze字段设置为1即可,实现解冻设置为0。<%if(request.getParameter("ID")!=""){ intID=Integer.parseInt(request.getParameter("ID")); Stringsql="updatetb_membersetfreeze=1whereID="+ID; intret=0; ret=connDB.executeUpdate(sql); if(ret!=0){ out.println("<scriptlanguage='javascript'>alert('该会员信息已经被冻结!');window.location.href='memberManage.jsp';</script>"); }els

温馨提示

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

评论

0/150

提交评论