网上购物系统的设计与实现 论文.doc_第1页
网上购物系统的设计与实现 论文.doc_第2页
网上购物系统的设计与实现 论文.doc_第3页
网上购物系统的设计与实现 论文.doc_第4页
网上购物系统的设计与实现 论文.doc_第5页
免费预览已结束,剩余22页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

辽宁科技大学成人教育学院毕业设计(论文)网上购物系统的设计与实现摘 要随着互联网的发展,越来越多的企业都在利用网络创建购物系统。网上购物系统不仅可以宣传商家及其商品的信息,而且通过网上宣传的方式,可以吸引更多的顾客,从而为商家带来更多的经济效益。网上购物系统节省成本,提高工作效率,增强了企业的竞争力。本文介绍的网上购物系统采用JSP技术,在Struts1.2的框架下,利用Java语言和SQL Server 2000数据库管理系统进行的设计,实现了会员管理、商品信息管理、订单管理、购物车管理、公告管理等功能。该购物系统界面友好,能对商品销售情况排名,便于用户快速的浏览、查询及购买相应商品。关键词:网上购物系统;Java; JSP; Struts目 录1 前 言11.1 课题的研究背景及意义11.2 课题的研究现状11.3 课题研究的主要内容12 开发环境及相关技术简介22.1 系统配置要求22.2 技术介绍22.2.1 Java语言22.2.2 Struts22.3 SQL SERVER数据库技术简介42.4 连接SQL SERVER数据库的方法43系统的总体设计63.1 系统功能模块设计63.1.1 前台管理63.1.2 后台管理63.2 系统数据库设计73.2.1数据库概念结构设计73.2.2数据库逻辑结构设计74 系统的详细设计114.1 前台设计114.1.1 网站主页设计114.1.2 会员注册页面124.1.3 购物车模块134.1.4 商品销售排行模块164.2 后台设计174.2.1 网站后台首页设计174.2.2 后台管理员身份验证174.2.3 商品信息管理184.2.4 公告设置模块204.2.5 订单设置模块20结 论22致 谢23参考文献24III1 前 言1.1 课题的研究背景及意义网上购物在当今已经不再是一种新兴产业,但是在早期由于网站企业的信誉度难以认证,网上交易的法律法规不健全,物流不发达等一系列原因,一定程度上制约了网上购物的发展,进入二十一世纪以来,随着整个互联网的发展,限制网上购物的各种问题基本上都已经被解决,致使越来越多的企业进入网上购物的洪潮中。传统的购物方式虽然仍然处于市场的主导地位,但这种方式并不具备便捷,随意,时尚等网络购物具有的优势,所以网上购物不仅正在以迅猛之势席卷整个网络,而且还为购物市场做了一次革命性的改变。1.2 课题的研究现状互联网已成为年轻一代消费者最主要的信息来源渠道,网上购物已经成为轻松便捷节约开支的消费方式。到目前为止,国内已经有近1000万的中小企业开始尝试通过互联网来增加企业的影响力及销售额。淘宝网作为中国著名的网上购物网站之一,取胜的关键在于具有良好的用户界面,科学的管理模块,人性化的购物流程设计。淘宝网目前业务跨越C2C(消费者间)、B2C(商家对个人)两大部分。截止2008年9月注册用户超过8000万,拥有中国绝大多数网购用户,覆盖了中国绝大部分网购人群。即使如此淘宝网仍然存在着一些问题比如FAQ帮助系统仍然严重的缺乏系统性。1.3 课题研究的主要内容一个成功的网上购物系统需要具有一个友好的前台界面和一个可以扩展前台信息的后台管理系统以及网站信息的高效性,安全性,可靠性等优势。根据对本网站的需求分析,采用struts 1.2框架进行开发。使用这种开发模式进行开发更安全有效。对于购物网站的现状,本网站设计有以下功能:(1)友好的操作界面,保证系统的易用性,方便客户操作。(2)具备商品信息的展示功能,方便浏览者对商品信息进行浏览与比较。(3)规范的商品分类,方便浏览者分类查找商品。(4)购买商品功能。(5)商品销售排行功能。(6)订单信息查询功能,商品信息查询功能。(7)全面的后台管理功能,以方便管理员对网站信息进行更新与管理。2 开发环境及相关技术简介2.1 系统配置要求硬件平台:CPU:Pentium 4 1.8GHz。AMD Athlon 3000+。内存:256MB以上。软件平台:操作系统:windows XP/windows 2000/windows 2003/windows vista数 据 库:SQL Server 2000。开发工具包:JDK Version 1.6.JSP服务器:Tomcat 6.0.浏览器:IE 7.0IDE:MyEclipse 7.02.2 技术介绍2.2.1 Java语言Java是一种简单易用,完全面向对象,和平台无关性,安全高效的,主要面向Internet的开发工具。Java是第一套允许使用者将应用程序通过Internet从远端服务器传输到本地机上并执行的一种语言;是一种应用程序提供者不需要知道使用者的计算机硬件与软件环境的语言。2.2.2 Struts对于开发Web应用程序,要从头设计并开发出一个可靠,稳定的框架并不是一件容易的事。幸运的是,随着Web开发技术的日趋成熟,在Web开发领域中出现了一些现成的优秀的框架,开发者可以直接使用,例如Struts就是其中一种不错的选择,它是基于MVC 的Web应用框架。Struts实现MVC的机制在Struts框架中,模型由实现业务逻辑的JavaBean或EJB组件构成,控制层由ActionServlet和Action来实现,视图由一组JSP文件构成。图2-1显示了Struts实现的MVC框架。Struts-config.xmlWeb服务器(控制层)Action Servlet(模型)Javabean或EJB浏览器Action(视图)JSPAction图2-1 Struts实现的MVC框架Struts的工作流程对于采用struts框架的Web应用程序,在Web应用程序启动时就会自动加载并初始化Action Servlet,Action Servlet从struts-config.xml文件中读取配置信息,然后将这些信息存放到各种配置对象中,例如Action的映射信息存放在Action Mapping对象中。当Action Servlet接收到一个客户请求时,将执行如下流程。(1)检索和用户请求匹配的Action Mapping实例,如果不存在,就返回用户请求路径无效的信息。(2)如果Action Form实例不存在,就创建一个Action Form对象,把用户提交的表单数据保存到ActionForm对象中。(3)根据配置信息决定是否需要进行表单验证。如果需要验证,就调用ActionForm的validata方法。(4)如果ActionForm中的validata方法返回null或返回一个不包括ActionMapping的ActionErrors对象,就表示表单验证成功;如果ActionForm中的validata方法返回一个包含一个或多个ActionMapping的ActionErrors对象,就表示表单验证失败,此时Action Servlet将直接把请求转发给包含用户提交表单的JSP组件,在这种情况下,不会再创建Action对象并调用Action的excute方法。(5)Action Servlet根据Action Mapping实例包含的映射信息决定将请求转发给哪个Action,如果相应的Action实例不存在,就先创建这个实例,然后调用Action的excute方法(6)Action的excute方法返回一个Action Forward对象,Action Servlet再把用户请求转发给Action Forward对象指向的JSP组件(7)Action Forward对象指向的JSP组件生成动态网页,返回给客户。2.3 SQL SERVER数据库技术简介SQL Server是由Microsoft 公司开发和推广的高性能的客户端/服务器结构的关系数据库管理系统(DBMS)。SQL Server 2000 是Microsoft 公司2000年推出的SQL Server 数据库管理系统的版本。它是一个杰出的数据库平台,可用于大型联机事务处理、数据仓库、以及电子商务等。是真正的客户机/服务器体系结构、图形化用户界面、有丰富的编程接口工具。SQL Server与Windows NT完全集成,具有很好的伸缩性,并且支持Web技术。SQL Server是一个全面的、集成的、端到端的数据解决方案,它为企业中的用户提供了一个安全、可靠和高效的平台用于企业数据管理和商业智能应用。2.4 连接SQL SERVER数据库的方法如今的软件项目研发很少有不用到数据库的,数据库用来集中存储,共享数据,于是就需要在应用程序中来操作数据库。Java编程中使用JDBC(java Database Connectivity,Java数据库连接)接口来操作数据库中的数据,它提供了一系列的接口,类来供开发人员使用,以简化编程。在Jsp中主要使用JDBC技术来连接数据库,是SUN公司提供的一套数据库编程标准API接口。有了JDBC API,Java Web开发人员就不必关心数据操作的细节,以及过多的数据库的品种在了解JDBC API的基础上,运用标准的SQL语句(不同的数据库品种sql语句可能稍有不同),通过调用JDBC API就可以操作数据库中的数据了。本网上购物系统通过JDBC连接SQLServer2000数据库主要分六步:(1) Load the JDBC Driver(加载数据库驱动):从微软网站下载SQLServer2000数据库驱动Jar包,保存在项目所在的lib文件夹中,数据库驱动名为:com.microsoft.jdbc.sqlserver.SQLServer Driver。(2)Establish the Database Connection(建立数据库连接):创建Connection对象,通过调用getConnection方法建立数据库连接。(3) Create a Statement Object(创建数据查询对象):创建statement对象(一般可创建PreparedStatement),编写SQL语句。(4 )Execute a Query(使用查询或者执行dml语句):通过PreparedStatement创建的对象,调用相应的executeUpdate或executeQuery方法经行相关的提交操作。(5) Process the Results(如果是查询语句有结果集,那么就对结果集进行操作):如果需要遍历查询结果就创建结果集对象进行循环遍历。Close the Connection(最后将连接关闭):调用相应的Close()方法关闭连接。3系统的总体设计3.1 系统功能模块设计本网上购物系统通过Jsp,Struts连接数据库进行开发,由前台管理和后台管理两部分组成。3.1.1 前台管理本部分主要包括商品展示,购物车,结算台,会员管理,商城公告及订单查询,商品查询等功能。系统前台商品站台商品查询购物车结算台会员管理订单查询商场公告新品上架销售排行特价商品按类别查询物品添加商品到购物车查看购物车从购物车中删除物品清空购物车填写订单信息结账会员注册会员登陆会员资料修改订单查询商城公告图3-1 网上购物系统前台功能结构图3.1.2 后台管理该部分主要对商城内的一些基础数据进行有效地管理,包括后台登陆,商品设置,会员设置,订单设置,后台管理员设置,友情链接设置,公告设置等功能。网上购物系统后台功能结构如图3-2所示。系统后台商品设置模块会员设置模块友情链接设置模块公告设置模块订单设置模块后台管理员设置模块图3-2 网上购物系统后台功能结构图3.2 系统数据库设计3.2.1数据库概念结构设计订货商品会员 n n管理 n n管理 管理员 1 1 图3-3 E-R图3.2.2数据库逻辑结构设计tb_goods商品信息表主要用来保存各种商品的相关信息。表3-1 商品信息表字段名 数据类型 长度 主键否 描述IDInt4是数据库流水号bigIdInt4大类别的编号smallIdInt4小类别表的外关键goodNameVarchar50商品的名称goodFromVarchar50商品生产厂商IntroduceText16商品介绍creaTimeSmalldatatime4商品添加时间nowPriceMoney8现价表3-1 商品信息表(续)字段名 数据类型 长度 主键否 描述freePriceMoney8特价商品NumberInt4购买次数MarkBit1是否是特价商品tb_bigType(商品大分类信息表)主要用来保存商品类别中大的类别信息。表3-2 商品大分类信息表字段名数据类型长度主键否描述IDInt4是数据库流水号bigNameVarchar50商品大类别名称creaTimeSmalldatatime4创建时间tb_smallType(商品小分类信息表)主要用来保存商品类别中小的类别信息。表3-3 商品小分类信息表字段名 数据类型 长度 主键否 描述IDInt4是数据库流水号bigIdInt4商品大类别的外键表smallNameVarchar50商品小类别名称creaTimeSmalldatatime4创建时间tb_order(订单信息主表)用来保存订单的概要信息。表3-4 订单信息表字段名 数据类型 长度 主键否 描述IDInt4数据库流水号NumberVarchar50是商品订货的编号NameVarchar50会员编号reallyNameVarchar50会员真实姓名AddressVarchar50订货地址TelVarchar50订货电话setMoneyVarchar50付款方式PostVarchar50运送方式SignBit1发送货物是否成功tb_orderDetail(订单明细表)用来保存订单的详细信息。表3-5 订单明细表字段名数据类型长度主键否描述IDInt4是数据库流水号orderNumberVarchar50外订货编号goodIdInt4商品编号PriceFloat8价格NumberInt4订货数量creaTimeSmalldatatime4创建时间tb_member(会员信息表)主要用来存储所注册地会员的信息。表3-6 会员信息表字段名 数据类型 长度 主键否 描述IDInt4是数据库流水号NameVarchar50会员名称PasswordVarchar50会员密码reallyNameVarchar10会员真实姓名AgeInt4会员年龄ProfessionalVarchar50会员职业E-mailVarchar50电子邮箱地址QuestionsVarchar50找回密码问题ResultsVarchar50找回密码答案tb_manager(管理员信息表)用来保存管理员的信息。表3-7 管理员信息表字段名 数据类型 长度 主键否 描述IDInt4是数据库流水号AccountVarchar50管理员账号PasswordVarchar50管理员密码NameVarchar50管理员名称SighBit1是否为管理员标识(0:是;1:不是)tb_affiche(公告信息表)主要用来保存商城的公告信息。表3-8 公告信息表字段名 数据类型 长度 主键否 描述IDInt4是数据库流水号NameVarchar50公告标题ContentText16公告内容issueTimeSmalldatatime4公告发布时间tb_link(友情链接信息表)主要用来保存商城的网站链接信息。表3-9 友情链接信息表字段名 数据类型 长度 主键否 描述IDInt4是数据库流水号linkNameVarchar16网站的连接名称linkAddressVarchar16网站链接地址linkPictureVarchar16网站链接图片地址linkTimeSmalldatatime4创建时间4 系统的详细设计4.1 前台设计4.1.1 网站主页设计当会员登陆成功后,将进入网站主页面,对于网络购物中心网站来说,首页设计的好坏将直接影响到顾客的购买兴趣。在网络购物中心的首页中,用户不但可以在第一时间内掌握商城推出的特价商品,上架新品,最新公告等,还可以查看销售排行,商品分类查询等。(1)首页的导航部分(topOne.jsp)设置了一个表格,将导航条图片设置为该表格的背景,然后分别在图片的各个部分做热点。(2)网站首页左部信息版块包括会员登陆,公告信息,商品销售排行等内容,公告信息主要采用滚动信息的模式将内容显示出来,这里是将所有公告栏相关信息从数据库取出之后,使用了标签实现信息滚动的功能。(3)除了公告信息之外,网上购物系统首页的左部信息版块还包括商品销售排行榜,这部分是首先在页面中引用一个JavaBean,该JavaBean就是com.dao.GoodsDao.java文件,该类中定义一个selectGoodsNumber()方法,该方法用于返回根据购买数排列的商品信息集合,然后在页面中循环这个集合,将商品按购买次数从高导低排列出来,在这里限制只显示五种商品。网上购物系统前台首页运行结果如图4-1。 图4-1 网上购物系统主页效果4.1.2 会员注册页面当用户第一次登陆时,首先需要用户注册,成为会员的用户才可在该网站上购物。用户注册member/memberRegister.jsp页面提交的数据表单如图4-2所示。图4-2 会员注册页面效果如果用户记住自己注册的用户名和密码提示的答案就可以找回登陆的密码。本系统通过JSP页面调用类中的方法实现找回密码的方法。(1)单击“找回密码”的超级链接,进入输入会员账号的findTwo.jsp页面,通过输入会员账号,单击“提交”按钮,如果输入的账号正确,进入到输入提示问题答案的JSP页面。(2)通过对象dao,调用MemberDao类中的selectMemberForm方法,用于查询会员的相关信息,通过输入问题的答案,单击“提交按钮”,如果输入正确的答案,进入到输入新密码的findThree.jsp,通过对象dao调用selectFind方法,该方法执行的SQL语句是查询功能,它执行的SQL语句是“select * from tb_member where name=?and result=?”。问号部分所表示的是向方法中传递的参数。(3)通过在文本框中输入新的密码,在客户端判断文本框中的密码是否一致,输入新密码后,单击“提交”按钮,显示信息“密码修改成功!”。如图4-3所示。图4-3 找回密码页面效果4.1.3 购物车模块本模块主要包括以下功能:(1)添加购物车添加购物车就是把用户选中的商品暂时放在购物车中。当用户在前台首页中单击特价商品或者新品上架的“查看详细内容”超级链接,可以查看出该商品的详细信息,显示结果如图4-4所示。图4-4 查看商品详细信息页面效果为了方便用户随时查看购物情况,在网站的首页加入了查看购物车的链接,通过它用户可以查看所有放入购物车中商品信息。购物车模块的流程是从session中读取cart对象,如果为空,说明还没有进行购物或者已经清空了购物车,需要新建购物车对象,再将商品名称与购物车列表中的商品名称对比,如果已经存在,则把商品数量加1.其中应用到集合类,集合类可以加入重复数据,它的作用和数据相同,可以保存一些列数据,但是集合类又有它独特的优点,就是可以方便的对集合内的数据进行查找,添加,删除和修改等操作。 (2)查看购物车为了方便用户随时查看购物情况在网站的首页加入了查看购物车的链接通过它用户可以查看所有放入购物车中商品信息查看购物车页面的运行结果如图4-5所示。图4-5 查看购物车页面系统每次只会将一个商品放入购物车中,如果用户需要购买多个同种商品时,可以通过修改商品信息右侧相应文本框中的数值来完成。查看购物车页面的代码首先通过if(session.getAttribute(“cart”=null)判断购物车是否为空,SellGoodsForm form=(SellGoodsForm)cart.elementAt(i).查看添加购物车的信息。(3)生成订单生成订单式网上购物中心的最终目的,前面所有功能的实现都是为最后生成一个用户满意的订单作基础,在此要生成一个可以供用户随时查询的订单号,还要保存用户订单中所购买的商品信息。当用户确认对购物车中的商品不再改变以后,就可以到收银台结账并生成订单。结账的流程为:从购物车中读取商品名称,商品数量,商品价格信息,生成一个唯一的订单号,同时也把用户注册的基本信息读取出来,形成一个完整的订单写入数据库。当用户单击导航栏中的结账,生成的填写订单的页面如图4-6所示。 图4-6 生成订单页面生成订单模块中主要是调用用户信息来生成唯一的订单号,调用用户信息就是对数据库进行操作,利用session对象把登陆后的用户名保存起来,在订单生成时把保存的用户名从数据库的用户表取出即可。订单生成后,用户单击“提交”按钮,便可以将录入的订单信息保存到数据库中,此操作由cart_checkOutOrder.jsp完成。(4)清空购物车当用户生成订单后,倘若还想继续购物时,一定要清空购物车再选购商品,这样防止重复购物,清空购物车方法为将session中存储的cart对象清空即可,此功能由cart_clear.jsp 完成.4.1.4 商品销售排行模块在首页中单击“销售排行”超级链接,触发sell_resultTen.jsp页面,执行商品销售排行榜的结果如图4-7所示。图4-7 商品销售排行页面具体执行步骤是(1)在sell_resultTen.jsp页面中,首先调用GoodsDao.java类中的selectGoodsNumber方法获取集合,该方法根据销量进行排序返回一个结果集。selectGoodsNumber的具体写法如下:List list=new ArrayList();GoodsForm goods=null;(2)获取一个PreparedStatement实例,该实例的SQL语句根据商品的销售量进行排序,实例调用excuteQuery()方法获取一个结果集,循环该结果集,获取一个GoodsForm实例将数据库中的值放入GoodsForm类中。(3)将这个GoodsForm对象添加到集合中。当在GoodsForm.java类中创建完成上面的方法后,可以在sell_resultTen.jsp页面中使用。4.2 后台设计4.2.1 网站后台首页设计当管理员登陆成功后,将进入网站购物中心后台首页面,网络购物中心后台首页运行结果如图4-8所示。图4-8 后台首页运行结果4.2.2 后台管理员身份验证(1)在网站前台首页的底部提供了后台管理员的登录入口,通过该入口可以进入到后台登陆页面(2)在该页面管理员输入正确的账号和密码,单击“提交”按钮,系统能判断登录账号及密码的有效性,如果通过验证则转到后台主页,反之则提示错误。后台管理员页面的运行结果如图4-9所示。图4-9 后台管理员登陆页面的运行效果。4.2.3 商品信息管理在网上购物系统中对于商品信息的管理至关重要,可以说一个没有任何商品信息或商品信息不齐全的网上购物系统是没有意义的。因此一个好的网上购物系统,必须拥有一个完美的商品信息管理模块。网上购物系统的商品信息管理模块主要实现的是商品信息的查询,添加,修改和删除等功能。商品信息的查询(1)在后台首页中,单击“商品设置”超链接,在goodSelect.jsp页中通过request.Attribute方法取得类中的各个对象的值,在JSP页中显示商品信息。(2)该链接指向“goodsAction.do?action=0”的Action类的映射,当action=0时,GoodsAction类所触发的方法dao.selectGoods();计算出有多少条记录,计算由多少页数,获取当前页码,计算最大页码,如果当前页码为空,设置当前页码为0。(3)将当前页码做session传递给指定页面并且将最大页码做session传递到指定页面。用request.setAttribute(“list”,list)将集合传递到指定页面。跳转到goodSelect页面。显示的结果如图4-10所示。图4-10 商品信息查询商品信息的添加(1)在商品管理查询页中,单击“添加商品”超级链接,进入到添加商品信息页面。添加商品信息页面主要用于向数据库中添加新的商品信息。(2)单击提交按钮,触发的是“goodsAction.do?action=3”的Action类URL,当action=0时,GoodsAction类所触发的saveGoods方法,把从JSP页中取得的数据保存在服务器中的session中。(3)通过返回对象goodsOperation,在struts_config.xml的配置代码将数据保存到session变量中后,通过上面的方法进入到goodsUploadPicture.jsp页面,该页面的执行效果如图4-11所示。图4-11 商品信息添加4.2.4 公告设置模块公告设置是网上购物系统的附加功能,也是为了方便顾客了解网上购物系统的最新动态信息等所增加的一个功能模块,这部分包括的功能如下:公告删除:用户与管理员的公告浏览的实现时一样的,只是调用的JSP不同,它所实现的方式实质是调用一条SQL查询语句。公告设置模块的实现采用Struts技术,在样式层中创建ActionForm类,在该类中实现对公告属性的取值和赋值方法,公告模块对应的ActionForm类AfficheForm.java中定义content,name,IssueTime,id的get和set方法。公告的添加,修改,和删除调用相应dao包中AfficheDao.java类中相应的insertAffiche,updateAffiche,deleteAffiche方法即可。如图4-12所示。图4-12 公告信息4.2.5 订单设置模块用户在前台购物所产生的订单不能立即执行,需要系统管理员在后台订单信息管理中审核确认它的执行性。(1)单击订单设置超级链接,进入订单处理页面。该页面上显示近期所有被处理的订单。(2)订单处理页面显示的是用户的基本信息。要想知道订单中所涉及的商品,需要单击对应订单号一行中的“详细信息”超级链接,打开商品订购详单页面才行。(3)订单的执行方法主要是修改订单表的字段名为sign的值,即执行一条SQL语句,update tb_order set sign=1where number=?.(4)当用户在订单详细信息查询页面中单击“出货”超级链接,即可以执行订单的操作,它触发的是“orderAction.do?action=3&number=.”,number是向类中传递订货的编号。当action=0时GoodsAction类所触发的方

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论