【《基于JSP的广西百色水果商城的设计与实现》13000字(论文)】_第1页
【《基于JSP的广西百色水果商城的设计与实现》13000字(论文)】_第2页
【《基于JSP的广西百色水果商城的设计与实现》13000字(论文)】_第3页
【《基于JSP的广西百色水果商城的设计与实现》13000字(论文)】_第4页
【《基于JSP的广西百色水果商城的设计与实现》13000字(论文)】_第5页
已阅读5页,还剩38页未读, 继续免费阅读

下载本文档

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

文档简介

基于JSP的广西百色水果商城的设计与实现摘要现如今,随着信息技术和因特网的快速发展,人们对水果的需求日渐增长,不在满足于只能在线下购买水果,线下购买的水果可能存在一些不可避免的问题,如品种少、不够新鲜。于是人们纷纷选择在线上进行购买水果,线上购买水果不仅不受时间空间限制,还拥有多种选择。在此背景下,本文设计一个关于网上售卖水果的商城。对本商城设计进行了一些相应的需求分析。商城的用户有三种不同的角色,分别为游客、会员和商城管理员。游客在商城可以注册自己的账号成为商城会员进行登录,游客只能在商城中浏览水果类别、查看水果信息、搜索水果等,会员在游客的基础上还可以添加水果至购物车、查看个人基本信息、购物车的相关信息等。商城管理员可以查看水果类别和信息、添加和删除水果类别和信息、管理商城会员的信息、管理会员的留言等。其次对系统进行设计,划分系统功能模块,设计商城的数据库。最后描述了所有的功能模块的实现经过。经过实际分析,本系统使用到了Tomcat服务器、MySQL数据库和MyEclipse8.5开发平台实现一个关于网上水果商城购物系统。关键词:水果商城系统;JSP;MyEclipse8.5;数据库目录TOC\o"1-3"\h\u1前言 11.1研究背景及意义 前言1.1研究背景及意义网络的快速发展,在很大程度上让商品的交易方式发生了变化,催生出一种较为方便快捷的购物方式——网上购物。与传统购物模式相比较,我们发现网上购物更为简单、容易和快速,可以实现足不出户即可购买所需产品,不用再受到时间和空间的限制[1][2],网络购物俨然成为一种新的潮流[3]。随着社会经济水平的不断提高,人们会把部分支出花在自己的身体健康方面,比如补充维生素,而水果就含有多种维生素,因此人们会购买各式各样的水果来补充身体所需的维生素。当人们不再满足于线下购物所出售的水果时,就会通过网络购物寻找自己所需要的水果。广西百色属于亚热带季风季候区,太阳光明媚且充足,雨天和热天时长差不多,因此适合种植多种水果并盛产。结合现实生活,开设一家售卖水果的商城是极为重要的。通过水果商城消费者可以货比三家,快速选择到更适合自己口味的水果。开设网上水果商城不再需要消费一笔店铺租金,极大的节省了开设网络店铺的资金,同时由于消费者可以在任何时间段、任何地点购买水果,增加了水果消费群体,提高了企业和实体户的竞争力。1.2系统开发工具及技术本水果商城系统的设计与实现用到开发工具MyEclipse8.5、Tomcat服务器,运用MySQL对系统信息进行存储,实现数据库功能,在设计的过程中使用JSP动态网站设计语言完成本系统的页面设计[4],各开发工具互相协助配合,实现水果商城系统的主要功能。1.2.1开发工具MyEclipse8.5通常是用来设计Java等语言的插件集合,同时数据库也可以通过它完成设计。若想增强它的运行速度,可以通过整合服务器来实现,它的功能繁多且强大,几乎拥有各种基本的设计功能。Tomcat是一个应用服务器且免费开放。使用的时候就是访问的客户比较少的情况,是使用JSP程序设计的优先选择。当将它安装在某一台电脑时,页面的访问请求可以通过它进行解析。运行比较独立的Tomcat可以当成是Apache服务器基础的延伸程序。MySQL是一种小型关系型数据库管理系统[5],运用C/C++程序语言进行设计,同时拥有很多种编译器检验,同时支持Windows、Linux等多种系统,支持多线程。MySQL提供了JDBC、ODBC等多种数据库连接方式,且能把数据保存在不同的数据表中,能够对拥有很多条记录的数据库进行储存运算,从而提高运行此系统的灵活性。1.2.2开发技术JavaServerPages的简称为“JSP”,是一种基于Javaservlet的动态网页开发技术[6],可以对动态网页进行封装,在网页中使用JSP标签写入Java代码,标签通常以<%%>结束,一个HTML文本放回用户端可以在JSP中实现,因此只要用户端具备浏览器就可浏览。JSP相对于ASP来说,它多平台支持,可以在全部平台设计。JavaScript的简称为“JS”,是一种运行在浏览器的危险性较低的用户端脚本语言。JavaScript有面向对象的功能,如果是以面向对象的程序开发,能够反复利用更直接的方法来进行程序设计。使用JavaScript对交互式网页进行设计时,能够快速准确的完成客户和网页之间进行的交互。语法相似的JavaScript和Java并没有任何的关系。JavaScript运行在浏览器中,代码由浏览器解释后执行,而Java运行在JVM中。AsynchronousJavaScriptAndXML的简称为“AJAX”,是运行速度很快的交互性极强的开发技术。在系统的后台只要与服务器进行少量的数据交换即HTTP请求,利用AJAX技术就可以实现网页的异步更新,达到局部刷新的效果。这项技术可以使Internet程序更完善,且容易安装和开发。My97DataPicker是一款强大的可以选择时间的控件。1.3系统可行性分析在设计系统时,我们必须对系统进行可行性分析,这在一定程度上可以降低人力、物力和财力。1.3.1技术可行性本商城系统主要使用了MyEclipse8.5和MySQL数据库作为编程工具,使用Java编程语言作为开发语言,其好处就是能够方便快捷的开发与设计本网站,在开发与设计的过程中可以清晰明了的设计各个模块的代码。在大学期间,认真的了解学习Java编程语言、软件测试等专业知识,对设计本系统提供了基础。1.3.2经济可行性本系统对计算机配置要求较低,且所使用的软件都是开放免费的软件,在一定程度上缓解了开发系统所使用的资金。1.3.3操作可行性本系统页面设计简单,模块清晰,页面信息选择的形式几乎都为下拉框,不需要过多的操作即可完成输入。同时在时间上使用日期控件,操作简单,适合各个年龄阶段的消费者进行操作。2系统需求分析2.1项目开发环境分析本水果商城系统的开发与设计使用Java编程语言进行开发,所以需要配置Java运行环境。配置如下:(1)操作系统:Windows7以上、32位及以上操作系统。(2)运行内存:2.00GB以上。(3)开发工具:MyEclipse8.5。(4)开发语言:Java语言。(5)服务器:Tomcat。(6)浏览器:MySQL。 (7)数据库:IE浏览器。2.2系统流程的分析本系统设计了三种不同的角色,分别是游客、会员和商城系统管理员。游客和会员可通过浏览器浏览本商城,并且按照提示来进行浏览。商城系统管理员可以在后台对商城商品等进行管理。系统流程如下图所示:图2.1水果商城游客、会员流程图Figure2.1FlowchartforvisitorsandmembersoftheFruitMall图2.2水果商城管理员流程图Figure2.2FlowchartoftheFruitStoreAdministrator2.3系统功能需求分析2.3.1确定系统功能本水果商城是一个面向所有用户的网上售卖水果网站。商城用户可以分为游客、会员和商城系统管理员。其中游客在商城主页面可以选择注册成为会员、查看水果的基本信息,通过搜索栏搜索水果,浏览商城资讯和店家加盟消息,但不可以将心仪的水果加至购物车之中。游客只有注册成为会员之后,在游客的基础操作上还可以查看个人信息、个人购物车和个人订单。商城管理员在登录商城后台后对水果的类别、水果的基本信息、会员信息、订单信息、商城资讯、店家加盟、留言等信息进行管理。商城主页面游客进入水果商城首页后,在左侧“功能菜单”栏可看到本商城的所设计的栏目。游客可以点击“商品展示”浏览展示的水果,点击水果图片可以查看水果的详细信息,也可以在首页通过“商品搜索”栏查找自己想要的水果,可以点击“用户注册”成为商城会员,成为会员后,可以查看个人购物车和个人信息等。注册登录游客可以选择注册成为商城的会员,点击“用户注册”填写个人的基本信息,成为会员后登录商城,会员不仅拥有游客所拥有的操作,还可以查看个人的相关信息等。商品搜索游客和会员可以通过点击“商品搜索”栏查看所需要查找的水果。浏览水果详情游客和会员可以通过点击水果图片,查看该水果的详细信息。商城资讯游客和会员在商城首页点击“商城资讯”进入资讯页面,可以看到系统管理员发布的关于水果的相关文章。我的购物车游客注册成为商城会员后登录商城,才可以将本商城的水果加入购物车。点击“我的购物车”,可以快速查看所加购的水果的信息。可以对所加购的水果进行数量的修改、删除该水果等操作我的订单商城会员可以点击“我的订单”查看自己的订单信息。我的信息游客注册成为会员后点击“我的信息”进入个人信息页面,会员就可以查看所注册的个人信息,可以对个人信息进行修改。水果类别管理商城管理员在登录后台系统后,可以查看本商城所有的水果类别,还可以对水果类别进行删除、添加操作。水果信息管理商城管理员在登录后台系统后,可以在该页面查看商城所有的水果信息,可以对水果信息进行删除、添加新的水果信息。会员信息管理商城管理员在登录后台系统后,可以查看注册成为本商城会员的信息。还可以删除本商城会员。订单信息管理商城管理员在登录后台系统后,可以查看会员在本商城所有的订单信息。商城资讯管理商城管理员在登录后台系统后,可以查看本商城的所有资讯文章,可以对文章进行删除和添加操作。店家加盟商城管理员在登录后台系统后,可以编辑店家加盟的信息。留言管理商城管理员在登录后台系统后,可以查看会员在商城的所有留言信息。2.3.2系统功能用例图在水果商城系统中,用户可以分为3种,游客、会员和系统管理员。三种用户的用例图分别如下图所示:图2.3水果商城游客用例图Figure2.3Usecasediagramfortouristsinthefruitmall图2.4水果商城会员用例图Figure2.4UsecasediagramformembersoftheFruitMall图2.5水果商城管理员用例图Figure2.5Usecasediagramoffruitmalladministrator3系统概要设计3.1系统设计原则(1)采用多种开发技术,确保商城前台和系统后台能顺利运作,过程清晰明了,模式简单,且和大部分网页相适应。(2)采用模块化设计,就是把整个水果商城系统分为很多份较小的模块,如水果信息管理模块、会员信息管理模块、订单模块等,这样可以更方便更容易实现本商城的功能,提高工作效率。(3)本水果商城界面设计简单友好,简单友好的网站页面,方便消费者更快的适应商城,快速的浏览水果信息,找到自己所需的水果,避免在寻找过程中消耗时间。3.2确定系统模块由前一章节所分析的需求,可以知道系统主要有游客、商城会员和管理员三种不同的角色,前台用户包括游客、会员,后台为管理员管理。前台功能结构图如图3.1所示:图3.1水果商城系统前台功能结构图Figure3.1Thefunctionalstructurediagramofthefrontdeskofthefruitmallsystem后台功能结构图如下图3.2所示。图3.2水果商城系统后台功能结构图Figure3.2Thefunctionalstructurediagramofthebackgroundofthefruitmallsystem3.3系统各功能模块设计3.3.1前台功能模块设计(1)商城主页面游客在进入网站首页之后,会直接看到商城的主页面,主页面左侧为功能展示区,包括商品展示、商城资讯、店家加盟、商品搜索等栏目,游客在未登录状态时可以看到用户注册栏,当游客注册登录后,还可以看到我的信息、我的购物车、我的订单栏目。游客和会员可以根据个人需求点击相应的栏目自行浏览。(2)注册登录游客在为登录状态只能对商城里面的水果进行浏览,不能加入购物车。只有注册成为本网站会员之后,使用所注册的会员账号和密码登录商城,才可以对水果进行加购。用户注册成为会员时需填写个人账号、密码、姓名、性别、年龄、住址、电话等信息。可以修改除了个人账号之外的个人信息。(3)商品搜索游客和会员可以输入商品的名称查询想查询的水果。(4)浏览水果详情游客和会员通过点击商品展示页面展示的水果图片或通过商品类别区域所展示的水果图片,浏览心仪水果的名称、详细介绍、水果价格等信息。(5)商城资讯游客和会员点击“商城资讯”可以看到系统管理员发布的管理水果的文章,先看到的是水果文章的标题,点击相关文章链接,可以看到文章的内容、发布时间等消息。(6)我的购物车只有会员可以查看购物车。在看到心仪的水果之后,把水果暂时存放在购物车当中,点击“我的购物车”即可看到所加购的水果信息,包括水果名称、价格、数量、金额等信息。可以对加购数量进行修改、还可以删除购物车中的水果。(7)我的订单只有会员可以查看个人订单。订单内容包括订单编号、下单时间、状态、送货地址、金额等信息。(8)我的信息游客注册成为商城会员后才可查看个人信息,包括注册时输入的账号、密码、姓名、性别、年龄、住址、电话等。可以对除了账号之外的信息进行修改。3.3.2后台功能模块设计水果类别管理商城管理员可以点击“水果类别管理”查看本商城所有水果的类别,可以删除水果类别。点击“添加水果类别”即可在商城添加新的水果类别。水果信息管理商城管理员可以点击“水果信息管理”查看本商城所有水果的信息,包括水果名称、图片、价格等信息。同时可以删除水果信息。点击“水果信息添加”可以添加新的水果。包括添加的类别、名称、介绍、图片、价格等信息。会员信息管理商城管理员可以查看本商城所有会员的信息,可以删除本商城会员。订单信息管理商城管理员可以查看本商城用户的所有订单信息,可以查看详细的订单内容,包括订单的编号、下单的时间、状态、送货地址、付款方式、订单价格等。商城资讯管理商城管理员可以在后台对商城的资讯进行管理,可以添加相关的水果文章,也可以删除已发布的文章。留言管理商城管理员在后台可以查看会员对本商城水果的留言信息,可以对留言信息进行删除操作。3.4系统数据库分析与设计数据库设计的优劣对整个系统的设计与开发有着极大的影响力。本系统所使用的数据库为MySQL数据库,它允许使用各种格式管理信息如收集、更新、整理等,且在再次使用时不需要重新输入相关的数据。3.4.1数据库逻辑结构设计数据库概念模型与它的管理系统不同,因此设计数据库时需要根据不同的特点来进行具体的设计,在设计过程中应遵循以下两点原则:(1)所有的主键都定义为非空(NOTNULL),为了保证唯一性所以所设计的表中不能拥有相同主键的多行数据。(2)根据一对一、一对多、多对多等联系来定义表的外键,外键的约束是为了确保引用的完整性。结合本水果商城系统的需求,本商城系统数据库表逻辑结构分别如下所示:水果类别信息表(t_leibie):类别ID(id)、类别名称(mingcheng)。订单信息表(t_order):订单编号(id)、订单编号(bianhao)、下单时间(xiadanshi)、状态(zt)、送货地址(songhuodizhi)、付款方式(fukuanfangshi)、总金额(zongjia)、会员(huiyuanId)。商城留言表(t_liuyan):留言账号(liuyan_id)、留言标题(liuyan_title)、留言内容(liuyan_content)、留言时间(liuyan_data)、留言名字(liuyan_user)。订单明细表(t_mingxi):会员id(id)、订单编号(orderId)、水果名称(goodsId)、下单数量(goodsShuliang)。商城资讯表(t_xinwen):编号(id)、资讯标题(biaoti)、资讯内容(neirong)、发布时间(shijian)。加盟内容信息表(t_jieshao):编号(id)、内容(neirong)。管理员信息表(t_admin):管理员ID(userId)、用户名(userName)、密码(userPw)。水果信息表(t_goods):商品ID(id)、类别ID(leibieID)、名称(mingcheng)、详情介绍(jieshao)、商品图片(fujian)、商品价格(jiage)。会员信息表(t_huiyuan):会员id(id)、账号(loginname)、密码(loginpw)、姓名(xingming)、性别(xingbie)、年龄(nianling)、联系方式(dianhua)、住址(address)。3.4.2数据库E-R图设计根据系统设计的数据表,分析实体之间的关系,进行本系统的E-R图的绘制。本系统绘制的E-R图[7]如4.1所示。图3.3水果商城数据库E-R图Figure3.3E-RDiagramofFruitMallDatabase3.4.3数据库物理结构设计(1)管理员信息表(t_admin),此表主要记录管理员账号的信息,包括用户名和密码,其中userID设为主键。如下表3.1所示:表3.1管理员信息表Table3.1Administratorinformationtable字段名称数据类型长度是否为空是否主键说明userIdint11否是编号userNamevarchar55否否用户名userPwvarchar55否否密码(2)水果信息表(t_goods),此表主要记录水果的相关信息,包括水果ID、类别ID、水果名称、水果详情、水果图片、水果价格等,其中id设为主键。如下表3.2所示:表3.2水果信息表Table3.2FruitInformationTable字段名称数据类型长度是否为空是否主键说明idint11否是商品IDleibieIdint11否否类别IDmingchengvarchar50否否名称jieshaovarchar5000否否详情介绍fujianvarchar50否否商品图片jiageint50否否商品价格

(3)会员信息表(t_huiyuan),此表主要记录了用户的基本信息,包括会员账号、密码、姓名、性别、年龄、联系方式、住址等,其中id设为主键。如下表3.3所示:表3.3会员信息表Table3.3MemberInformationTable字段名称数据类型长度是否为空是否主键说明idint11否是自动编号loginnamevarchar50否否账号loginpwvarchar50否否密码xingmingvarchar50否否姓名xingbievarchar50否否性别nianlingint11否否年龄dianhuavarchar255否否联系方式addressvarchar50否否住址(4)水果类别信息表(t_leibie),此表主要记录了水果类别的基本信息,包括类别ID、类别名称等,其中id设为主键。如下表3.4所示:表3.4水果类别信息表Table3.4Fruitcategoryinformationtable字段名称数据类型长度是否为空是否主键说明idint11否是类别IDmingchengvarchar255否否类别名称(5)订单信息表(t_order),此表主要记录会员的订单信息,包括订单编号、下单时间、订单状态、付款方式、金额等,其中id设为主键,如下表3.5所示:表3.5订单信息表Table3.5OrderInformationTable字段名称数据类型长度是否为空是否主键说明idint11否是自动编号bianhaovarchar50否否订单编号xiadanshivarchar50否否下单时间ztvarchar11否否状态songhuodizhivarchar50否否送货地址fukuanfangshivarchar255否否付款方式zongjiaint11否否总金额huiyuanIdint11否否会员(6)商城留言表(t_liuyan),此表主要记录会员在商城的留言信息,包括留言id、留言标题、留言内容、留言时间、用户名等,其中liuyan_id设为主键,如下表3.6所示:表3.6商城留言表Table3.6MallMessageForm字段名称数据类型长度是否为空是否主键说明liuyan_idint11否是idLiuyan_titlevarchar50否否标题liuyan_contentvarchar5000否否内容liuyan_datevarchar50否否时间(7)订单明细表(t_mingxi),此表主要记录购物车详细信息,包括用户id、订单编号、水果名称、下单数量,其中id设为主键。如下表3.7所示:表3.7订单明细表Table3.7Orderdetails字段名称数据类型长度是否为空是否主键说明idint11否是idorderIdint11否否订单编号goodsIdint11否否水果名称goodsShuliangint11否否下单数量(8)商城资讯表(t_xiniwen),此表主要商城关于水果的一些资讯信息,包括资讯编号、资讯标题、资讯内容、发布时间,其中id设为主键。如下表3.8所示:表3.8商城资讯表Table3.8MallInformationForm字段名称数据类型长度是否为空是否主键说明idint11否是idbiaotivarchar50否否标题neirongvarchar5000否否内容shijianvarchar255否否时间(9)加盟内容信息表(t_jieshao),此表主要记录关于加盟本商城的一些信息,包括内容编号、加盟内容,其中id设为主键。如下表3.9所示:表3.9student_course_buy表Table4.9Thestudent_course_buytable字段名称数据类型长度是否为空是否主键说明idvarchar11否是idneirongvarchar50否否内容4系统功能实现4.1商城主页面(1)功能描述商城的主页面上方显示的为商城网站的标题,下方为信息展示区域,左上方为功能菜单展示区域,包括水果展示、商城资讯、商品搜索等栏目,下部分为类别展示区域,有芒果、甜瓜、橘橙、苹果四种分类,点击相应的栏目可跳转至相关的页面。(2)效果展示商城主页面运行效果图如下图4.1所示:图4.1商城主页面运行效果图Figure4.1Therunningeffectofthemainpageofthemall(3)实现原理游客在进入商城首页时,所看到的为商城的首页展示内容。其中“小老板说”模块为文字滚动方式,运用onmouseover事件,在HTML标签中的marquee标签绑定JavaScript函数和代码,运用时函数对象与HTML标签进行数据交换,在用户进行浏览时,通过鼠标来触发事件,scrollAmount为文字滚动的速度,scrollDelay为停顿时间。4.2注册登录模块4.2.1用户注册(1)功能描述游客可以选择成为本商城会员,点击“用户注册”,填写个人信息,包括账号、密码、姓名等信息。注册成功后使用账号密码登录,即可在本商城购买水果。(2)效果展示用户注册运行效果图如下图4.2所示:图4.2用户注册运行效果图Figure4.2Userregistrationoperationeffectdiagram(3)实现原理游客点击“用户注册”,页面跳转至该页面,调用JavaScript中的open()方法,这时显示出注册页面,填写正确的信息后点击“确定”按钮就完成了注册,若未完全填写用户的基本信息,对应的错误提示会弹出。错误信息的提示功能是采用AJAX异步刷新技术,前台通过监听事件,向后台提出AJAX请求,在后台判断该账号是否注册,若未注册,则可进行注册,否则弹出错误提示。通过form表单中的onsubmit="returncheckForm()"来进行效验所输入的数据。(4)主要代码 publicStringhuiyuanReg() {HttpServletRequestrequest=ServletActionContext.getRequest(); Stringsql="fromTHuiyuanwhereloginname=?"; Object[]c={loginname.trim()}; ListhuiyuanList=huiyuanDAO.getHibernateTemplate().find(sql,c); if(huiyuanList.size()>0) {this.setMessage("账号已被占用,请重新注册"); this.setPath("qiantai/user/userReg.jsp");}else{ THuiyuanhuiyuan=newTHuiyuan(); huiyuan.setId(id); huiyuan.setLoginname(loginname); huiyuan.setLoginpw(loginpw); huiyuan.setXingming(xingming) huiyuan.setXingbie(xingbie); huiyuan.setNianling(nianling); huiyuan.setAddress(address); huiyuan.setDianhua(dianhua); huiyuan.setYue(0); huiyuan.setDel("no"); huiyuanDAO.save(huiyuan); this.setMessage("注册成功,请登录"); this.setPath("qiantai/user/userLogin.jsp");} return"succeed";}4.2.2会员登录功能描述商城游客点击商城主页面的“用户注册”将个人信息填写完整后点击“提交”按钮,即可注册成为本水果商城会员,使用所注册的账号和密码登入商城。若已有账号,可直接点击“用户登录”登录到商城。效果展示会员登入运行效果图如下图4.3所示:图4.3会员登入运行效果图Figure4.3Theeffectofmemberloginoperation4.3商品搜索模块(1)功能描述游客、会员均可点击“商品搜索”通过水果名称来查询本商城的水果。(2)效果展示商品搜索运行效果图如下图4.4所示:图4.4商品搜索运行效果图Figure4.4Theeffectofproductsearchoperation(3)实现原理调用goodsAction类,通过水果名称查询数据库相关信息,并把这些水果名称信息封装到List数据集合中,对request对象进行绑定,页面跳转至水果查询页面,显示出所查询的水果信息。(4)主要代码publicStringgoodsRes(){Stringsql="fromTGoodswheredel='no'andmingchenglike'%" +mingcheng.trim()+"%'"; Object[]con={}; Maprequest=(Map)ServletActionContext.getContext().get("request"); ListgoodsList=goodsDAO.getHibernateTemplate().find(sql,con); request.put("goodsList",goodsList); returnActionSupport.SUCCESS; }4.4浏览水果详情模块(1)功能描述游客和会员均可以通过商城页面的水果展示区或通过类别选择自己想加购的水果,点击相关的图片信息,就可以查看该水果的详细信息,包括水果的名称和对水果的介绍。(2)效果展示浏览水果详情运行效果图如下图4.5所示:图4.5浏览水果详情运行效果图Figure4.5Viewingfruitdetailsrunningeffectdiagram(3)实现原理点击显示的水果图片,系统调用后台goodsAction类查找数据库中有关水果的信息,并把这些水果信息封装到List数据集合中,对该对象进行绑定操作,页面跳转至水果的介绍页面,前台显示出水果的详细信息。(4)主要代码publicStringgoodsDetailQian(){ TGoodsgoods=goodsDAO.findById(id); Maprequest=(Map)ServletActionContext.getContext().get("request"); request.put("goods",goods); returnActionSupport.SUCCESS;} publicStringgoodsByLeibie(){ Stringsql="fromTGoodswheredel='no'andleibieId=?"; Object[]con={leibieId}; Maprequest=(Map)ServletActionContext.getContext().get("request"); ListgoodsList=goodsDAO.getHibernateTemplate().find(sql,con); request.put("goodsList",goodsList); System.out.println(goodsList.size()+"&&"); returnActionSupport.SUCCESS;}4.5商城资讯模块(1)功能描述游客和会员可以点击“商城资讯”,查看系统管理员在本商城发布关于水果的一些文章,点击相关链接,可以查看文章内容。(2)效果展示商城资讯、资讯文章运行效果图如下图4.6、4.7所示:图4.6商城资讯运行效果图Figure4.6Shoppingmallinformationoperationeffectdiagram图4.7资讯文章运行效果图Figure4.7Therunningeffectdiagramofnewsarticles(3)实现原理通过点击主页面的“商城资讯”,通过标签向后台发起请求,后台处理请求并返回结果数据至详情页。(4)主要代码publicStringxinwenAll() {Stringsql="fromTXinwenorderbyshijiandesc"; ListxinwenList=xinwenDAO.getHibernateTemplate().find(sql); Maprequest=(Map)ServletActionContext.getContext().get("request"); request.put("xinwenList",xinwenList); returnActionSupport.SUCCESS;} publicStringxinwenDetailQian() {TXinwenxinwen=xinwenDAO.findById(id); Maprequest=(Map)ServletActionContext.getContext().get("request"); request.put("xinwen",xinwen); returnActionSupport.SUCCESS;}4.6我的购物车模块(1)功能描述在本水果商城,游客只有注册成为商城会员才能把想要加购的水果加入到购物车之中进行暂时存放,输入购买的数量,点击购买按钮即可完成加入购物车操作。点击“我的购物车”,即可看到所加购的水果的基本信息,会员还可以修改水果的加购数量,或者删除某一件水果。(2)效果展示我的购物车运行效果图如下图4.8所示:图4.8我的购物车页面运行效果图Figure4.8Myshoppingcartpagerunningeffectdiagram(3)实现原理本模块也使用到AJXA技术实现数据的异步处理,用户向服务器发出请求时,系统后台接收数据请求后,建立一个session,并对请求进行处理,处理后前台展示出购物车的最终结果。(4)主要代码publicStringaddToCart(){ HttpServletRequestrequest=ServletActionContext.getRequest(); HttpSessionsession=request.getSession(); intgoodsId=Integer.parseInt(request.getParameter("goodsId")); intshuliang=Integer.parseInt(request.getParameter("shuliang")); TGoodsgoods=goodsDAO.findById(goodsId); TMingximingxi=newTMingxi(); mingxi.setGoods(goods); mingxi.setGoodsShuliang(shuliang); Cartcart=(Cart)session.getAttribute("cart"); cart.addGoods(goodsId,mingxi); session.setAttribute("cart",cart); this.setMessage("成功购物"); this.setPath("myCart.action"); return"succeed";}publicStringmyCart(){returnActionSupport.SUCCESS;} publicStringorderQueren(){ Maprequest=(Map)ServletActionContext.getContext().get("request"); returnActionSupport.SUCCESS;}4.7我的订单模块(1)功能描述会员对加购在购物车的水果进行付款,才可在我的订单查看个人订单,个人订单包括订单编号、下单时间、订单状态等信息。(2)效果展示我的订单运行效果图如下图4.9所示:图4.9我的订单运行效果图Figure4.9Theeffectofmyorderoperation(3)实现原理浏览器发出请求后,调用buyAction类查找出会员的订单信息,并把所有的会员订单信息封装到List集合中,对request对象进行绑定操作,页面跳转至商城的订单页面,显示出该订单的信息。(4)主要代码publicStringorderMine(){Mapsession=ServletActionContext.getContext().getSession(); THuiyuanhuiyuan=(THuiyuan)session.get("huiyuan"); Stringsql="fromTOrderwherehuiyuanId="+huiyuan.getId(); ListorderList=orderDAO.getHibernateTemplate().find(sql); Maprequest=(Map)ServletActionContext.getContext().get("request"); request.put("orderList",orderList); returnActionSupport.SUCCESS;}4.8我的信息模块(1)功能描述游客选择注册成为本商城会员后,点击左侧“我的信息”就可以查看所填写的个人信息,包括个人账号、密码、姓名、性别、年龄、住址、电话等。同时可以对除了账号以外的信息进行修改。(2)效果展示我的信息运行效果图如下图4.10所示:图4.10我的信息运行效果图Figure4.10Myinformationrunningeffectdiagram(3)实现原理在会员登录时,来自客户端的请求就是HttpServletRequest对象,当客户端访问服务器时,List数据集合这个对象中对请求的所有信息都进行封装,通过List对象提供的方法,获取客户端请求的所有会员信息,从而显示出会员的个人信息。(4)主要代码publicStringhuiyuanReg() {HttpServletRequestrequest=ServletActionContext.getRequest(); Stringsql="fromTHuiyuanwhereloginname=?"; Object[]c={loginname.trim()}; ListhuiyuanList=huiyuanDAO.getHibernateTemplate().find(sql,c); if(huiyuanList.size()>0) {this.setMessage("账号已被占用,请重新注册"); this.setPath("qiantai/user/userReg.jsp");} else{THuiyuanhuiyuan=newTHuiyuan(); huiyuan.setId(id); huiyuan.setLoginname(loginname); huiyuan.setLoginpw(loginpw); huiyuan.setXingming(xingming); huiyuan.setXingbie(xingbie); huiyuan.setNianling(nianling); huiyuan.setAddress(address); huiyuan.setDianhua(dianhua); huiyuan.setYue(0); huiyuan.setDel("no"); huiyuanDAO.save(huiyuan); this.setMessage("注册成功,请登录"); this.setPath("qiantai/user/userLogin.jsp");} return"succeed";}4.9后台功能实现4.9.1登录后台(1)功能描述管理员要进入商城后台管理系统,需要填写管理员的账号和密码,本系统初始账号为admin、密码为123。点击登陆按钮进入系统后台。(2)效果展示管理员登录后台运行效果图如下图4.11所示:图4.11管理员登录后台界面运行效果图Figure4.11Therunningeffectdiagramoftheadministratorlogginginthebackgroundinterface(3)实现原理登录系统后台主要运用了AJXJ快速创建动态网页技术,这些数据在后台进行交换,达到网页的异步更新。当浏览器发出请求时,请求交给AJXJ并将请求提交给后台服务器,服务器接收数据后进行处理并交给AJXA对象,对象接收数据后由JavaScript写入页面。管理员登录时运用AJXJ技术进行验证是因为要保证系统的安全性,先输入的商城管理员的账号和密码,点击提交按钮时后台进行数据验证,页面会跳转到登录的service中,在service中对此进行判断。(4)主要代码publicStringlogin(StringuserName,StringuserPw,intuserType){ try{Thread.sleep(700); }catch(InterruptedExceptione) {//TODOAuto-generatedcatchblock e.printStackTrace();} Stringresult="no"; if(userType==0)//系统管理员登陆 {Stringsql="fromTAdminwhereuserName=?anduserPw=?"; Object[]con={userName,userPw}; ListadminList=adminDAO.getHibernateTemplate().find(sql,con); if(adminList.size()==0) {result="no";} else{WebContextctx=WebContextFactory.get(); HttpSessionsession=ctx.getSession(); TAdminadmin=(TAdmin)adminList.get(0); session.setAttribute("userType",0); session.setAttribute("admin",admin); result="yes";}} if(userType==2) {} returnresult;}4.9.2水果类别管理模块(1)功能描述管理员点击“水果类别管理”,可以查看本商城所有的水果类别名称,可以对类别进行删除和添加操作。(2)效果展示水果类别管理、添加水果类别运行效果图如下图4.12、4.13所示:图4.12水果类别管理运行效果图Figure4.12Fruitcategorymanagementoperationeffectdiagram图4.13添加水果类别运行效果图Figure4.13Addingfruitcategoryoperationeffectdiagram(3)实现原理点击“水果类别管理”,跳转至水果类别管理页面,调用Action类的leibieAction类查找出所有水果的类别信息,List数据集合会封装本商城的水果类别信息,绑定该对象,页面跳转至对应的水果类别管理页面,显示出商城的水果类别信息。填写正确的水果类别,点击“提交”按钮即可完成水果类别的添加。若没有正确的填写类别信息,如没有输入水果的类别名称,系统会弹出错误的提示,则说明水果信息添加不成功,若填写完整的输入信息,则添加水果类别成功。对填写的数据进行验证检查的方法是通过form表单,checkForm()是验证的方式。(4)主要代码publicStringleibieDel() {TLeibieleibie=leibieDAO.findById(id); leibie.setDel("yes"); leibieDAO.attachDirty(leibie); Maprequest=(Map)ServletActionContext.getContext().get("request"); request.put("msg","类别信息删除完毕"); return"msg";} publicStringleibiePre() {TLeibieleibie=leibieDAO.findById(id); Maprequest=(Map)ServletActionContext.getContext().get("request"); request.put("leibie",leibie); returnActionSupport.SUCCESS;}publicStringleibieEdit() {TLeibieleibie=leibieDAO.findById(id); leibie.setMingcheng(mingcheng); leibie.setDel("no"); leibieDAO.attachDirty(leibie); Maprequest=(Map)ServletActionContext.getContext().get("request"); request.put("msg","类别信息修改完毕"); return"msg";}publicStringleibieAdd() {TLeibieleibie=newTLeibie(); leibie.setMingcheng(mingcheng); leibie.setDel("no"); leibieDAO.save(leibie); Maprequest=(Map)ServletActionContext.getContext().get("request"); request.put("msg","类别信息添加完毕"); return"msg";}4.9.3水果信息管理模块(1)功能描述商城管理员点击“水果信息管理”,进入到信息管理页面,可以看到商城所有的水果的信息,包括水果的名称、图片、价格等信息。可以对水果的信息进行删除,添加操作。点击左侧“水果信息添加”,系统管理员可以在线输入想要添加的水果的信息,包括水果类别、水果名称、水果介绍、图片、价格等信息。(2)效果展示水果信息管理、水果信息添加运行效果图如下图4.14所示:图4.14水果信息管理运行效果图Figure4.14Fruitinformationmanagementoperationeffectdiagram图4.15水果信息添加运行效果图Figure4.15Theeffectofaddingfruitinformation(3)实现原理商城管理员点击“水果信息管理”,跳转至水果信息管理页面,调用goodsAction类查找出商城的水果信息,然后把数据封装在List中,对request进行绑定操作,页面就会跳转至对应的水果信息管理页面,从而显示出所有的水果信息。水果信息添加模块使用网页在线文本编辑器fckeditor文本框实现该功能模块,首先将fckeditor包下载并导入到项目的WebRoot文件下,通过引入taglib指令和fck标签实现该技术的运用。(4)主要代码publicStringgoodsAdd(){ TGoodsgoods=newTGoods(); goods.setId(id); goods.setLeibieId(leibieId); goods.setMingcheng(mingcheng); goods.setJieshao(jieshao); goods.setFujian(fujian); goods.setJiage(jiage); goods.setTejia(jiage); goods.setShifoutejia("no"); goods.setDel("no"); goodsDAO.save(goods); Maprequest=(Map)ServletActionContext.getContext().get("request"); request.put("msg","信息添加成功"); return"msg";}publicStringgoodsMana(){ Stringsql="fromTGoodswheredel='no'orderbyleibieId"; ListgoodsList=goodsDAO.getHibernateTemplate().find(sql); Maprequest=(Map)ServletActionContext.getContext().get("request"); request.put("goodsList",goodsList); returnActionSupport.SUCCESS;}publicStringgoodsEdit(){ TGoodsgoods=goodsDAO.findById(id); goods.setId(id); goods.setLeibieId(leibieId); goods.setMingcheng(mingcheng); goods.setJieshao(jieshao); goods.setFujian(fujian); goods.setJiage(jiage); goods.setTejia(jiage); goods.setShifoutejia("no"); goods.setDel("no"); goodsDAO.attachDirty(goods); Maprequest=(Map)ServletActionContext.getContext().get("request"); request.put("msg","信息修改成功"); return"msg";}4.9.4会员信息管理模块(1)功能描述游客在访问商城时,可以注册成为本商城会员,商城管理员在后台管理页面点击“会员信息管理”,可以查看本商城所有的会员信息,包括会员的账号、密码、姓名、性别等信息。可以对会员进行删除操作。(2)效果展示会员信息管理运行效果图如下图4.16所示:图4.16会员信息管理运行效果图Figure4.16Theeffectdiagramofmemberinformationmanagementoperation(3)实现原理点击“会员信息管理”,程序调用Java类中的userAction类,系统读取保存至数据库的商城会员信息,读取出会员的基本信息,绑定对象,在输出至相对应会员信息管理页面。(4)主要代码publicStringhuiyuanMana() {Stringsql="fromTHuiyuanwheredel='no'"; ListhuiyuanList=huiyuanDAO.getHibernateTemplate().find(sql); Maprequest=(Map)ServletActionContext.getContext().get("request"); request.put("huiyuanList",huiyuanList); returnActionSupport.SUCCESS;} publicStringhuiyuanDel() {THuiyuanhuiyuan=huiyuanDAO.findById(id); huiyuan.setDel("yes"); huiyuanDAO.attachDirty(huiyuan); this.setMessage("删除成功"); this.setPath("huiyuanMana.action"); return"succeed";}4.9.5订单信息管理模块(1)功能描述系统管理员点击“订单信息管理”,可以看到游客注册成为会员之后在商城所购买的水果生成的订单,包括订单的编号、下单时间、订单状态、送货地址、付款方式、订单价格等信息。可以查找所有订单,对订单进行操作。(2)效果展示订单信息管理运行效果图如下图4.17所示:图4.17订单信息管理运行效果图Figure4.17Theeffectdiagramoforderinformationmanagementoperation(3)实现原理点击“订单信息管理”,跳转至订单信息管理页面,调用后台buyAction类,查找出系统的所有订单信息,对订单信息进行封装并放到List中,绑定对象,页面跳转至订单信息管理页面,显示出商城订单信息。(4)主要代码publicStringorderDetail(){ HttpServletRequestrequest=ServletActionContext.getRequest(); intorderId=Integer.parseInt(request.getParameter("orderId")); Stringsql="fromTMingxiwhereorderId="+orderId; ListmingxiList=mingxiDAO.getHibernateTemplate().find(sql); for(inti=0;i<mingxiList.size();i++){ TMingximingxi=(TMingxi)mingxiList.get(i); mingxi.setGoods(goodsDAO.findById(mingxi.getGoodsId()));} request.setAttribute("mingxiList",mingxiList); returnActionSupport.SUCCESS;}4.9.6商城资讯模块(1)功能描述商城管理员点击左侧“商城资讯管理”,可以查看商城所发布的关于水果的文章,包括文章标题、发布时间。可以对文章进行删除操作。点击“添加水果文章”,使用在线文本编辑器实现水果文章的添加,包括水果文章标题、文章内容、发布时间等信息。(2)效果展示商城资讯、添加水果文章运行效果图如下图4.18、4.19所示:图4.18商城资讯运行效果图Figure4.18Shoppingmallinformationoperationeffectdiagram图4.19添加水果文章运行效果图Figure4.19Theeffectofaddingafruitarticle(3)实现原理点击“商城资讯管理”,程序调用Java类中的xinwenAction类,系统搜索数据库查找相关信息,提取出商城资讯的相关信息后,到对对象进行绑定,接受请求后输入相对的商城资讯管理页面。点击“添加水果文章”可以编辑所要添加的文章的信息,包括标题、文章详细内容、发布的时间等信息。(4)主要代码publicStringxinwenAdd(){ TXinwenxinwen=newTXinwen(); xinwen.setId(id); xinwen.setBiaoti(biaoti); xinwen.setNeirong(neirong); xinwen.setShijian(shijian); xinwenDAO.save(xinwen); Maprequest=(Map)ServletActionContext.getContext().get("request"); request.put("msg","信息添加成功"); return"msg";}publicStringxinwenAll() {Stringsql="fromTXinwenorderbyshijiandesc"; ListxinwenList=xinwenDAO.getHibernateTemplate().find(sql); Maprequest=(Map)ServletActionContext.getContext().get("request"); request.put("xinwenList",xinwenList); returnActionSupport.SUCCESS;}publicStringxinwenDetailQian(){ TXinwenxinwen=xinwenDAO.findById(id); Maprequest=(Map)ServletActionContext.getContext().get("request"); request.put("xinwen",xinwen); returnActionSupport.SUCCESS;}4.9.7店家加盟模块(1)功能描述商城管理员点击左侧“店家加盟管理”,可在线编辑加盟内容,或更新加盟信息。(2)效果展示店家加盟模块运行效果图如下图4.20所示:图4

温馨提示

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

评论

0/150

提交评论