《毕业设计网上图书订购系统.doc》由会员分享,可在线阅读,更多相关《毕业设计网上图书订购系统.doc(50页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、摘要互联网技术发展到现在已经相当成熟,互联网已经成为一个全世界最大最全的信息中心,越来越多的人在利用互联网来完成他们的工作,同时也有越来越多的人利用互联网来解放他们的生活,他们利用互联网来完成几乎所有所有现实生活中的事物。由于所有的领域都在利用互联网,传统商业也是,现在已经有越来越多的商家将他们的生意搬上了互联网,他们小一点的可以开个小的网店。大一点的可以开个网站。本次毕业设计的题目就是设计和实现一个网上售书的电子商务网站。为一个传统的书店提供一个网上展览和销售的平台。本系统主要以Struts和Hibernate加Mysql为开发基础,以JSP为前台表现手段。在功能上面基本实现一个电子商务网站
2、应该有的功能模块,包括前台和后台两个层面。前台方面主要功能有:用户注册,登录,注销,添加收货人信息,修改收货人信息,删除收货人信息,浏览商品。添加商品进购物车,修改购物车中商品,删除购物车中商品,清空购物车,将购物车中商品生成定单,查看定单,查看定单明细。后台方面主要功能有:查看管理员列表,添加管理员,删除管理员,修改管理员,查看用户列表,添加用户,删除用户,修改用户,查看商品列表,添加商品,删除商品,修改商品,查看定单列表,删除定单等。关键字:Struts Hibernate B/SAbstractInternet technology has been developed to a mat
3、ure, the Internet has become a world-wide largest and most of the information center, an increasing number of people using the Internet to complete their work, and also more and more people use the Internet to the liberation of their lives They use the Internet to complete almost all of all the thin
4、gs in real life. Since all the fields in the use of the Internet, traditional business is also now a growing number of businessmen will be their business onto the Internet, the smaller they can open a small shop. The big point can open a website. The graduation project is the subject of Design and I
5、mplementation of an on-line Booksellers of e-commerce sites. For a traditional online bookstore to provide a platform for exhibition and sale. This system is mainly to Struts and Hibernate basis for the development and Mysql to JSP for the future performance of means. In the above basic realization
6、of a functional e-commerce sites should have functional modules, including the prospects and the background level. Prospects in the main features are: user registration, sign in, write-off, add the consignee, the consignee to amend the information, delete the consignee information, visit the merchan
7、dise. Add goods into the shopping cart, shopping cart of goods amended to delete the shopping cart of goods, empty shopping cart, the cart will generate goods orders, view orders, orders Details view. Background in the main features are: Show the list administrators, managers add, delete administrat
8、or, modify administrator to view the list of users, add users, delete users, modify the user to view the list of goods, added commodities, commodities delete, modify Merchandise, view orders list, delete and so on orders.Key word : Struts Hibernate B/S目 录摘要1Abstract2目 录31 绪论52 开发环境及开发工具的介绍62.1 Java语
9、言介绍62.2 JavaBean介绍62.3 Servlet/Jsp介绍72.4 Eclipse介绍72.5 Tomcat介绍72.6 MySql介绍83开源框架介绍93.1 Hibernate介绍93.1.1 Hibernate的工作方式93.1.2使用Hibernate的场合93.1.3 Hibernate的两中类型的配置文件103.2 Struts介绍113.2.1 模型(Model)113.2.2 视图(View)113.2.3 控制器(Controller)114 需求分析134.1 系统主要功能详细描述134.2 系统角色及其功能分析135 系统总体设计145.1 DB层设计175
10、.2 DAO层设计215.3 SERVICE层设计215.4 WEB层设计215.4.1控制器(Controller)215.4.2 模型(Model)225.4.3 表现(View)225.5 系统数据流图(产品模块,定单模块,购物车模块)226 详细设计246.1 系统的数据库设计246.1.1 Product表245.1.2 Order 表255.1.3 OrderItem表255.2系统模块的划分265.2.1 产品模块主要子模块265.3.2 购物车模块主要子模块265.3.3定单模块主要子模块265.3 系统模块的具体实现265.3.1 产品模块主要子模块265.3.1.1 增加产
11、品265.3.2 购物车模块主要子模块305.3.3定单模块主要子模块33总结与体会35致谢36参考文献371 绪论近年来,随着Internet的迅速崛起,互联网已日益成为收集提供信息的最佳渠道并进入传统的流通领域。于是电子商务开始流行起来,一种全新的购物理念开始形成并逐步发展。网上购物是一种具有交互功能的商业信息系统。它向用户提供静态和动态两类信息资源。所谓静态信息是指那些比经常变动或更新的资源,如公司简介等;动态信息是指随时变化的商务,是通过电子化的手段来完成商业贸易活动的一种方式。等等。那么究竟什么是电子商务?电子商务,顾名思义是指在互联网上进行的电子化的商务活动。从狭义上看,电子商务也
12、就是电子交易,主要指利用Web提供的通信手段在网上进行交易活动,包括通过Internet买卖产品和提供服务。产品可以是实体化的,如汽车、电视,也可以是数字化的,如新闻、录像、软件等基于比特的产品。此外,还可以提供各类服务,如安排旅游、远程教育等。总之,电子商务并不仅仅局限于在线买卖,它将从的信息,如商品报价,会议安排和培训信息等。网上购物系统具有强大的交互功能,可使商家和用户方便的传递信息,完成电子贸易或EDI交易。这种全新的交易方式实现了公司间文档与资金的无纸化交换。今天,我们已经可以确信电子商务毋庸置疑是未来的发展方向。但是电子商务却还没有一个标准的定义。Intel公司认为:电子商务=电子
13、市场电子交易电 子服务;IBM认为:电子商务=web;HP公司则说:“电子生产到消费各个方面影响进行商务活动的方式。除了网上购物,电子商务还大大改变了产品的定制、分配和交换的手段。而对于顾客,查找和购买产品乃至服务的方式也大为改进。而从广义上讲,电子商务还包括企业内部商务活动,如生产、管理、财务等以及企业间的商务活动,它不仅仅是硬件和软件的结合,更是把买家、卖家、厂家和合作伙伴在Internet、Intranet和 Extranet上利用Internet技术与现有的系统结合起来开展的业务活动。从最初的电话、电报到电子邮件以及20多年前开始的EDI,都可以说是电子商务的某种形式;发展到今天,人们
14、已提出了包括通过网络来实现从原材料的查询、采购、产品的展示、定购到出品、储运以及电子支付等一系列贸易活动在内的完整电子商务的概念。在发达国家,电子商务已发展迅速,通过Internet进行交易已成为潮流。2 开发环境及开发工具的介绍2.1 Java语言介绍Java语言是一门高级程序设计语言.它在各个重要的行业部门得到了广泛的应用, Java 技术的通用性、高效性、平台移植性和安全性,使之成为网络计算的理想技术.除上面的技术之外还有其他的特点:Java语言是面向对象的语言,主要集中在对象和接口的设计。Java将具有相同特性的数据封装成一个类,实现了对现实实体的抽象,也就是对对象的总体描述;Java
15、可以实现模块化和信息隐藏,Java将数据和操作数据的方法封装在一起,使得数据全都隐藏起来,暴露给外面程序的仅是对数据操作的方法;一个类提供了一类对象的原型,通过Java的继承机制,子类可以使用父类所提供的方法,从而实现了代码的复用;多态就是一个实体多种形态,在Java中表现的最突出的就是一个类实现了多个接口,从而可以有多个功能。另外Java语言是安全的,Java不支持指针,一切对内存的访问都必须通过对象的实例变量来实现 ,这样就防止程序员使用特洛伊 木马等欺骗手段访问对象的私有成员,同时也避免了指针操作中容易产生的错误。Java程序是可移植的,与平台无关的特性使Java程序可以方便地被移植到网
16、络上的不同机器。同时Java的类库中也实现了与不同平台的接口 ,使这些类库可以移植。另外,Java编译器是由 Java语言实现的,Java运行时系统由标准C实现 ,这使得Java系统本身也具有可移植性。Java语言和其它解释执行的语言如 BASIC不同 ,Java字节码的设计使之能很容易地直接转换成对应于特定CPU的机器码 ,从而得到较高的性能。2.2 JavaBean介绍简单地说,JavaBean是用Java语言描述的软件组件模型,其实际上是一个类。这些类遵循一个接口格式,以便于使函数命名、底层行为以及继承或实现的行为,可以把类看作标准的JavaBean组件进行构造和应用。JavaBean有
17、以下特点:易于维护、使用、编写。可实现代码的重用性。可移植性强,但仅限于Java工作平台。便于传输,不限于本地还是网络。可以以其他部件的模式进行工作。Java程序中往往有重复使用的段落,JavaBean就是为了能够重复使用而设计的程序段落,而且这些段落并不只服 务于某一个程序,而且每个JavaBean都具有特定功能,当需要这个功能的时候就可以调用相应的JavaBean。从这个意义上来讲,JavaBean 大大简化了程序的设计过程,也方便了其他程序的重复使用。2.3 Servlet/Jsp介绍Jsp(JavaServer Page)是在普通Html中嵌入了Java代码的一个脚本,在这一点上,它与
18、其它的脚本语言一样,但它与其它语言不同的是:其它脚本语言由服务器直接解释这个脚本,而Jsp则由Jsp容器(如Tomcat)首先将其转化为Servlet,然后再调用Javac将Servlet编译为Class文件.最终,服务器解释的是Class文件.那么什么是Servlet呢?Servlet其实是一个特殊的Java类,Servlet类一般从HttpServlet类继承而来,在这个类中至少要实现doGet或者doPost函数,在这两个函数中处理来自客户的请求,然后将结果返回.2.4 Eclipse介绍Eclipse是一种可扩展的开放源代码IDE.,业界厂商合作创建了Eclipse平台.Eclipse
19、允许在同一IDE中集成来自不同供应商的工具,并实现了工具之间的互操作性,从而显著改变了项目工作流程,使开发者可以专注在实际的业务上.利用Eclipse,我们可以将高级设计(也许是采用UML)与低级开发工具(如应用调试器等)结合在一起.如果这些互相补充的独立工具采用Eclipse扩展点彼此连接,那么当我们用调试器逐一检查应用时,UML对话框可以突出显示我们正在关注的器件.事实上,由于Eclipse并不了解开发语言,所以无论Java语言调试器、C/C+调试器还是汇编调试器都是有效的,并可以在相同的框架内同时瞄准不同的进程或节点.Eclipse的最大特点是它能接受由Java开发者自己编写的开放源代码
20、插件,这类似于微软公司的VisualStudio和Sun微系统公司的NetBeans平台.Eclipse为工具开发商提供了 更好的灵活性,使他们能更好地控制自己的软件技术。2.5 Tomcat介绍Tomcat是一个免费的开源的Serlvet容器,是一个开源的服务器,里面可以装载WAR的类似于JAR的压缩文件,这个文件按一定目录结构来组织:通常其根目录下包含有Html和Jsp文件或者包含这两种文件的目录,另外还会有一个WEB-INF目录,这个目录很重要.通常在WEB-INF目录下有一个web.xml文件和一个classes目录,web.xml是这个应用的配置文件,而classes目录下则包含编译
21、好的Servlet类和Jsp或Servlet所依赖的其它类(如JavaBean)在Tomcat中,应用程序的部署很简单,你只需将你的WAR放到Tomcat的webapp目录下,Tomcat会自动检测到这个文件,并将其解压.你在浏览器中访问这个应用的Jsp时,通常第一次会很慢,因为Tomcat要将Jsp转化为Servlet文件,然后编译.编译以后,访问将会很快2.6 MySql介绍MySQL 是一个真正的多用户、多线程SQL数据库服务器,它是一个客户机/服务器结构的实现。MySQL是现在流行的关系数据库中其中的一种,相比其它的数据库管 理系统(DBMS)来说,MySQL具有小巧、功能齐全、查询迅
22、捷等优点。MySQL 主要目标是快速、健壮和易用。关键的是它是免费的,可以在Internet上免费下载到,并可免费使用。MySQL 对于一般中小型,甚至大型应用都能够胜任。MySQL是开源的,开源意味着任何人都可以使用和修改该软件,任何人都可以从Internet上下载和使用MySQL而不需要支付任何费用.如果你愿意,你可以研究其源代码,并根据你的需要修改它3开源框架介绍3.1 Hibernate介绍3.1.1 Hibernate的工作方式使用Hibernate惟一需要做的就是创建一份 XML“映射文档”,告诉Hibernate希望保存在数据库中的类,以及它们如何关联到该数据库中的表和列,然后就
23、可以要求Hibernate以对象的形式获取数据,或者把对象保存为数据.Hibernate在运行时,Hibernate首先读取映射文档,然后动态构建Java类,以便管理数据库与Java之间的转换.在Hibernate中有一个简单而直观的API,用于对数据库所表示的对象执行查询.要修改这些对象,(一般情况下)只需在程序中与它们进行交互,然后告诉Hibernate保存修改即可.类似地,创建新对象也很简单;只需以常规方式创建它们,然后告诉Hibernate有关它们的信息,这样就能在数据库中保存它们.Hibernate API学习起来很简单,而且它与程序流的交互相当自然.在适当的位置调用它,就可以达成目
24、的.它带来了很多自动化和代码节省方面的好处,所以花一点时间学习它是值得的.而且还可以获得另一个好处,即代码不用关心要使用的数据库种类.借助于Hibernate,只需要简单地修改Hibernate配置文件即可.3.1.2使用Hibernate的场合如果应用对于数据存储的需要十分简单例如,您只想管理一组用户优先选择就根本不需要数据库,更不用说一个优秀的对象-关系映射系统了对于熟悉使用关系数据库和了解如何执行完美的SQL查询与企业数据库交互的人来说,Hibernate似乎有些碍手碍脚,这就像带有动力和自动排挡的快艇车会使注重性能的赛车驾驶 员不耐烦一样.如果您属于这种人,如果您所在的项目团队拥有一个
25、强大的DBA,或者有一些存储过程要处理,您可能想研究一下iBATIS.当然,还有其他的外部原因会导致采用另外的方法.比如,在一个企业环境中,必须使用成熟的EJB架构(或者其他的一些非普通对象映射系统).可以为提供自己的数据存储工具的平台量身定做代码,比如Mac OS Xs Core Data.使用的可能是像XML DTD这样的存储规范,而它根本不涉及关系数据库.但是,如果您使用的是富对象模型,而且想要灵活、轻松且高效地保存它,那么Hibernate很可能就是您理想的选择.您可能会惊讶于节省的时间之多,以及您将会多么地喜欢使用它.3.1.3 Hibernate的两中类型的配置文件首先创建系统的H
26、ibernate配置文件 hibernate.cfg.xml,该文件中存放着数据库连接驱动程序类、登录数据库的用户名/密码、映射持久化类配置文件的位置等, Hibernate初始化时会自动在classes路径中寻找这个文件,并读取其中的配置信息,为后期数据库操作做准备,其完整代码如下。!DOCTYPE hibernate-configuration PUBLIC -/Hibernate/Hibernate Configuration DTD/EN com.microsoft.jdbc.sqlserver.SQLServerDriver jdbc:microsoft:sqlserver:/127
27、.0.0.1:1433;databaseName=db_Material sa true 创建持久化类的映射文件!DOCTYPE hibernate-mapping PUBLIC-/Hibernate/Hibernate Mapping DTD 3.0/EN3.2 Struts介绍Struts是一个基于Sun J2EE平台的MVC框架,主要是采用Servlet和JSP技术来实现的.由于Struts能充分满足应用开发的需求,简单易用,敏捷迅速,在过去的这段时间里.Struts把Servlet、JSP、自定义标签和信息资源(message resources)整合到一个统一的框架中,开发人员利用其
28、进行开发时不用再自己编码实现全套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配合工作
29、的一整套JSP定制标签库构成,利用她们我们可以快速建立应用系统的界面.3.2.3 控制器(Controller)本质上是一个Servlet,将客户端请求转发到相应的Action类. struts-config.xml配置文件是整个框架的主心骨.web.xml文件定义了一个请求到来应向何处转发后,后面的工作就全权由struts-config.xml管理控制了.可以说struts-config.xml就是整个Struts框架的核心,只有它清楚所有请求与动作的映射关系。如今的应用系统,XML形式的配置文件越来越多,如果整个系统只使用一个这样的配置文件的话,那么保持整个系统的模块化和可维护性都非常的轻
30、松.使用配置文件来描述请求-动作的控制过程和相互关系,而不是在代码中将对象之间的调用关系写死,那么当应用系统有变动时,我们只用修改配置文件就行了,而不是再重新编译发布程序了. Controller通过struts-config.xml文件的配置信息确定当有请求时应该调用那个对象来处理,从效率的角度出发,这些信息都是在系统启动时读入并存在内存中的.4 需求分析4.1 系统主要功能详细描述()用户可以注册,登录。()登录用户可以查看用户资料,修改密码,添加收货人,删除收货人。(1)所有用户可以浏览商品列表及每个商品的详细信息。(2)所有用户可以进行查询本站所拥有的自己需要的物品。(3)所有用户可以
31、查看用户留言列表,登录用户可以留言。(3)登录用户可以进行购物,并会像超市的购物车一样放入自己需要的物品以便后面的下单。()登录用户可以对自己的购物车进行相关操作。(4)登录用户可以在进行购物后,进行下单,网站可以对定单进行处理。(5)用户只能查看自己已经有的定单,并能看到每个定单的详细信息。(6)后台管理员可以对用户进行添加,删除,修改和查询操作。(6)后台管理员可以对商品进行添加,删除,修改和查询操作。(7)后台管理员可以查看所有的用户对应的定单。并能对每个定单进行删除操作。(6)后台管理员可以对用户留言进行删除操作。4.2 系统角色及其功能分析系统主要用户有三类:游客,登陆用户,管理员。
32、游客主要可以用的功能是:查看所有商品,搜索商品,查看商品详细信息,查看用户留言列表。登录用户主要可以用的功能:查看修改自己的资料,查看所有商品,搜索商品,查看商品详细信息,购买商品,下定单,查看定单,查看用户留言列表,留言。管理员主要功能:操作普通管理员信息,操作用户信息,操作产品信息,操作定单信息,操作用户留言信息。5 系统总体设计网上书城系统是基于B/S架构。实现网上售书的电子商务网站。系统使用Java语言开发,利用到Hibernate和Struts等开源框架,整个系统分成多层,有效实现了系统各部分的低偶合.整个系统主要有:表现层.业务层.数据访问层。利用软件分层把系统偶合度降低。在数据访
33、问层,使用接口和和实现分离。上层的服务只依赖于底层的接口,底层的实现方式改变不会影响到上层的服务。这样就会最大程度的降低了软件各部分之间的偶合。便于以后修改底层的实现。在分层的基础上。有将软件分模块,从而使系统横向上面分模块,纵向上面分层次。整个软件的层次是: 表现层 业务层 数据访问层 DB整个软件根据系统需求分析,可得出系统两种用户的业务流程图。前台用户操作业务流程为: 开始 浏览用户留言信息 览商品列表 登录 浏览商品详细信息 登录 N N 登录 Y Y 添加商品进购物车 用户留言 购物车 生成定单 退出 结束 在用户业务流里面,首先用户连接到主界面,主界面显示所有商品,并且提供商品的搜
34、索服务,在主界面可以直接连接到用户留言列表界面,在主界面还可以连接到用户登录界面。用户在主界面可以浏览所有的商品,也可以查看商品的详细信息,在用户主界面和商品详细信息界面,用户可以将商品添加进购物车,此操作只有登录用户可以使用,非登录用户选自添加进购物车会被拦截到未登录界面。用户在留言主界面可以进行留言。非登录用户不能留言。用户可以点击购物车,进入购物车界面,在购物车界面,用户可以对购物车里的商品进行删除操作,也可以将购物车中的商品修改数量,还可以清空购物车。也可以在购物车界面选择继续购物,连接到主界面继续选择商品。用户还可以在购物车界面进行下单操作。将购物车里的商品生成定单。生成定单后,用户
35、可以查看自己的定单。后台管理员的业务流程为: 开始 登录 管理员主界面 有权限 N 权限出错页面 Y 管理员管理 用户管理 产品管理 定单管理 留言管理 退出 结束在后台中,管理员可以直接进入管理员入口登录管理员管理界面。在管理员管理的主界面显示的是管理员所有的操作。管理员可直接选择操作进入不同的管理界面,对管理员管理主要有超级管理员来实现,其他管理员没有此操作。用户管理界面直接显示所有用户的列表,在用户管理界面。管理员可以选择添加和删除用户,在产品管理界面,管理员可以添加和删除产品。定单管理界面。管理员可以删除定单。留言管理界面。管理员可以删除留言。5.1 DB层设计DB主要是保存实体及实体
36、之间关系的,这里只些关于此次系统中作者设计的几个模块的E-R图:4.4.1 User于Order关系图 createtime orderItems orderstate payinfo totalprice orderiduser userItem Ordern have1 User Userid usernameCreatetime state orders role Password userItems用户与定单之间是一对多的关系,每个用户可以同时有多个定单,每个定单却只能属于一个用户。这样在定单的实体类中就会有一个对用户的引用,在用户的实体类中就会有一个集合用来保存用户当前所有的定单。在
37、数据库中,用户和定单是两张表,定单表中的外键是用户表中的主键,在这里要注意一点。在查找用户的时候会同时把用户所有的定单都拿到,所以要在用户实体类的hibernate配置文件中将定单集合的延迟加载设置为false;这样就能在查出的用户中直接拿到用户所有的定单.4.4.2 Order与OrderItem createtime orderItems orderstate payinfo totalprice orderiduser userItem Order 1Order by n OrderItem Order Order_item_idproduct quality定单与定单条目之间是一对多的关系,每个定单可以同时有多个定单条目,每个定单条目却只能属于一个定单。这样在定单条目的实体类中就会有一个对定单的引用,在定单的实体类中就会有一个集合用来保存用户当前所有的定单条目。在数据库中,定单和定单条目是两张表,定单条目表中的外键是定单表中的主键,在这里要注意一点。在查找定单的时候要同时把定单所有的定单条目都拿到,所以要在定单实体类的hibernate配置文件中将定单条目集合的延迟加载设置为false;这样就能在查出的定单时直接拿到定单所有的定单条目.4.4.3 OrderItem与Produc