毕业设计网上图书订购系统.docx
《毕业设计网上图书订购系统.docx》由会员分享,可在线阅读,更多相关《毕业设计网上图书订购系统.docx(29页珍藏版)》请在冰豆网上搜索。
毕业设计网上图书订购系统
摘要
互联网技术发展到现在已经相当成熟,互联网已经成为一个全世界最大最全的信息中心,越来越多的人在利用互联网来完成他们的工作,同时也有越来越多的人利用互联网来解放他们的生活,他们利用互联网来完成几乎所有所有现实生活中的事物。
由于所有的领域都在利用互联网,传统商业也是,现在已经有越来越多的商家将他们的生意搬上了互联网,他们小一点的可以开个小的网店。
大一点的可以开个网站。
本次毕业设计的题目就是设计和实现一个网上售书的电子商务网站。
为一个传统的书店提供一个网上展览和销售的平台。
本系统主要以Struts和Hibernate加Mysql为开发基础,以JSP为前台表现手段。
在功能上面基本实现一个电子商务网站应该有的功能模块,包括前台和后台两个层面。
前台方面主要功能有:
用户注册,登录,注销,添加收货人信息,修改收货人信息,删除收货人信息,浏览商品。
添加商品进购物车,修改购物车中商品,删除购物车中商品,清空购物车,将购物车中商品生成定单,查看定单,查看定单明细。
后台方面主要功能有:
查看管理员列表,添加管理员,删除管理员,修改管理员,查看用户列表,添加用户,删除用户,修改用户,查看商品列表,添加商品,删除商品,修改商品,查看定单列表,删除定单等。
关键字:
StrutsHibernateB/S
Abstract
Internettechnologyhasbeendevelopedtoamature,theInternethasbecomeaworld-widelargestandmostoftheinformationcenter,anincreasingnumberofpeopleusingtheInternettocompletetheirwork,andalsomoreandmorepeopleusetheInternettotheliberationoftheirlivesTheyusetheInternettocompletealmostallofallthethingsinreallife.
SinceallthefieldsintheuseoftheInternet,traditionalbusinessisalsonowagrowingnumberofbusinessmenwillbetheirbusinessontotheInternet,thesmallertheycanopenasmallshop.Thebigpointcanopenawebsite.
ThegraduationprojectisthesubjectofDesignandImplementationofanon-lineBooksellersofe-commercesites.Foratraditionalonlinebookstoretoprovideaplatformforexhibitionandsale.ThissystemismainlytoStrutsandHibernatebasisforthedevelopmentandMysqltoJSPforthefutureperformanceofmeans.Intheabovebasicrealizationofafunctionale-commercesitesshouldhavefunctionalmodules,includingtheprospectsandthebackgroundlevel.
Prospectsinthemainfeaturesare:
userregistration,signin,write-off,addtheconsignee,theconsigneetoamendtheinformation,deletetheconsigneeinformation,visitthemerchandise.Addgoodsintotheshoppingcart,shoppingcartofgoodsamendedtodeletetheshoppingcartofgoods,emptyshoppingcart,thecartwillgenerategoodsorders,vieworders,ordersDetailsview.
Backgroundinthemainfeaturesare:
Showthelistadministrators,managersadd,deleteadministrator,modifyadministratortoviewthelistofusers,addusers,deleteusers,modifytheusertoviewthelistofgoods,addedcommodities,commoditiesdelete,modifyMerchandise,vieworderslist,deleteandsoonorders.
Keyword:
StrutsHibernateB/S
1绪论
近年来,随着Internet的迅速崛起,互联网已日益成为收集提供信息的最佳渠道并进入传统的流通领域。
于是电子商务开始流行起来,一种全新的购物理念开始形成并逐步发展。
网上购物是一种具有交互功能的商业信息系统。
它向用户提供静态和动态两类信息资源。
所谓静态信息是指那些比经常变动或更新的资源,如公司简介等;动态信息是指随时变化的商务,是通过电子化的手段来完成商业贸易活动的一种方式。
等等。
那么究竟什么是电子商务?
电子商务,顾名思义是指在互联网上进行的电子化的商务活动。
从狭义上看,电子商务也就是电子交易,主要指利用Web提供的通信手段在网上进行交易活动,包括通过Internet买卖产品和提供服务。
产品可以是实体化的,如汽车、电视,也可以是数字化的,如新闻、录像、软件等基于比特的产品。
此外,还可以提供各类服务,如安排旅游、远程教育等。
总之,电子商务并不仅仅局限于在线买卖,它将从的信息,如商品报价,会议安排和培训信息等。
网上购物系统具有强大的交互功能,可使商家和用户方便的传递信息,完成电子贸易或EDI交易。
这种全新的交易方式实现了公司间文档与资金的无纸化交换。
今天,我们已经可以确信电子商务毋庸置疑是未来的发展方向。
但是电子商务却还没有一个标准的定义。
Intel公司认为:
电子商务=电子市场+电子交易+电子服务;IBM认为:
电子商务=web;HP公司则说:
“电子生产到消费各个方面影响进行商务活动的方式。
除了网上购物,电子商务还大大改变了产品的定制、分配和交换的手段。
而对于顾客,查找和购买产品乃至服务的方式也大为改进。
而从广义上讲,电子商务还包括企业内部商务活动,如生产、管理、财务等以及企业间的商务活动,它不仅仅是硬件和软件的结合,更是把买家、卖家、厂家和合作伙伴在Internet、Intranet和Extranet上利用Internet技术与现有的系统结合起来开展的业务活动。
从最初的电话、电报到电子邮件以及20多年前开始的EDI,都可以说是电子商务的某种形式;发展到今天,人们已提出了包括通过网络来实现从原材料的查询、采购、产品的展示、定购到出品、储运以及电子支付等一系列贸易活动在内的完整电子商务的概念。
在发达国家,电子商务已发展迅速,通过Internet进行交易已成为潮流。
2开发环境及开发工具的介绍
2.1Java语言介绍
Java语言是一门高级程序设计语言.它在各个重要的行业部门得到了广泛的应用,Java技术的通用性、高效性、平台移植性和安全性,使之成为网络计算的理想技术.除上面的技术之外还有其他的特点:
Java语言是面向对象的语言,主要集中在对象和接口的设计。
Java将具有相同特性的数据封装成一个类,实现了对现实实体的抽象,也就是对对象的总体描述;Java可以实现模块化和信息隐藏,Java将数据和操作数据的方法封装在一起,使得数据全都隐藏起来,暴露给外面程序的仅是对数据操作的方法;一个类提供了一类对象的原型,通过Java的继承机制,子类可以使用父类所提供的方法,从而实现了代码的复用;多态就是一个实体多种形态,在Java中表现的最突出的就是一个类实现了多个接口,从而可以有多个功能。
另外Java语言是安全的,Java不支持指针,一切对内存的访问都必须通过对象的实例变量来实现,这样就防止程序员使用"特洛伊"木马等欺骗手段访问对象的私有成员,同时也避免了指针操作中容易产生的错误。
Java程序是可移植的,与平台无关的特性使Java程序可以方便地被移植到网络上的不同机器。
同时Java的类库中也实现了与不同平台的接口,使这些类库可以移植。
另外,Java编译器是由Java语言实现的,Java运行时系统由标准C实现,这使得Java系统本身也具有可移植性。
Java语言和其它解释执行的语言如BASIC不同,Java字节码的设计使之能很容易地直接转换成对应于特定CPU的机器码,从而得到较高的性能。
2.2JavaBean介绍
简单地说,JavaBean是用Java语言描述的软件组件模型,其实际上是一个类。
这些类遵循一个接口格式,以便于使函数命名、底层行为以及继承或实现的行为,可以把类看作标准的JavaBean组件进行构造和应用。
JavaBean有以下特点:
易于维护、使用、编写。
可实现代码的重用性。
可移植性强,但仅限于Java工作平台。
便于传输,不限于本地还是网络。
可以以其他部件的模式进行工作。
Java程序中往往有重复使用的段落,JavaBean就是为了能够重复使用而设计的程序段落,而且这些段落并不只服务于某一个程序,而且每个JavaBean都具有特定功能,当需要这个功能的时候就可以调用相应的JavaBean。
从这个意义上来讲,JavaBean大大简化了程序的设计过程,也方便了其他程序的重复使用。
2.3Servlet/Jsp介绍
Jsp(JavaServerPage)是在普通Html中嵌入了Java代码的一个脚本,在这一点上,它与其它的脚本语言一样,但它与其它语言不同的是:
其它脚本语言由服务器直接解释这个脚本,而Jsp则由Jsp容器(如Tomcat)首先将其转化为Servlet,然后再调用Javac将Servlet编译为Class文件.最终,服务器解释的是Class文件.那么什么是Servlet呢?
Servlet其实是一个特殊的Java类,Servlet类一般从HttpServlet类继承而来,在这个类中至少要实现doGet或者doPost函数,在这两个函数中处理来自客户的请求,然后将结果返回.
2.4Eclipse介绍
Eclipse是一种可扩展的开放源代码IDE.,业界厂商合作创建了Eclipse平台.Eclipse允许在同一IDE中集成来自不同供应商的工具,并实现了工具之间的互操作性,从而显著改变了项目工作流程,使开发者可以专注在实际的业务上.
利用Eclipse,我们可以将高级设计(也许是采用UML)与低级开发工具(如应用调试器等)结合在一起.如果这些互相补充的独立工具采用Eclipse扩展点彼此连接,那么当我们用调试器逐一检查应用时,UML对话框可以突出显示我们正在关注的器件.事实上,由于Eclipse并不了解开发语言,所以无论Java语言调试器、C/C++调试器还是汇编调试器都是有效的,并可以在相同的框架内同时瞄准不同的进程或节点.
Eclipse的最大特点是它能接受由Java开发者自己编写的开放源代码插件,这类似于微软公司的Visual Studio和Sun微系统公司的NetBeans平台.Eclipse为工具开发商提供了更好的灵活性,使他们能更好地控制自己的软件技术。
2.5Tomcat介绍
Tomcat是一个免费的开源的Serlvet容器,是一个开源的服务器,里面可以装载WAR的类似于JAR的压缩文件,这个文件按一定目录结构来组织:
通常其根目录下包含有Html和Jsp文件或者包含这两种文件的目录,另外还会有一个WEB-INF目录,这个目录很重要.通常在WEB-INF目录下有一个web.xml文件和一个classes目录,web.xml是这个应用的配置文件,而classes目录下则包含编译好的Servlet类和Jsp或Servlet所依赖的其它类(如JavaBean)
在Tomcat中,应用程序的部署很简单,你只需将你的WAR放到Tomcat的webapp目录下,Tomcat会自动检测到这个文件,并将其解压.你在浏览器中访问这个应用的Jsp时,通常第一次会很慢,因为Tomcat要将Jsp转化为Servlet文件,然后编译.编译以后,访问将会很快
2.6MySql介绍
MySQL是一个真正的多用户、多线程SQL数据库服务器,它是一个客户机/服务器结构的实现。
MySQL是现在流行的关系数据库中其中的一种,相比其它的数据库管理系统(DBMS)来说,MySQL具有小巧、功能齐全、查询迅捷等优点。
MySQL主要目标是快速、健壮和易用。
关键的是它是免费的,可以在Internet上免费下载到,并可免费使用。
MySQL对于一般中小型,甚至大型应用都能够胜任。
MySQL是开源的,开源意味着任何人都可以使用和修改该软件,任何人都可以从Internet上下载和使用MySQL而不需要支付任何费用.如果你愿意,你可以研究其源代码,并根据你的需要修改它
3开源框架介绍
3.1Hibernate介绍
3.1.1Hibernate的工作方式
使用Hibernate惟一需要做的就是创建一份XML“映射文档”,告诉Hibernate希望保存在数据库中的类,以及它们如何关联到该数据库中的表和列,然后就可以要求Hibernate以对象的形式获取数据,或者把对象保存为数据.
Hibernate在运行时,Hibernate首先读取映射文档,然后动态构建Java类,以便管理数据库与Java之间的转换.在Hibernate中有一个简单而直观的API,用于对数据库所表示的对象执行查询.要修改这些对象,(一般情况下)只需在程序中与它们进行交互,然后告诉Hibernate保存修改即可.类似地,创建新对象也很简单;只需以常规方式创建它们,然后告诉Hibernate有关它们的信息,这样就能在数据库中保存它们.
HibernateAPI学习起来很简单,而且它与程序流的交互相当自然.在适当的位置调用它,就可以达成目的.它带来了很多自动化和代码节省方面的好处,所以花一点时间学习它是值得的.而且还可以获得另一个好处,即代码不用关心要使用的数据库种类.借助于Hibernate,只需要简单地修改Hibernate配置文件即可.
3.1.2使用Hibernate的场合
如果应用对于数据存储的需要十分简单——例如,您只想管理一组用户优先选择——就根本不需要数据库,更不用说一个优秀的对象-关系映射系统了
对于熟悉使用关系数据库和了解如何执行完美的SQL查询与企业数据库交互的人来说,Hibernate似乎有些碍手碍脚,这就像带有动力和自动排挡的快艇车会使注重性能的赛车驾驶员不耐烦一样.如果您属于这种人,如果您所在的项目团队拥有一个强大的DBA,或者有一些存储过程要处理,您可能想研究一下iBATIS.
当然,还有其他的外部原因会导致采用另外的方法.比如,在一个企业环境中,必须使用成熟的EJB架构(或者其他的一些非普通对象映射系统).可以为提供自己的数据存储工具的平台量身定做代码,比如MacOSX'sCoreData.使用的可能是像XMLDTD这样的存储规范,而它根本不涉及关系数据库.
但是,如果您使用的是富对象模型,而且想要灵活、轻松且高效地保存它,那么Hibernate很可能就是您理想的选择.您可能会惊讶于节省的时间之多,以及您将会多么地喜欢使用它.
3.1.3Hibernate的两中类型的配置文件
首先创建系统的Hibernate配置文件hibernate.cfg.xml,该文件中存放着数据库连接驱动程序类、登录数据库的用户名/密码、映射持久化类配置文件的位置等,Hibernate初始化时会自动在classes路径中寻找这个文件,并读取其中的配置信息,为后期数据库操作做准备,其完整代码如下。
xmlversion='1.0'encoding='UTF-8'?
>
DOCTYPEhibernate-configuration
PUBLIC"-//Hibernate/HibernateConfigurationDTD//EN"
"
--指定连接数据库用的驱动-->
com.microsoft.jdbc.sqlserver.SQLServerDriver
--指定连接数据库的路径-->
jdbc:
microsoft:
sqlserver:
//127.0.0.1:
1433;databaseName=db_Material
sa--指定连接数据库的用户名-->
--指定连接数据库的密码-->
true--当show_sql属性为true时表示在程序运行时在控制台输出SQL语句,默认为false,建议在调试程序时设为true,发布程序之前再改为false,因为输出SQL语句会影响程序的运行速度-->
--指定持久化类映射文件-->
……
--此处省略了指定其他持久化类映射文件的代码-->
创建持久化类的映射文件
xmlversion="1.0"?
>
DOCTYPEhibernate-mappingPUBLIC
"-//Hibernate/HibernateMappingDTD3.0//EN"
"
<--此处省略属性配置-->
3.2Struts介绍
Struts是一个基于SunJ2EE平台的MVC框架,主要是采用Servlet和JSP技术来实现的.由于Struts能充分满足应用开发的需求,简单易用,敏捷迅速,在过去的这段时间里.Struts把Servlet、JSP、自定义标签和信息资源(messageresources)整合到一个统一的框架中,开发人员利用其进行开发时不用再自己编码实现全套MVC模式,极大的节省了时间,所以说Struts是一个非常不错的应用框架.
Struts主要有三个部分组成,首先是支持MVC模式的的三个部分,其次是关于Struts的配置文件struts-config.xml。
下面来介绍下他们。
3.2.1模型(Model)
本质上来说在Struts中Model是一个Action类(这个会在后面详细讨论),开发者通过其实现商业逻辑,同时用户请求通过控制器(Controller)向Action的转发过程是基于由struts-config.xml文件描述的配置信息的.
3.2.2视图(View)
View是由与控制器Servlet配合工作的一整套JSP定制标签库构成,利用她们我们可以快速建立应用系统的界面.
3.2.3控制器(Controller)
本质上是一个Servlet,将客户端请求转发到相应的Action类.
struts-config.xml配置文件是整个框架的主心骨.web.xml文件定义了一个请求到来应向何处转发后,后面的工作就全权由struts-config.xml管理控制了.可以说struts-config.xml就是整个Struts框架的核心,只有它清楚所有请求与动作的映射关系。
如今的应用系统,XML形式的配置文件越来越多,如果整个系统只使用一个这样的配置文件的话,那么保持整个系统的模块化和可维护性都非常的轻松.使用配置文件来描述请求-动作的控制过程和相互关系,而不是在代码中将对象之间的调用关系写死,那么当应用系统有变动时,我们只用修改配置文件就行了,而不是再重新编译发布程序了.
Controller通过struts-config.xml文件的配置信息确定当有请求时应该调用那个对象来处理,从效率的角度出发,这些信息都是在系统启动时读入并存在内存中的.
4需求分析
4.1系统主要功能详细描述
()用户可以注册,登录。
()登录用户可以查看用户资料,修改密码,添加收货人,删除收货人。
(1)所有用户可以浏览商品列表及每个商品的详细信息。
(2)所有用户可以进行查询本站所拥有的自己需要的物品。
(3)所有用户可以查看用户留言列表,登录用户可以留言。
(3)登录用户可以进行购物,并会像超市的购物车一样放入自己需要的物品以便后面的下单。
()登录用户可以对自己的购物车进行相关操作。
(4)登录用户可以在进行购物后,进行下单,网站可以对定单进行处理。
(5)用户只能查看自己已经有的定单,并能看到每个定单的详细信息。
(6)后台管理员可以对用户进行添加,删除,修改和查询操作。
(6)后台管理员可以对商品进行添加,删除,修改和查询操作。
(7)后台管理员可以查看所有的用户对应的定单。
并能对每个定单进行删除操作。
(6)后台管理员可以对用户留言进行删除操作。
4.2系统角色及其功能分析
系统主要用户有三类:
游客,登陆用户,管理员。
游客主要可以用的功能是:
查看所