网上书店系统定稿毕业设计.docx
- 文档编号:29285383
- 上传时间:2023-07-21
- 格式:DOCX
- 页数:38
- 大小:623.45KB
网上书店系统定稿毕业设计.docx
《网上书店系统定稿毕业设计.docx》由会员分享,可在线阅读,更多相关《网上书店系统定稿毕业设计.docx(38页珍藏版)》请在冰豆网上搜索。
网上书店系统定稿毕业设计
1引言
传统书店往往要占用大量的空间,雇佣数量较多的工作人员同时也难以避免读者在购买图书时造成图书翻阅损耗等一系列费用,而与此同时随着互联网在中国的发展,我国网民已经超过了2亿,而其中绝大部分有是属于知识分子的青年人,无疑他们正是广大图书出版物的潜在消费者。
当今网络所显现的超常信息量、无时空局限、传递快捷、操作灵活等优点吸引着越来越多的图书销售商把传统的书店移植到互联网上,从而形成了当今网上书店蓬勃发展的趋势。
利云网上书店正是为了满足这种需求而研发的中小型电子商务系统
利云网上书店系统是基于BS模式的小型电子商务系统,能够满足中小型书店的网上售书需要。
搭建利云网上书店极为简单只需要一台PC机,一根网线,即可进行网上交易。
利云网上书店基本上满足了中小型书店的网上销售需求,其主要功能包括图书展示、网上调查、购物车、收银台、会员管理、订单查询、图书管理、用户管理、订单管理、公告管理、投票管理、退出功能。
图书展示主要实现图书的重点推荐、新书上架图书分类查询、销售排行榜等功能;网上调查功能则提供了书店经理了解读者书籍的需求情况,进而引导订书的种类;购物车功能给每个用户建立了一个相对应的唯一存放选中书籍存放的空间;收银台提供了客户付账的功能,当顾客决定购买购物车里的书籍时,向收银台提交订单;会员管理为每一位注册用户提供了注册、登陆、修改自己注册信息的权利,例如当注册用户的联系方式和地址变动时用户可以通过此功能方便的修改自己的资料;订单查询功能为用户提供了查询自己订单的功能;后台的图书管理是为管理员提供修改、添加删除图书信息的功能;用户管理实现的功能有查看用户信息、消费总额、用户的解冻;订单管理主要负责查看用户的汇款执行情况;公告管理方便管理员向首页公告栏里添加网站公告;投票管理方便管理员向书店添加书店需要调查的书目或删除过期的书目;推出功能负责管理员的推出。
利云网上书店的设计充分考虑了用户的视觉感受,努力做到界面简单明了,功能相对完善。
后台开发充分考虑了使用软件的用户可能对计算机软件并不是很了解,所以在设计的过程中添加了许多必要的提示和说明。
总之利云网上书店将以Java技术为基础,实现图书信息的发布、购物、用户管理、图书后台管理等一系列的功能,力争成为中小型书店网络销售的理想软件。
2技术简介
利云网上书店所涉及的技术主要有以Java语言为核心的JSP(JavaServerPages)技术进行实现业务实现,后台的服务支撑部分为应用服务器Tomca5.0.28以及数据库服务器SQLServer2000。
以下将对主要技术作简明的介绍。
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相比没有任何存在的理由。
JSP2.0是对JSP1.2版本的升级,其中增加了一些有趣的新特性。
JSP2.0的设计目标是使动态网页的设计、开发和维护更加容易,网页编写者不必懂得Java编程语言,也可以编写JSP网页。
JSP2.0增加了一种称为SimpleTag的扩展机制来简化标签API(TagAPI)。
JSP2.0引入的最主要的新特性包括[2]:
a)引入简单表达式语言(EL,ExpressionLanguage),它用于JSP页面中的数据访问。
这种表达式语言简化了JSP中数据访问的代码,不需要使用JavaScript或者Java表达式。
b)引入创建自定义标签的新语法,该语法使用.tag和.tagx文件,这类文件可由开发人员或者网页作者编写。
c)对XML语法做了实质性的改进,增加了新的标准文件扩展名(.tagx用于标签文件,.jspx用于JSP文件)。
2.3Tomcat
Tomcat是一个免费的开源的Serlvet容器,它是Apache基金会的Jakarta项目中的一个核心项目,由Apache、Sun和其它一些公司及个人共同开发而成。
由于有了Sun的参与和支持,最新的Servlet和Jsp规范总能在Tomcat中得到体现。
Tomcat服务器是在SUN公司的JSWDK(JavaServerWebDevelopmentKit,SUN公司推出的小型ServletJSP调试工具)的基础上发展起来的一个优秀的JavaWeb应用容器。
Tomcat已经被JavaWorld杂志的编辑选为2001年度最具创新力的Java产品,同时它又是SUN公司官方推荐的ServletJSP容器[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.4SQLServer2000
SQLServer2000是微软推出的一个大型的关系型数据库管理系统。
作为Windows数据库中出类拔萃的成员,SQLServer2000能够满足各种类型的企业客户和独立软件供应商构建商业应用程序的需要。
SQLServer的可伸缩性既可以适应很小的兆字节个人数据库,也可以适应由数以万记用户使用的巨大的太字节数据库[15]。
SQLServer2000是一种客户机服务器模式的数据库管理系统,这种体系结构把所有的工作负荷分解成在服务器机器上的任务和在客户机机器上的任务,有效地利用了资源,减轻了服务器的压力。
MicrosoftSQLServer2000能够提供特大系统所需要的数据库服务。
在大型客户服务器系统中,成千的用户可能同时连接一个SQLServer2000实例,SQLServer2000有强大的保护功能来处理这种情况。
SQLServer2000也可以有效地为多个用户分配可用的资源,如内在、网络带宽和磁盘IO等[16]。
非常大的Internet站点能够将它们的数据在多个服务器间划分,将处理负担分布到许多计算机上,且允许站点为大量用户服务。
多实例SQLServer2000可以在单台计算机上运行。
例如,为许多其他组织提供数据库服务的组织可以为每个用户组织运行一个单独的SQLServer2000实例,所有实例都在一台计算机上。
这样使得每个用户组织的数据相互独立,而服务组织只管理一个服务器计算机来减少开支。
SQLServer2000应用程序也可以像SQLServer2000一样运行在同一台计算机上。
应用程序使用WindowsInterprocessCommunications(IPC)组件,如共享内存来连接SQLServer2000,而不是网络。
这样SQLServer2000就可以在小系统上使用,此时应用程序必须在本地保存它的数据。
SQLServer2000还支持对多节点群集的规模扩充(ScaleOut),即把一个巨型数据库分区到一个服务器群集中,但是对于用户来说,整个数据库的存储和访问就像是对待一个单独的数据库那样。
通过使用这种扩充规模的伸缩样式,SQLServer2000达到了任何数据库系统在任何平台上所能达到的性能。
故障切换和恢复这两种技术内置到了SQLServer系统中,使得SQLServer具有了高度的可用性[16]。
2.5Eclipse
Eclipse最初是IBM公司的一个软件产品,2001年11月其1.0版正式发布。
面世之初,Eclipse还很不起眼,并饱受业界批评。
所谓万事开头难,软件的初版一般都比较稚嫩。
到2003年3月,Eclipse发布了它的2.1版,立刻引起了轰动,下载的人蜂拥而至,导致它的下载服务器都因超载而拥塞了。
现在,IBM已将投入巨资开发的Eclipse作为一个开源项目捐献给了开源组织Elipse.org,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(称为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公司的一款出色的JavaWebServer,它是在SUN公司的JSWDK(JavaServerWebDevelopmentKit,SUN公司推出的小型ServletJSP调试工具)的基础上发展起来的一个优秀的JavaWeb应用容器,虽然小巧但是功能强大,而且反应速度快、运行稳定可靠、使用简单,如果需要还可以和当前大多数主流应用服务器集成到一起,可扩展性好,是部署中小型应用的理想容器,此外,它还是一款免费的软件,所以在很大程度上降低了成本。
使用它来部署本系统,是一个理想的选择。
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)WindowsXP或Windows2000
b)SQLServer2000SP4或更高版本的数据库服务器
c)JRE1.4.2_03或更高版本的Java运行时环境
d)Tomcat5.0.28或更高版本的应用服务器
4概要设计
4.1系统功能图
根据前期的分析和客户的需求,利云网上书店的前台主要包括重点推荐展台、新书上架、图书分类浏览、销售排行榜、网上调查、查看调查结果、添加至购物车、查看购物车、从购物车中移除图书、清空购物车、填写订单信息、购书结账、会员注册、会员登录、会员资料修改、订单查询模块构成。
利云网上书店前台功能结构如图4.1所示。
图4.1前台功能结构图
网上书店的后台模块主要包括查看图书信息、添加图书信息、修改图书信息、删除图书信息、查看用户信息、冻结解冻用户、查看订单信息、执行订单、查看公告信息、添加公告信息、删除公告信息、浏览投票项目、添加投票项目、删除投票项目、退出后台管理。
网上书店的后台功能结构如图4.2所示。
图4.2后台功能结构图
4.2系统结构设计
本系统将搭建在BS结构的基础之上,系统将首先由用户向WebServer发出请求,而WebServer则将请求交给Servlet进行处理,Servlet根据请求的类型调用相应的JavaBean业务组件来进行操作,业务处理将在JavaBean组件中进行,主要包括对数据库的存取。
JavaBean处理结束之后将结果返回给Servlet,这时,Servlet就可以根据结果将相应的JSP页面返回给用户。
在这样的结构中,JSP页面负责了前台显示,也就是视图(View)层,Servlet扮演了控制器(Controllor)的角色,JavaBean则是业务处理组件模型(Modal)。
这样的设计使得整个系统的结构显得清晰,每个层负责自己
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 网上 书店 系统 定稿 毕业设计
![提示](https://static.bdocx.com/images/bang_tan.gif)