- 564.22 KB
- 2022-04-22 13:54:59 发布
- 1、本文档共5页,可阅读全部内容。
- 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
- 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
- 文档侵权举报电话:19940600175。
'JSP网上书店系统设计毕业论文目录第一章绪论11.1网上书店的现状和发展11.1.1网上书店研究背景及意义11.1.2网上书店的研究现状21.2开发工具和环境简介31.2.1JSP简介31.2.2JavaBean简介41.2.3JAVA语言简介51.2.4SQLServer简介51.2.5JSP安装环境配置61.2.6运行环境7第二章网上书城系统需求分析82.1系统功能分析82.2可行性研究82.3需求分析92.3.1系统组成92.3.2角色识别102.4数据字典12第三章平价网上书城管理系统总体设计153.1系统的流程设计153.2功能模块设计16第四章数据库设计184.1数据库需求分析184.2数据库逻辑结构设计21第五章详细程序设计255.1程序说明255.2具体模块划分255.2.1前台主页面模块255.2.2用户注册模块265.2.3用户登录模块285.2.4书目浏览模块295.2.5购物车模块30
5.2.6查看订单模块315.3详细代码及说明32第六章系统测试356.1测试的重要性及目的356.2测试的步骤366.3测试的主要内容36总结与展望38致谢39参考文献40
第一章绪论随着计算机、网络、通信技术的发展和日益融合,以及Internet的普及应用,包括电子商务(EC)、视频会议、网上书店等在内的一些应用已开始引起社会的关注,并逐步走进人们的日常生活。网上书店是网络环境下图书发行的典型代表,也是未来的发展趋势。网络书店是纯虚拟的,采用以网络作为平台搜集、整理图书信息,用网下配送公司实施速递服务的电子商务形式,是网上零售业的典型代表。和传统图书发行相比,在信息发布、购买支付、物流配送等环节需要更多的网络手段。这也是网上书店与传统书店最大的不同。例如:数量多,品种全。网上书店经营图书的数量之多、品种之全,是令许多传统书店望尘莫及的。另外,网上书店除了再版新书外,还有以前出版的图书及古旧图书等。冲破时空局限将时间延长至无限。网上书店极大地拓展了图书采购的地域限制,采购人员可漫游任何地域的任何一家书店,无论是国内网上书店还是国外网上书店,只要输入其网址,就可进入,采购所需要的图书。此外,网上书店打破了传统购书在时间上的限制,它们提供全年三百六十五天每天二十四小时的全天候服务,使采购图书随时都可以进行。提供增值服务。网上书店充分发挥其网络优势,多数网上书店都提供了多种多样的服务,如新书推荐、畅销书排行、读者评论、作者访谈、专家点评等诸多栏目,使读者既可以全方位地把握图书信息,又可以进行在线讨论,交流心得。能为用户提供一个与书店进行直接沟通、相互联系的优越条件,是网上书店的一大特色。还有的网上书店提供跟踪服务,当读者在某书店有过一次购买行为后,它就会根据记录,在读者下次再登录该书店时,为其提供专门设计的推荐书目。提供便捷的检索方式。网上书店提供了多种检索途径,其中有分类检索。多数网上书店都有自己的一套分类方法,大类类目和细分次均各不相同,只有少数几家网上书店,如巴颜喀拉出版在线和北京图书大厦采用了《中图法》的大类分类方法。另外,用户还可以按书名、作者、出版社等进行单独检索和组合检索,这种检索方式无疑比浏览传统书目的方式便捷得多。提供详尽的书目信息。与传统现场采购相比,网上采购不能直接翻阅图书的内容,了解图书的全貌。为了弥补这种缺陷,一些网上书店为用户提供了尽可能完整详尽的书目信息。如当当网上书店提供的书目资料包括题名、作者、出版机构、出版日期、出版号、页数、开本;旌旗网上书店的书目信息包括书名、出版社、作者、装帧、开本、出版日期、版次、校编号、丛书名、页数等。这些优点是传统书目不能相比的。价格低廉。传统采购无论是从本地书店还是从异地书市采购,都必须派采购人员前往,花费了许多资金。网上订购则节约了这笔资金。另外,网上书店的图书一般都打折销售,有的还采用会员制,会员以优惠价购书。JSP是Sun公司推出的一种网站开发技术,Sun公司借助自己在Java上的不凡造诣,又把人们引进JSP时代,JSP即JavaServerPage,它可以在Servlet和JavaBean的支持下,完成功能强大的Web应用程序。本设计中,采用了JSP作为开发工具,构建了一个能实现简单的电子商务的小型动态商务网站——网上书城系统。1.1网上书店的现状和发展1.1.1网上书店研究背景及意义
自从进入互联网时代以来,网络以其前所未有的速度改变着人们的生活方式,改变着人们的价值观念。如果说这是一次经济革命,它比工业革命所带来的影响价值更深入彻底得多,它将传统经济推向了无形的虚拟空间。地球村即真实地体现了经济全球化的趋势。美国未来学家阿尔温·托夫勒曾预言“电脑网络的建立与普及将彻底改变人类生存及生活的模式。控制与掌握网络的人就是人类未来命运的主宰。”今天,网络的确正在深刻地冲击着人们的生活模式,出版发行业作为人类重要的经济产业更不能漠视甚至回避网络时代的到来。网络经济模式正以前所未有的迅猛势头席卷我们生活的各个领域:随着电子商务的日益成熟,网上书店应运而生,并以其方便,快捷等一系列优点冲击着传统的图书发行产业,这既是机遇又是挑战。网络时代的今天,谁能更好的利用好这柄双刃剑必将成为未来图书出版发行业新的主宰者。我国由于网络技术起步较晚,电子商务体系还很不完善,与欧美等国有较大差距。网上书店是电子商务网站的一种类型。网上书店是近年来随着网络技术的发展而产生的一种新型的书店形式。与传统书店相比,网上书店拥有许多的优势。网上书店的建立可以大大减少图书销售中的中间环节,节省大量的人力、物力,并且能够提供更多的书目信息。另外,网上购书的读者不会再受地域的限制,而是遍及世界各地,这也就极大限度地扩大了出版物的发行范围。正是由于这些优势,网上书店才能得以在短时间内迅速发展起来。网上书店的兴起,实际上是Intemet电子商务在图书业发展的必然结果,它使传统的图书销售业发生了根本性的变革,同时也使传统的购书方式发生了根本性的变化。伴随着网络的发展,电子商务的不断完善,我国出版发行业越来越强烈地意识到网络带来的巨大商机,各个出版发行单位纷纷上马,抢占有利于自身发展的网上阵地。他们利用网络塑造企业形象,推销图书及有关产品,以期达到向国内外众多网络用户宣传自己,提高企业知名度和获取丰厚利润的目的。上网的出版发行企业不管是书店还是出版社,几乎都在进行图书的线上销售经营活动,网络销售将成为出版物销售的新模式和新的增长点。1.1.2网上书店的研究现状随着我国经济的发展,电子商务在企业的日常生活中将会发挥越来越多的作用,尤其在金融、政府、事业单位方面电子商务更是可以发挥其竞争优势。从电子商务的角度来看,网上书店的研究主要从信息流、物流和资金流等角度进行研究。从营销学的角度来看主要集中在营销组合策略、分销渠道等角度的研究。网上书店与网络出版密切相关。网上书店又分几种。一种是出版社网站的一个有机组成部分,还有的是发行单位的网上表现形式,比如新华书店开办的网上书店,个体书商创办的网上书店,还有网络公司创办的网上书店等等,形式多样。褚峻等依据经营思路将网上书店划分为以下四种类型:以售书营利为目的的网上书店,以提供信息服务为主的网上书店。以专业性见长的网上书店。以电子版图书为主的网上书店。
李大星认为,最具代表性的网上书店首推亚马逊网上书店。户访问该书店主页,利用电脑检索书店提供的出版物目录,物色到自己喜欢的书。通过键盘向该书店订购,美国本土的购书人大概两三天内便可收到。其主页的推荐书目每日更换,提供最新书目和出版信息,有出版家、评论家以及普通读者对某书的评述。客户如向书店提供自己的个人信息,网上书店会定期向你传递有关的书目信息及相关著作,形成个性化服务。亚马逊的模式是否适于中国书业,国内网上书店到底采用B2B,还是B2C这方面的讨论很多。陈锦涛的论述比较具有代表性。他认为中国不能完全照搬亚马逊模式,其理由如下:亚马逊是依靠资本市场的支持和成熟的社会化专业协作服务(如物流、支付、快递等体系)形成与传统店铺销售完全不同的新的商业模式(B2C)。中国图书品种多、质量参差不齐、寿命短,自身盈利水平有限,全国出版社和书店粥少僧多,之图书市场进入的门槛低,任何资本都能轻易进入,电子商务基础薄弱,一哄而起的网络书店管理水平和服务水平都不如传统书店。在中国照搬亚马逊B2C的模式肯定行不通,由于目前人们对B2B模式的狭隘理解,导致了急功近利的企业行为。我们应该认识到B2B不仅仅是企业商机通过网上撮合更重要的是企业商业信息的公布业务环节的流转商品所有权的转移交易程序的确认都必须准确化、标准化和契约。化褚峻认为,在国内自杭州新华书店创办第一家网上书店后,涌现出一系列网上书店,较为有名的有1999年初开通的上海书城网上书店和北京图书大厦网上书店。国内网上书店的支付方式主要有信用卡网上支付、人民币储蓄账户网上支付、电汇、邮汇等图书配送方式主要有邮寄、EMS、UPS、送书上门(本地)、异地网点配送等配送时间没有统一的要求。总体上说,国内的网上售书缺乏规范随意性强买卖双方的权益保障都有缺陷。张志强根据1997——2005年的《中国互联网络发展状况统计报告》对国内网上书店的优势、存在问题等进行了分析。他认为从长远角度看,国内网上书店具有消费主体、消费习惯、需求等优势,但也存在着交易安全性、图书质量、支付手段等问题。他建议网上书店要重视信誉,树立品牌;增加技术含量,提高服务质量;恰当运用网上广告、链接等扩大影响;重视运用电子邮件促销。由于我国电子商务的概念并未深入人心网络普及率不高网上购书优势不明显、信息服务不完善、质量低,结算方式落后、图书配送周期长、成本高、安全保障问题令人担心。这些问题既严重阻碍了我国网上书店的发展,也妨碍了我国的信息化进程。网上书店面临的这些问题巫待解决。1.2开发工具和环境简介1.2.1JSP简介JSP(JavaServerPages)是由SunMicrosystems公司倡导、许多公司参与一起建立的一种动态网页技术标准,JSP技术在Servlet技术基础上发展起来的,它正在飞速发展中,现已成为Java服务器编程的重要组成部分。它虽然还未成型,但是它必将和J2EE(Java2EnterpriseEdition)一起发展。JSP是结合markup(HTML和XML)和Java代码来处理一种动态页面。每一页第一次被调用时,通过JSP引擎自动被编译成Servlet,然后被执行,以后每次调用时,执行编译过的Servlet。JSP提供了多种方式访问Javaclass、Servlet、Applets和WebServer,因此,Web应用的功能可以分成多个明确定义公用接口的组件,通过JSP将它们结合在一起。在JSP第一次获得来自于客户端浏览器的请求时,JSP文件将被JSP引擎(JSP
engine)转换成一个Servlet,即将”.jsp”文件编译成JavaClass文件。当Servlet引擎接收到请求后,如果设置了使用最新的JSP,它就会去找JSP文件,检查该文件在上次编译后是否改动过。如果改动过,就会重新编译生成新的Servlet,最终将请求转交给编译好的Servlet引擎执行。在编译时如果发现JSP文件有任何语法错误,转换过程将中断,并向客户端发出出错信息;如果编译成功,则所转换产生的Servlet代码被编译,然后该Servlet被JSP引擎加载到内存中。此时JSP引擎还请求了jspInit()方法的执行,并对此Servlet初始化。JspInit()方法在Servlet的生命周期中只被请求一次,然后将被调用来处理客户端的请求和回复操作。对于所有随后对该JSP文件的请求,服务器将检查该JSP文件自最后一次被存取后是否经过修改。如果没有修改,则将请求交还给还在内存中的Servlet的jspService()方法,执行回复操作。由于Servlet始终驻于内存,所以响应是非常快的。Jsp页面在第一次访问时由于要转化和编译,运行速度较慢,但是当第二次访问该页时,由于文件已经被编译成字节码文件了,所以速度非常得快。JSP页面看上去像标准的HTML和XML页面,并附带有JSP引擎能够处理和解析执行的代码与组件。通常,JSP代码和组件用于创建在最终页面上显示的文本。通常来说,JSP页面包括编译指令,动作指令,声明,表达式和程序段等内容。(1)编译指令:使用JSP编译指令(〈%@和%〉内的)来指定所使用的脚本语言,Servlet实现的接口,Servlet扩展的类,Servlet导入的软件包。JSP指令的一般语法形式为:<%@指令名=“值”%>。(2)动作指令(标识):动作指令用于执行某些动作。在JSP规范中有2种类型的动作指令的标识。第一种是标准动作,它定义的是无论在什么版本的JSP引擎或Web服务器下总是可用的动作。第二种是自定义动作,它通过使用taglib指令来实现。例如JSP:useBean;JSP:setProperty;JSP:getProperty就是标准动作。(3)声明:用于声明合法的变量和方法。与任何语言相同,JSP语言使用变量来保存数据。这些变量用declaration元素声明,声明的语法为<%!declaration(s)%>。当页面被初始化的时候,JSP页面中的所有声明都被初始化。除了简单的变量,方法也能被声明。声明不对当前的输出流产生任何影响。(4)表达式:通过计算表达式所得到的结果来表示某个值。表达式的形式为:<%=expression>。表达式求值的结果被强制转换为一个字符串,并插入到当前的输出流中。(5)程序段:JSP可以在页面中包含的一段程序,称之为程序段。程序段是一个代码片断,在请求的处理过程中被执行。程序段可以和页面中的静态元件组合起来创建动态生成的页面。程序段在“<%%>”中定义,在这对标识中的所有东西都会被当成JSP程序执行。1.2.2JavaBean简介
JavaBean技术是一种基于Java的组件技术,JavaBean组件可以用来执行复杂的计算任务,或负责与数据库的交互以及数据的提取等,是解决代码重用问题的一种策略。以前的组件无法实现真正的代码重用,其主要原因就是它们对于处理平台的依赖和对开发语言的依赖过重。由于Java语言在这些方面所具有的特点和优势,使得基于它的软件JavaBean组件技术倍受人们的关注。它的任务就是:一次编写,可以在任何地方执行,可以在任何地方重用。JavaBean组件可以在任何地方冲用包括了可以在应用程序、其他组件、文档、Web站点和应用程序构造器工具等多种方案中再利用。为了创建和使用Java软件组件,JavaBean被实现为一种独立于平台和结构的应用程序接口,它的实现可以忽略内部的结构及细节问题,只需要定义其外部的特征及对外功能就行。其中,属性、方法和事件三种接口可以独立对外进行开发。JavaBean的实质就是一个.class文件,也可以成为类文件。JavaBean以binary格式保存,可以保护Java源代码不容易被他人抄袭。1.2.3JAVA语言简介Java是一种简单易用、完全面向对象、具有平台无关性且安全可靠的主要面向Internet的开发工具。自从1995年正式问世以来,Java的快速发展已经让整个Web世界发生了翻天覆地的变化。在早期,Java比较多的用在浏览器上,插入到网页中(即是JavaApplet程序),成为最灵活、最强大的网页多媒体的载体,但由于Java虚拟机相对于个人电脑而言,有占用资源大,安全性相对较差等缺点,Applet逐渐的被后起之秀Flash所替代,但随着JavaServlet的推出,Java在电子商务方面开始崭露头角,最新的JSP(JavaServerPage)技术的推出,更是让Java成为基于Web的应用程序的首选开发工具,目前的Java技术已成为所有大型电子商务项目的必然选择。1.2.4SQLServer简介SQLServer是一个关系数据库管理系统它最初是由MicrosoftSybase和Ashton-Tate三家公司共同开发的于1988年推出了第一个OS/2版本在WindowsNT推出后Microsoft与Sybase在SQLServer的开发上就分道扬镳了,Microsoft将SQLServer移植到WindowsNT系统上专注于开发推广SQLServer的WindowsNT版本Sybase则较专注于SQLServer。在UNIX操作系统上的应用在本书中介绍的MicrosoftSQLServer以后简称为SQLServer或MSSQLServer。SQLServer2000是Microsoft公司推出的SQLServer数据库管理系统的最新版本该版本继承了SQLServer7.0版本的优点同时又比它增加了许多更先进的功能具有使用方便可伸缩性好与相关软件集成程度高等优点可跨越从运行MicrosoftWindows98的膝上型电脑到运行MicrosoftWindows2000的大型多处理器的服务器等多种平台使用。SQLServer2000的特性Microsoft®SQLServer™2000的特性包括:Internet集成。SQLServer2000数据库引擎提供完整的XML支持。它还具有构成最大的Web站点的数据存储组件所需的可伸缩性、可用性和安全功能。SQLServer2000程序设计模型与WindowsDNA构架集成,用以开发Web应用程序,并且SQLServer2000支持EnglishQuery和Microsoft搜索服务等功能,在Web应用程序中包含了用户友好的查询和强大的搜索功能。可伸缩性和可用性。同一个数据库引擎可以在不同的平台上使用,从运行MicrosoftWindows®98的便携式电脑,到运行MicrosoftWindows2000数据中心版的大型多处理器服务器。SQLServer2000企业版支持联合服务器、索引视图和大型内存支持等功能,使其得以升级到最大Web站点所需的性能级别。
企业级数据库功能。SQLServer2000关系数据库引擎支持当今苛刻的数据处理环境所需的功能。数据库引擎充分保护数据完整性,同时将管理上千个并发修改数据库的用户的开销减到最小。SQLServer2000分布式查询使您得以引用来自不同数据源的数据,就好象这些数据是SQLServer2000数据库的一部分,同时分布式事务支持充分保护任何分布式数据更新的完整性。复制同样使您得以维护多个数据复本,同时确保单独的数据复本保持同步。可将一组数据复制到多个移动的脱接用户,使这些用户自主地工作,然后将他们所做的修改合并回发布服务器。易于安装、部署和使用。SQLServer2000中包括一系列管理和开发工具,这些工具可改进在多个站点上安装、部署、管理和使用SQLServer的过程。SQLServer2000还支持基于标准的、与WindowsDNA集成的程序设计模型,使SQLServer数据库和数据仓库的使用成为生成强大的可伸缩系统的无缝部分。这些功能使您得以快速交付SQLServer应用程序,使客户只需最少的安装和管理开销即可实现这些应用程序。数据仓库。SQLServer2000中包括析取和分析汇总数据进行联机分析处理(OLAP)的工具。SQLServer中还包括一些工具,可用来直观地设计数据库并通过EnglishQuery来分析数据。SQLServer2000共有4个版本,分别是个人版,标准版,企业版和开发版。SQLServer2005是微软出的SQL系列最新版本。其主要特点如下:(1)高性能设计,可充分利用WindowsNT的优势。(2)系统管理先进,支持Windows图形化管理工具,支持本地和远程的系统管理和配置。(3)强壮的事务处理功能,采用各种方法保证数据的完整性。(4)支持对称多处理器结构、存储过程、ODBC,并具有自主的SQL语言。SQLServer以其内置的数据复制功能、强大的管理工具、与Internet的紧密集成和开放的系统结构为广大的用户、开发人员和系统集成商提供了一个出众的数据库平台。1.2.5JSP安装环境配置服务器在接收到客户端传过来的一个页面请求时,先判断是否是JSP页面请求(从扩展名来判断),如果不是,只是一般的HTML页面请求,则直接把HTML文档传给客户端,完成客户端与服务器的一次连接。如果判断是JSP页面请求,则由JSP引擎(或Servlet引擎)将JSP页面代码转换成Servlet代码,再通知服务器上的JVM(Java虚拟机)对转换过来的Servlet代码进行编译,将生成的字节码文件放在服务器上相应的地方,并执行编译后得到的字节码,然后把结果传送给客户端,这样就完成一次连接。以后如果有相同的JSP页面的请求,则直接由JSP引擎通知JVM执行已有的字节码,并把结果传送给客户端。从上面JSP运作全过程可见,运行JSP最少需要三样东西:JSP引擎、Web服务器和JVM。最常用的Java开发工具你可以选择IDE(IntegrationDevelopmentEnvironment继承开发环境)也可以直接用SUN公司提供的JDK进行开发。常用的IDE有JBuilder,Ecelipse等,它们是桌面开发环境嵌入JDK,给用户的开发带来很大的便利。本系统直接采用JDK作为JVM和Java编译器。所用的操作系统是Windowsxp,服务器采用的是tomcat,利用了它充当JSP引擎,同时还利用了它的信息发布功能。首先把JDK,tomcat
安装到本地硬盘C盘根目录下,下面详细的介绍如何配置运行环境:第一步:进入我的桌面,右击“我的电脑”,选择“属性”选项,进入“系统属性“对话框,单击”高级标签“单击“系统变量”部分的“新建按扭”,创建JAVA-HOME变量,在变量值栏内输入C:jdk1.4.2_05;第二步:同样的方法创建CLASSPATH变量,在变量栏内输入;%JAVA_HOME%lib;%JAVA_HOME%libtools.jar(要加.表示当前路径)CLASSPATH为java加载类(classorlib)路径,只有类在classpath中,java命令才能识别。第三步:创建Tomcat-Home变量,在变量栏内输入C:Tomcat5.0;第四步:检测配置是否成功:编写一个java程序,例如:publicclassHelloWorldApp{publicstaticvoidmain(Stringargs[]){System.out.println(“HelloWorld!”);}}首先把它放到一个名为HelloWorldApp.java的文件中,这里,文件名应和类名相同,因为java解释器要求公共类必须放在与其同名的文件中。然后对它进行编译:c:>javac–gHelloWorldApp.java编译的结果是生成字节码文件HelloWorldApp.class。最后用java解释器来运行该字节码文件:c:>javaHelloWorldApp,结果是在屏幕上显示“HelloWorld!”至此,JDK完全安装成功。1.2.6运行环境本系统采用联网多机多用户操作方式,系统的运行环境包括硬件、操作系统、关系数据库等软件:硬件:中央处理器(CPU):PI以上的处理器;硬盘:10GB以上硬盘;软驱:1.44MB软驱;内存:128MB;显示器:15寸/17寸显示器;操作系统:Windows2000,WindowsNT,WindowsXP,Unix,Linux;关系数据库:SQLServer2005;
第二章网上书城系统需求分析为了最终实现目标系统,必须设计出组成这个系统的所有程序和文件(或数据库)。模块是数据说明、可执行语句等程序设计对象的集合,它是单独命名的而且可通过名字来访问。模块化就是把程序化分成若干个模块,每个模块完成一个子功能,把这些模块集起来组成一个整体,可以完成指定的满足问题的要求。2.1系统功能分析首先对现有系统进行分析,现有系统是信息的重要来源。分析已有系统的功能和实现,从而确定新系统的设计目标和模型。由于条件有限,调研主要是在网上进行。即通过在网上已有的图书网站注册成会员来了解其具备的功能。(1)从用户角度来看:用户通过在线注册成为网站的用户,可以获得以下功能:书目浏览,购买图书,查看订单,修改订单,修改密码,修改个人信息,书籍简介,投票箱等。另外,用户注册成功后,可以进入到网站的留言板块进行留言等。(2)从网站的角度看:①网站应该包含商品搜索功能:按书名(模糊)查询。②订单处理功能,确认订单方式:a)电话通知方式b)E-mail方式③管理员管理:查看用户信息,并根据用户信息和用户订单对商品进行发派。④书目浏览a)书名b)出版社c)作者d)价格e)订购号⑤好书的投票查看用户好书投票的信息及投票百分比的评比。⑥论坛用户进行信息交流的地方,可以在留言板进行留言,为查找图书提供好的网站等等。2.2可行性研究可行性研究阶段的主要任务是在系统初步调查的基础上,对新系统是否能够实现和值得实现等问题做出判断,避免在花费了大量的人力和物力之后才发现系统不能实现或新系统投入使用后没有任何实际意义而引起的浪费,对新系统可行性的分析,要求用最小的代价在尽量短的时间内确定系统是否可行。
(1)技术可行性分析平价网上书城管理系统的开发是一项复杂的系统工程。为了保证系统开发成功,必须采用工程化的系统开发方法,并研究出一些符合工程化标准的开发方法。这些方法旨在指导开发者进行工程化的系统开发,从而加快系统开发的速度,保证质量以及降低开发成本。工程化的系统开发方法确实在开发实践中取得了一定的效果。此次开发使用JSP作为开发语言,采用Servlet技术Tomcat5.0作为Web服务器。(2)运行可行性分析随着计算机知识的普及和推广,越来越多的人掌握了计算机的基本使用方法和技能。随着Internet的发展,用户对于网络、WINDOWS等环境下的软件使用比较熟悉,对于新鲜事物,用户表现出极大的兴趣和热情。(3)经济可行性分析平价网上书城管理系统给人们带来了方便,成为一种全新的商务模式。因此,不用出门就可以在家购物的新时尚已经到来,构建一个网上书店售书系统在经济上是完全可行的。就本系统而言,随着各地大学城的兴建,校园远离市区,学生出校买书的代价提高。另一方面,随着宽带网络进入校园,为学生在网络上进行购物提供有利的条件。而一个网上书店售书系统可以为学生提供软件条件,这样学生便可以足不出户的买书了。商家可以从中获得利润,两全其美。通过以上的分析,开发平价网上书城管理系统是完全可行的。2.3需求分析本系统是一个中小型的电子商务系统----网上书店,可以为各类用户提供方便的在线买书环境,符合目前国内流行的电子商务模式。用户可以在系统中实现注册、浏览商品、搜索查询商品、下定单、处理定单等功能;管理员可以通过用户管理、定单管理、商品管理、评论管理等管理功能来对系统进行维护更新。2.3.1系统组成:(1)客户界面部分图书选购(可按分类查找图书,或者通过关键字进行查询)。购物车功能。查看图书详细信息。用户注册。用户登录。查看用户的订单信息。修改用户个人信息。(2)管理界面部分现有图书管理:修改,删除,查看。用户管理:查看,修改,删除。订单管理:查看订单清单,更新订单付款,出货状态,删除订单。
添加新图书。添加图书分类。2.3.2角色识别角色识别的任务是找出所有可能与系统发生交互行为的外部实体,对象和系统。他们的行为不受系统的控制,但是可以提供输入给系统(即使用系统的功能,或者能够响应系统的服务请求,为系统提供服务的接口)。在前面的描述中可知,用户在访问系统时,可以浏览书籍和查询书籍,并使用购物车筛选自己中意的书籍,购物完之后到服务台进行结帐,并保留订单以便收到货物时进行核对,很显然系统存在这样的主要角色,我们定义该角色为前台客户。同样在系统的后台,也需要人员管理货物,查询,处理订单,管理注册用户,我们定义该角色为系统管理员。综上所述,本系统实际只包含两个角色:前端用户,系统管理员。前台用户的行为:管理个人信息,前台订单处理,购物,浏览信息。管理个人信息的操作:用户注册,用户信息修改,用户登录,用户信息查看。前台订单处理的操作:结帐,查看订单状态,取消订单。购物操作:浏览购物车,将商品放入购物车,取消购物车中的商品,修改购物车中商品的数量,清空购物车。浏览信息:查看图书详细信息,查找图书。系统管理员的行为:用户管理,后台订单管理,商品管理。用户管理的操作:管理员登录,后台验证,查看用户信息,修改用户信息,添加用户,删除用户。后台订单管理的操作:查看订单,确认订单,修改订单状态,删除订单。商品管理:查看图书列表,查看图书详细信息,添加图书,修改图书,删除图书,添加图书分类,删除图书分类,浏览图书分类列表。为了更好的理解我画出了前台用户模型图和系统管理员模型图。
前台用户模型:前台用户管理个人信息前台订单处理浏览信息购物图2-1前台用户模型用户管理后台订单管理商品管理系统管理员图2-2系统管理员模型
表2.1模块功能列表序号功能模块类型功能模块备注1前台用户管理个人信息用户注册,用户信息修改,用户登录,用户信息查看2前台用户前台订单处理结帐,查看订单状态,取消订单3前台用户购物浏览购物车,将商品放入购物车,取消购物车中的商品,修改购物车中商品的数量,清空购物车4前台用户浏览信息查看图书详细信息,查找图书5系统管理员用户管理管理员登录,后台验证,查看用户信息,修改用户信息,添加用户,删除用户6系统管理员后台订单管理查看订单,确认订单,修改订单状态,删除订单7系统管理员商品管理查看图书列表,查看图书详细信息,添加图书,修改图书,删除图书,添加图书分类,删除图书分类,浏览图书分类列表表2.1是根据模块完成任务的不同进行划分的,一共包括7大模块,其中与前台相关的共有4个,与后台相关的共有3个。这些功能模块是建立在我们对系统的需求分析和设计的基础上的。当然这是从大的方向对系统进行的很粗糙的划分,进入系统设计阶段我们将会对系统进行更加精细的划分设计。任何系统的功能的实现都离不开角色的参与,为了赋予不同的角色不同的功能和权限,也为了一定程度上确保系统交易的安全性和顺利进行,我们必须对系统的各种用户进行管理,从表2.1可以看出,系统提供用户登录,用户注册,用户信息查看,用户信息修改的功能。用户登录后是为了从后端数据库中核实用户的登录名和密码,防止非法用户下订单,确保系统的安全性和秩序。其他的功能也是最大限度的保证系统的顺利进行和安全性,这里就不一一说明了。2.4数据字典数据字典最重要的作用是作为分析阶段的工具。任何字典最重要的用途都是供人查询对不了解的条目的解释,在结构化分析中,数据字典的作用是给数据流图上每个成分加以定义和说明。换句话说,数据流图上所有的成分的定义和解释的文字集合就是数据字典,而且在数据字典中建立的一组严密一致的定义很有助于改进分析员和用户的通信。数据库数据字典不仅是每个数据库的中心,而且对每个用户也是非常重要的信息。用户可以用SQL语句访问数据库数据字典。数据字典描述的主要内容有:数据流、数据存储、外部实体、处理过程。(1)数据流:用单箭头表示,如――>。数据流是数据结构在系统内传输的路径。对数据流的描述通常包括以下内容:数据流描述、组成。
(2)加工:用圆或椭圆表示。描述了输入数据流到输出数据之间的变换,也就是输入数据流经过什么处理后变成了输出数据。每个加工都有一个名字和编号。编号能反映该加工位于分层的数据流图的哪个层次和哪张图中,能够看出它是由哪个加工分解出来的子加工。(3)数据存储:用双杠表示。数据存储表示暂时存储的数据。每个数据存储都有一个名字。(4)外部实体:用实心长方形表示。外部实体是存在于软件系统之外的人员或组织,他指出数据所需要的发源地或系统所产生的数据的归属地。数据字典基本表示图形如图2-3所示。图2-3数据字典基本图形表2.1数据字典图书实体信息名字:图书实体。编号:1。描述:存储图书信息。定义:图书编号+图书名+价格+图书介绍。位置:图书信息表。表2.2数据字典用户信息实体信息名字:用户信息实体。编号:1。描述:存储用户信息。定义:用户ID+用户名+密码。位置:用户信息表。
表2.3数据字典订单实体信息名字:订单实体。编号:1。描述:存储订单信息。定义:订单编号+图书编号+购书数量。位置:订单信息表。表2.4数据字典订单列表信息名字:订单列表实体。编号:1。描述:存储订单列表信息。定义:订单编号+用户编号+图书编号+是否付款。位置:订单列表信息表。
第三章平价网上书城管理系统总体设计本系统采用三层架构设计,用户界面层通过统一的接口向业务层发送请求,业务层按自己的逻辑规则将请求处理之后进行数据库操作,然后将数据库返回的数据封装成类的形式返回给用户界面层。这样用户界面层甚至可以不知道数据库的结构,它只要维护与业务层之间的接口即可。3.1系统的流程设计当你以一个客户的身份进入本网站后,你可以浏览图书和搜索你所需要的图书(搜索包括分类查找和关键字查找)。本系统中,只有本站用户才能够在线购书。因此当你选中一本图书要将其放入购物车时,你就必须登录本网站。如果有用户名和密码则可直接登录;如果没有,则需要注册新用户,然后登录。当成功登录后,你就可以查看和管理你的购物车了,可以修改订购数量,可以删除订单,还可以查看和管理你的用户个人注册信息。当你确定购买书的时候就可以提交你的购物车结帐,这时提交后你还可以再继续购书,而后台服务器接受了客户提交的订单之后可以对订单进行处理。一趟完整的购书过程就结束了。结帐方式是通过客户提交订单之后,假设这时客户马上就付款,付完之后,服务端就把订单的状态修改为已付状态。如果这如下图3-2所示。用户图书浏览图书分类查找图书关键字查询放入购物车是否登录用户登录用户注册结帐服务器端处理修改订购数量删除订单图3-1客户端流程图
在服务器端作为系统的管理员在进入管理员界面进行登录,首先也必须进行验证登录,这时系统从admin_user数据库表中查找看有没有用户输入的用户,并验证密码是否正确,如果不正确那么系统提示返回,重新登录。如果正确则进入后面的工作流程。这时管理员可以进行管理操作,比如用户管理操作(查看用户信息,修改用户信息,添加用户,删除用户),图书管理操作(查看图书列表,查看图书详细信息,添加图书,修改图书,删除图书),图书分类管理操作(添加图书分类,删除图书分类,浏览图书分类列表),订单管理操作(查看订单,确认订单,修改订单状态,删除订单)。操作完之后管理员可以退出系统。服务端流程图如下图3-3所示:管理员帐户验证验证成功用户管理图书管理订单管理图书分类管理退出图3-2服务端流程图3.2功能模块设计整个系统的功能模块划分不仅包括系统的模块的划分还有系统的导航功能设置,用户登录以后进入在线购书模块,用户可以购书,也可以查看图书信息,查询图书可以
通过关键字,也可以通过分类查询。当用户找到自己需要的书籍以后可以选择购买,也可以查看图书的详细信息。这时候如果用户选择购买的话,他可以选择购买的数量,并将书籍放到购物车中,这个时候用户就可以去查看购物车信息,购物车中罗列了用户购物的清单(订单),用户可以查看订单信息,修改订单信息。比如说修改书籍的购买数量,或者删除前面购买的书籍。这时用户可以提交购物车到后台结帐,也可以选择继续购书。继续购书就是按照前面的流程在循环的走下去。用户提交购物车以后,订单就不能再被用户修改了。这个时侯用户的流程就走完了。服务器在收到用户提交的订单信息以后,可以确认用户的信息,可以管理订单,比如删除订单或者修改订单的状态,把未付款状态修改成已付,并决定发货(通过修改发货状态信息)。在整个系统中根据角色划分出来的客户端和管理员他们所完成的任务各不相同。客户端完成的功能模块主要包括:个人信息管理,前台订单处理,购物车处理,浏览信息。管理员完成的功能模块主要包括:用户管理,后台订单管理,图书管理,图书分类管理。他们功能的详细划分前面在需求分析时已经作过讨论,这里我们就不在详细阐述了,详情请见2.2角色识别。如图3-3为本系统的功能模块图。网上书店客户端管理员管理个人信息前台订单处理购物浏览信息用户管理后台订单管理图书管理图书分类管理图3-3功能模块图
第四章数据库设计数据库在一个信息管理系统中占有非常重要的地位,数据库结构设计的好坏将直接对应用系统的效率,以及实现的效果产生影响。合理的数据库结构设计可以提高数据存储的效率,保证数据的完整和一致。4.1数据库需求分析针对一般在线书店的需求,得出如下需求信息。用户分为游客和已注册用户。§订单分为单张详细订单和总订单。§一个用户可以购买多本图书。§一个用户对应一张订单。§一个列表对应多张订单。针对本系统功能分析,总结出如下的需求信息。§用户,包括数据项:用户ID、用户名、密码。§图书,包括数据项:图书编号、图书名、价格、图书介绍。§订单列表,包括数据项:订单编号、图书编号、购书数量。§订单,包括数据项:订单编号、用户编号、下单时间。从本系统中规划出的实体有:用户实体、图书实体、订单实体、订单列表实体。订购用户订单列表订单图书实体之间关系的E-R图如图4-1所示。图4-1实体关系E-R图
§图书实体的E-R图如图4-2所示。§包括数据项:用户ID、用户名、密码。图书图书编号图书名称分类编号封面图4-2图书实体E-R图§用户信息实体的E-R图如图4-3所示。§包括数据项:图书编号、图书名、价格、图书介绍。用户用户名密码用户编号E-mail图4-3用户实体E-R图
§订单实体的E-R图如图4-4所示。§包括数据项:订单编号、图书编号、购书数量。订单订单编号用户编号图书编号订购数量图4-4订单实体E-R图§订单列表实体的E-R图如图4-5所示。§包括数据项:订单编号、用户编号、图书编号。订单列表订单号用户编号图书编号是否付款图4-5订单列表实体E-R图
4.2数据库逻辑结构设计本系统的数据库其中包括八个表,分别为管理员表admin,图书类别表catelog,留言表liuyan,公告表gonggao,图书表goods,订单表order,定单详细表orderItem,会员表user。详情请见下面的数据库表:(1)管理员表t_admin表4.1管理员表t_admin字段名数据类型长度允许空useridint4usernamevarchar50yesusepasswordvarchar50yes(2)图书类别表t_catelog表4.2图书类别表t_catelog字段名数据类型长度允许空catelog_idint4catelog_namevarchar50yescatelog_miaoshuvarchar5000yescatelog_delvarchar50yescatelog_fatherint4yescatelog_levelint4yes(3)公告表t_gonggao表4.3公告表t_gonggao字段名数据类型长度允许空gonggao_idint4gonggao_titleint500yesgonggao_contentvarchar8000yesgonggao_datavarchar50yesgonggao_fabuzhevarchar50yesgonggao_delvarchar50yesgonggao_one1varchar50yes
续表4.3字段名数据类型长度允许空gonggao_one2varchar50yesgonggao_one3varchar50yesgonggao_one4varchar50yesgonggao_one5datetime8yesgonggao_one6datetime8yesgonggao_one7int4yesgonggao_one8int4yes(4)图书表t_goods表4.4图书表t_goods字段名数据类型长度允许空goodsint4goodsvarchar500yesgoodsvarchar50000yesgoods_varchar50yesgoods_varchar50yesgoods_int4yesgoods_int4yesgoods_varchar50yesgoods_varchar50yesgoods_int4yesgoods_int4yesgoods_varchar50yesgoods_varchar10yes(5)留言表t_liuyan表4.5留言表t_liuyan字段名数据类型长度允许空liuyan_idint4liuyan_titlevarchar50yesliuyan_contentvarchar5000yes
续表4.5字段名数据类型长度允许空liuyan_datevarchar50yesliuyan_uservarchar50yes(6)订单详细表t_order表4-6订单详细表t_order字段名数据类型长度允许空order_idnchar4order_bianhaovarchar4yesorder_datedatetime255yesorder_zhuangtaivarchar100yesorder_jinenumeric8yesorder_songhuodizhivarchar100yesorder_fukuanfangshivarchar16yesorder_user_idint1yesorder_kuaidivarchar4yes(7)订单表t_orderItem表4-7订单表t_orderItem字段名数据类型长度允许空orderItemint4goods_idint4yesgoods_idint4yesgoods_quantityint4yes(8)会员表表4-8会员表字段名数据类型长度允许空user_idint4user_namevarchar50
续表4.8字段名数据类型长度允许空user_emailvarchar50yesuser_qqvarchar50yesuser_manvarchar50yesuser_agevarchar50yesuser_birthdayvarchar50yesuser_xuellivarchar50yesuser_one1varchar50yesuser_one2varchar50yesuser_one3varchar50yesuser_one4varchar50yesuser_one5varchar50yesuser_one6int4yesuser_one7int4yesuser_one8int4yesuser_one9int8yesuser_one10datetime8yesuser_one11datetime8yesuser_one12bigint8yesuser_huiyuanbigint50yes
第五章详细程序设计5.1程序说明根据前边的需求分析和系统总体设计内容进行程序设计。本系统是以Java语言为基础进行开发的。我个人负责的模块主要是采用JSP技术+JavaBeans+MYSQL模式进行模块开发与实现的。全部都以面向对象的方法进行设计和实现。在程序设计时,我用到了下面的一些定义,解释如下:(1)Page用来定义整个JSP页面的一些属性和这些属性的的值。(2)Pageimport该属性的作用是为JSP页面引入JAVA核心包中的类,这样就可以在JSP页面的程序片部分,变量及函数声明部分,表达式部分使用的类。可以为该属性指定多个值,该属性的值可以是JAVA某个包中的所有类或一个具体的类。(3)includefile表示的是静态的插入一个文件。5.2具体模块划分5.2.1前台主页面模块主页面中上部包含:网站首页、我的信息、我的购物车、我的订单、我要留言、用户登陆、网站公告等。如图5-1所示。图5-1前台主页
主要代码:推荐书籍
style="width:100%;overflow:hidden;white-space:nowrap;">