完整版基于JSP的网上购物系统的设计与实现毕业论文.docx
《完整版基于JSP的网上购物系统的设计与实现毕业论文.docx》由会员分享,可在线阅读,更多相关《完整版基于JSP的网上购物系统的设计与实现毕业论文.docx(22页珍藏版)》请在冰豆网上搜索。
完整版基于JSP的网上购物系统的设计与实现毕业论文
andRealizationofshoppingOnlineSystemBasedonJSP
Abstract
Inrecentyears,Internetofinformationandenteredthetraditionalfieldofcirculationwiththerapidrising.E-commercepopular,andmoreandmoreonlinestoresareestablishedontheInternet,displayinganewideaofshopping.ThisShoppingsystembasedonBSmode,realizethebasefunctionofthecurrentShoppingsite.
ThispaperintroducestheShoppingsystemindetail.Themainfunctionsofpeopleinsystemincludelogin,registration,viewandpurchasingofgoods,managementoftheOrdersandcustomers.Themainfunctionsofadministratorincludemanagementofthegoods,usersandOrders.
Therearefivesectionsinthispaper,thefirstisintroductionofRelatedtheoreticalknowledge;thesecondisintroductionofthedesignofsystem;thethirdisintroductionoftheprocessofrealization;theforthistest;andtheconclusionintheend.
Keywords:
E-commerce;ShoppingSystem;JSP;Database
目录
论文总页数:
22页
1.引言1
1.1网上购物系统的发展1
1.2网上购物的现状1
1.3网上购物系统的构建1
2.相关理论基础2
2.1JSP技术2
2.1.1JSP的简介2
2.1.2JSP的优点2
2.1.3JSP的工作原理2
2.2数据库及相关技术简介3
2.2.1SQL语言简介3
2.2.2MicrosoftSQLServer简介3
2.2.3JAVA技术简介4
2.2.4TOMCAT简介4
3.系统总体设计4
3.1系统设计4
3.1.1系统功能分析4
3.1.2系统体系结构5
3.1.3系统流程6
3.2数据库设计6
3.2.1数据库需求分析6
3.2.2数据库的逻辑结构分析7
3.2.3数据库表的设计7
3.2.4数据库的连接8
4.具体设计分析9
4.1系统首页9
4.2具体模块实现9
4.2.1商品查看9
4.2.2购物车11
4.2.3订单管理12
4.2.4用户个人信息管理13
4.2.5用户控件16
4.2.6商品管理16
4.2.7管理用户17
5.系统测试18
5.1前台测试18
5.2后台测试19
结论20
参考文献20
致谢21
声明22
1.引言
1.1网上购物系统的发展
近年来,随着Internet的迅速崛起,互联网已日益成为收集提供信息的最佳渠道并逐步进入传统的流通领域。
于是电子商务开始流行起来,越来越多的商家在网上建起在线商店,向消费者展示出一种新颖的购物理念。
网上订购系统作为B2B,B2C,C2C电子商务的前端商务平台,在其商务活动全过程中起着举足轻重的作用。
本文旨在讨论如何建设B2C的网上购物系统。
网上购物是一种具有交互功能的商业信息系统。
它向用户提供静态和动态两类信息资源。
所谓静态信息是指那些比经常变动或更新的资源,如公司简介、管理规范和公司制度等等;动态信息是指随时变化的信息,如商品报价,会议安排和培训信息等。
网上购物系统具有强大的交互功能,可使商家和用户方便的传递信息,完成电子贸易或EDI交易。
这种全新的交易方式实现了公司间文档与资金的无纸化交换。
1.2网上购物的现状
在美、日等信息化程度较高的国家和地区,网络商店发展速度迅猛,美国的世界级超一流的零售商,如沃尔玛凯玛特,家庭仓储、科罗格、J.C培尼等纷纷挤身于网络经商的行列。
调查表明:
美国的家庭已越来越习惯于在家中从网上购物。
在我国,网上购物从无到有也不过短短几年时间。
我国第一家网上购物发生在1996年,燕莎友谊商场首次通过网上商城售出一个景泰蓝,虽然货款的支付不是在网上进行的,但这毕竟为我国零售业奏出了网上购物的先声。
根据CNNIC的统计结果,截止2006中国有互联网用户6962万人,而又有40.7%以上的网民在过去的一年里有过网上购物经历,并且这一数字还在以17%左右的速度增长,这说明在中国发展网上购物具有良好的群众基础,网上购物方式日趋被大家所接受。
1.3网上购物系统的构建
现在流行的网上购物系统不仅要有漂亮的网页,更要有严谨的规划。
每一个细小的环节都很重要。
这样才能使得在电子交易时避免不必要错误发生。
我将使用HTML、JSP等技术来编辑网页,传统的管理信息系统的信息获取方法是由专业文字录入人员将信息输入到管理系统的数据库中,这种方法在数据量不大时有很多的应用场合。
当数据量比较大,并且有较强的专业性时,录入的费用和出错的可能性都相应上升。
本系统通过运用JSP技术把数据库和动态网页连接,得出错和成本都相应的降低。
本文在实际应用开发中解决方案是建立网站,以及自己的数据库,使得所需商品信息可以及时的保存、更新,以更好的及时了解商品买卖的情况。
2.相关理论基础
2.1JSP技术
2.2.4JSP的简介
JSP是JAVASERVERPAGES的缩写,由SUN公司倡导,于1999年推出,正日益成为开发WEB动态网站的重要而快速有效的开发技术。
JSP充分利用了JAVA技术的优势,具有极强的扩展能力和良好的收缩性,与开发平台无关,这源于JAVA的“一次编写,到处运行”的特点,同时也是一项安全的技术。
它具有良好的动态页面与静态页面分离的能力,编译后运行,因而正逐渐成为internet开发的主流技术。
2.2.4JSP的优点
(1)对于用户界面的更新,其实就是由WebServer进行的,所以给人的感觉更新很快。
(2)所有的应用都是基于服务器的,所以它们可以时刻保持最新版本。
(3)客户端的接口不是很繁琐,对于各种应用易于部署、维护和修改。
2.2.4JSP的工作原理
在一个JSP文件第一次被请求时,JSP引擎把该JSP文件转换成为一个servlet。
而这个引擎本身也是一个servlet,在JSWDK或WEBLOGIC中,它就是JspServlet。
JSP引擎先把该JSP文件转换成一个Java源文件,在转换时如果发现jsp文件有任何语法错误,转换过程将中断,并向服务端和客户端输出出错信息;如果转换成功,JSP引擎用javac把该Java源文件编译成相应的class文件。
然后创建一个该SERVLET的实例,该SERVLET的jspInit()方法被执行,jspInit()方法在servlet的生命周期中只被执行一次。
然后jspService()方法被调用来处理客户端的请求。
对每一个请求,JSP引擎创建一个新的线程来处理该请求。
如果有servlet从内存中移去。
当这种情况发生时jspDestroy()方法首先被调用,然后servlet实例便被标记加入"垃圾收集"处理。
jspInit()及j多个客户端同时请求该JSP文件,则JSP引擎会创建多个线程。
每个客户端请求对应一个线程。
以多线程方式执行可大大降低对系统的资源需求,提高系统的并发量及响应时间.但应该注意多线程的编程限制,由于该servlet始终驻于内存,所以响应是非常快的。
如果.jsp文件被修改了,服务器将根据设置决定是否对该文件重新编译,如果需要重新编译,则将编译结果取代内存中的servlet,并继续上述处理过程。
虽然JSP效率很高,但在第一次调用时由于需要转换和编译而有一些轻微的延迟。
此外,如果在任何时候如果由于系统资源不足的原因,JSP引擎将以某种不确定的方式将spDestory()格式如下:
可在jspInit()中进行一些初始化工作,如建立与数据库的连接,或建立网络连接,从配置文件中取一些参数等,在jspDestory()中释放相应的资源。
2.2数据库及相关技术简介
2.2.4SQL语言简介
SQL是英文StructuredQueryLanguage的缩写,意思为结构化查询语言。
SQL语言的主要功能就是同各种数据库建立联系,进行沟通。
按照ANSI(美国国家标准协会)的规定,SQL被作为关系型数据库管理系统的标准语言。
SQL语句可以用来执行各种各样的操作,例如更新数据库中的数据,从数据库中提取数据等。
目前,绝大多数流行的关系型数据库管理系统,如Oracle、Sybase、MicrosoftSQLServer、Access等都采用了SQL语言标准。
虽然很多数据库都对SQL语句进行了再开发和扩展,但是包括Select、Insert、Update、Delete、Create以及Drop在内的标准的SQL命令仍然可以被用来完成几乎所有的数据库操作。
在众多的SQL命令中,select语句应该算是使用最频繁的。
select语句主要被用来对数据库进行查询并返回符合用户查询标准的结果数据。
select语句中位于select关键词之后的列名用来决定哪些列将作为查询结果返回。
用户可以按照自己的需要选择任意列,还可以使用通配符“*”来设定返回表格中的所有列。
select语句中位于from关键词之后的表格名称用来决定将要进行查询操作的目标表格。
除了上面所提到的运算符外,LIKE运算符在where条件从句中也非常重要。
LIKE运算符的功能非常强大,通过使用LIKE运算符可以设定只选择与用户规定格式相同的记录。
2.2.4MicrosoftSQLServer简介
SQLServer2000是建立在SQLServer7.0在可伸缩性、可用性、可管理性和数据仓库成功的基础上,并且引入了针对电子商务的重要新功能。
在高性能和企业级可伸缩性领域,SQLServer2000设计成利用Windows2000对更多处理器、更大的系统内存的支持,最终达到支持64位硬件平台。
在不断提升可用性的努力过程中,SQLServer2000采用Windows2000四路群集,提供了大大改进的群集支持。
SQLServer7.0已经在可管理性和易用性方面在行业内领先,SQLServer2000通过与Windows2000活动目录紧密结合进一步改进了这些功能。
而且,SQLServer2000还包含对现有管理工具和实用程序的重大改进,并引入更具自我调节和自我管理的引擎功能。
SQLServer2000按照设计可以为部署和维护强大的、易于管理、支持商务活动的Web站点提供最好的性能,这些站点可以从事商家和商家之间或商家与客户之间的交易。
在寻求一个支持您的电子商务解决方案的数据库时,需要考虑的项目包括:
可用性、性能、可管理性和价格。
2.2.4JAVA技术简介
JSP程序开发就离不开JAVA语言,这里简单介绍下JAVA语言的特点:
Java是一种跨平台,适合于分布式计算环境的面向对象编程语言。
具体来说,它具有如下特性:
(1)简单性、面向对象。
(2)分布式、解释型。
(3)可靠、安全、平台无关。
(4)可移植、高性能、多线程、动态性等。
2.2.4TOMCAT简介
Tomcat是一个免费的开源的Serlvet容器,它是Apache基金会的Jakarta项目中的一个核心项目,由Apache,Sun和其它一些公司及个人共同开发而成。
由于有了Sun的参与和支持,最新的Servlet和Jsp规范总能在Tomcat中得到体现。
由于Java的跨平台特性,基于Java的Tomcat也具有跨平台性。
本系统采用tomcat作为服务器,在tomcat5.0环境下对系统进行测试。
3.系统总体设计
3.1系统设计
3.1.1系统功能分析
一个典型的B2C电子商务网上订购系统主要功能有:
(1)为客户提供24小时方便快捷的在线订购服务。
(2)商品信息的维护与管理,包括价格的调整、现有商品信息的修改、新商品信息的加入、过时商品信息的删除等。
(3)高效的商品数据方案,对商品信息进行科学、灵活地分类、存储,方便客户迅速从少则几万,多则几十万甚至上百万种商品中找出自己所需商品。
(4)强大、方便、快捷的查询功能。
提供关键字查询(如:
查找所有商品)。
(5)订单号模块所谓订单号模块,就是客户购买完商品后,系统自动分配一个购物号码给客户,以方便客户随时查询账单处理情况。
了解现在货物的状态。
(6)订单管理。
为分销商的EPR系统提供数据接口。
管理员可以查看历史记录、订单状态,并且能够在最短的时间内通知用户。
3.1.2系统体系结构
图3-1系统功能模块图
根据体系结构可将系统分为用户和管理两个角色:
(1)用户:
用户通过注册以后成为合法登录用户。
登录以后可以查看修改个人信息在线购买商品查看定单状态。
(2)管理员:
系统管理员可以管理整个系统,包括查看用户定单并修改相应信息查看用户信息,对不信任用户也可以对他进行删除。
查看商品信息,可以删除不需要的商品。
添加商品信息。
3.1.3系统流程
图3-2系统流程图
3.2数据库设计
3.2.1数据库需求分析
(1)商品数据的准备。
首先要搜集分销商的所有商品数据。
这些商品数据可以分为三类:
纸面记录、电子数据(XML、Access、Excel等文件)、网上数据。
无论对于哪一种数据,都要对其进行检查,修正有问题的数据,删除重复和过期的记录。
在检查的同时,还要对这些数据进行分析,为制定商品目录方案做准备。
(2)商品数据方案的制定。
商品数据方案制定的目的在于:
①对商品进行科学、灵活地分类,方便客户迅速从少则几万,多则几十万甚至上百万种商品中找出所需商品。
②使系统支持强大、方便、快捷的查询功能,实现模糊查询和智能查询。
③高效的商品数据方案能提高数据库性能,提高网页浏览速度。
(3)客户信息表的制定。
客户信息表内保存着在线商店中所有客户个人所拥有的个人信息和资料,是在线商店的后台管理人员进行商品销售的设计规划和进行决策的依据和参考。
客户ID则是客户个人身份证明的依据。
3.2.2数据库的逻辑结构分析
对于系统用户信息数据库,有以下数据项和数据结构:
用户信息:
用户ID(自动编号)、用户姓名、电话号码、Email、地址、邮编。
对于系统的商品信息系统,有以下数据项和数据结构:
商品记录信息:
商品的ID(自动编号)、商品名称、商品单价、商品数量、商品所属类别。
而网上购物系统就是基于以上各个数据库的连接和综合,把各个独立的数据库通过内在的关联性统一到一个主页面里,从而方便客户的访问和购买,实现了一对一的交互。
用户在购买商品前可以先看看商品目录,看看有没自己需要的商品,在商品的目录里有各个商品的具体的介绍,比如说商品的名称,数量,价格等,用户在看好自己的商品后,在商品的搜索中,你可以选择你所需的商品,用户在选择自己的商品时,系统则连接到后台关于此商品信息的数据库中,找到适合客户需求的信息。
客户将选购的商品放入系统所提供的购物篮里,此时顾客可以继续选购另外的商品,或者删除原先购买的商品,并可对商品进行名称和数量上的修改和添加。
点击“继续购买”,重复以上进行的购买活动。
直到顾客满意。
购物结束后,进行提交,点击“提交”,完成购物。
3.2.3数据库表的设计
分别建立以下的表以满足需要:
本系统需要建立4个数据表,他们分别是:
管理员表(my_goodsadminuser):
存放管理员用户名,管理员密码信息。
用户表(my_users):
存放用户编号,用户名,用户密码,真实姓名,性别,电话,email等信息。
商品信息表(my_goods):
存放商品编号,商品名,销售员,类别,提供商,价格以及数量等信息。
定单表(my_indentlist):
存放定单编号,用户,总价,是否付款,是否发货,用户备注等信息。
各表具体信息见下图:
表3-1my_goodsadminuser表中字段
字段名
数据类型
字段描述
adminuser
文本
管理员用户名
adminpass
文本
管理员密码
表3-2my_users表中字段
字段名
数据类型
字段描述
id
数字
用户主键
username
文本
用户名
passwd
文本
用户密码
Names
文本
真实姓名
Sex
文本
性别
Address
文本
地址
Phone
文本
电话
Post
文本
邮编
Email
文本
Email地址
表3-3my_goods表中字段
字段名
数据类型
字段描述
ID
数字
商品编号
Goodsname
文本
名称
Goodsclass
数字
类别
Seller
数字
销售员
Provider
文本
提供商
Price
数字
价格
Amount
文本
数量
Content
文本
说明
表3-4my_indentlist表中字段
字段名
数据类型
字段描述
ID
数字
组ID
username
文本
商品购买用户
Price
文本
定单价格
ispayoff
文本
是否付款
issales
文本
是否发货
content
文本
备注
3.2.4数据库的连接
在本系统中,系统会频繁的访问数据库。
本系统采用JSP的JDBC-ODBC驱动程序。
数据库的连接代码是通用的。
代码如下:
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
Stringurl="jdbc:
microsoft:
sqlserver:
localhost:
1433;
DatabaseName=biye";
StringstrUser="sa";
StringstrPassword="417929";
Connectioncon=DriverManager.getConnection(url,strUser,strPassword);
Statementst=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
………
4.具体设计分析
4.1系统首页
图4-1网上购物系统首页
此功能模块由index1.jsp来实现,并提供了本系统绝大多数功能的入口,例如:
会员注册、登录,管理员登录,查询等。
会员登录主要是将用户输入的用户名和密码与数据库中my_users表中的已有的信息进行比对,如果完全一样,则是合法用户,可以成功登录,如果不一样,则登录失败。
查询功能是通过输入商品名称关键字和下拉菜单中商品类别进行查询提交查询信息以后由find.Jsp显示查询结果。
此功能未注册用户也可用,但是所查询商品不提供购买功能。
4.2具体模块实现
4.2.1商品查看
此功能模块由buy.jsp来实现。
当用户进入购物中心以后,系统会显示所有的商品基本信息。
但在商品数量过于庞大以后则不容易查看所需商品,所以系统提供了按类别查询的功能。
下拉菜单中有商品的所有类别,用户根据类别以post方法传递表单。
再在该页设置接收字段:
Stringbookclass=codeToString(request.getParameter("bookclass"));
通过关键字bookclass对数据库商品表my_goods进行查询:
SELECT*FROMmy_goodswheregoodsclass='"+bookclass.trim()+"'
这样就比较清楚的可以获得各类别的商品的信息。
有了自己需要购物的商品,则可以通过点击购买将商品添加到购物车,详细信息可以查看商品的详细信息。
详细信息页面xiangxi.jsp通过商品ID查询数据库,除了显示以上信息以外,还显示商品数量,备注等信息。
界面如下图:
图4-2商品信息
为了不让庞大的数据让人看得眼花缭乱,在商品的实现时是分页显示,每页显示5项记录。
分页代码如下:
intdipage=1;当前页码数默认为1
Stringpages=request.getParameter("dipage");
if(pages==null)
{
pages="1";
…………
intcountRecord=0;记录条数
intcountPageRecord=0;每页记录条数
intcountPage=0;总页数
countPageRecord=5;每页5条记录,要设置每页记录条数就更改这个变量的值
…………
countRecord=rs.getRow();得到总页数
if(countRecordcountPageRecord==0)
countPage=countRecordcountPageRecord;
else
countPage=countRecordcountPageRecord+1;把记录指针移至当前页第一条记录之前
if((dipage-1)*countPageRecord==0)
rs.beforeFirst();
…………
4.2.2购物车
此功能模块由:
buybook2.Jsp,addgoods.Jsp,minusGoods.Jsp,deleteGoods,buy.java来实现。
当用户选定某样商品并在登录后的情况下,可以点击购买将商品添加到购物车。
在购物车中可以设置购买商品的数量。
设置好数量以后按提交按钮根据商品唯一ID将商品添加到购物车。
在addgoods.jsp中通过获取商品ID:
Stringid=request.getParameter("id");
IntGoods_Count=Integer.parseInt(request.getParameter("book_count"))
以及buycar.Java中的函数
publicvoidaddGoods(StringGoods_id,intGoods_Count)来实现。
提交购物以后,可以选择查看购物车,也可以无限制的选择继续购买。
选择继续购买以后跳转到商品购买页面buy.Jsp选择查看购物车则跳转到buybook2.Jsp。
在跳转到buybook2