
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PAGE题目:网上销售系统的设计与实现
网上销售系统的设计与实现摘要:随着当今社会的不断进步,Internet也得到了一个好的平台去不断地迅速发展,人们现在就渴望能够充分地享受网络带来的便利,因此各种的网上销售系统也应运而生。而网上销售系统的形成正是为了适应当今社会快节奏的生活,使得人们可以足不出户就可以快捷方便地选择自己需要、喜欢的商品。这样可以给人们节省更多的空余时间去享受生活的乐趣,使得人们可以从繁闹喧嚣的城市生活中暂时走出来去放松自己,再以饱满的热情投入到之后的工作生活中。本网上销售系统主要是在Windows7下,以Tomcat网络信息服务作为应用服务器,MySQL为数据库开发平台,采用JSP技术进行系统的页面布局和开发。本系统分为前台和后台两个部分,前台部分主要是向用户展示信息,方便用户更好的了解此系统;后台部分主要是给管理员使用的,管理员可以对商品信息、用户信息等进行管理。关键词:方便快捷;网上销售系统;JSP;MySQL
Abstract:Alongwiththeadvanceofsociety,theInternethasbeenagoodplatformtocontinuouslyrapiddevelopment,peopleareeagertonowfullybenefitfromthemassiveconstructionofthenetwork,soavarietyofonlinesalessystemalsoarisesatthehistoricmoment.Andtheformationoftheonlinesalessystemisinordertoadapttothefastpaceoflifeintoday'ssociety.Itcanmakepeopleneverleavehometobeveryconvenient,quickandeasytochoosetheirownneedsgoods.Whichcangivepeoplesavemorefreetimetoenjoylife,itmakepeoplefromthebusyhustleandbustleofcitylifegonetemporarilyrelax,afterwithfullenthusiasmintoworklife.TheonlinesalessystemismainlyundertheWindows7,usingTomcatastheapplicationserver,networkinformationserviceMySQLdatabasedevelopmentplatform,usingJSPtechnologytopagelayoutanddevelopmentofthesystem.Thissystemisdividedintoforegroundandbackgroundoftwoparts,frontpartismainlytoshowtheuserinformation,convenientforuserstobetterunderstandthissystem;thebackgroundpartismainlytotheadministrator,theadministratorcanmanagethecommodityinformation,customerinformation,etc.Keywords:Convenientandquick;Onlinesalessystem;JSP;MySQL目录第1章绪论 11.1研究背景 11.2设计的目标 11.3系统开发的意义 21.4本文研究内容及主要贡献 2第2章需求及可行性分析 32.1系统的可行性分析 32.1.1技术可行性 32.1.2经济可行性 32.1.3操作可行性 32.2系统的整体功能分析 32.2.1系统整体功能模块设计 42.2.2数据库整体设计分析 72.3本章小结 8第3章开发环境及相关技术简介 93.1系统开发环境 93.1.1Eclipse 93.1.2数据库简介 93.1.3Tomcat 103.2系统开发技术与MVC模式 103.2.1JSP 103.2.2MVC模式 103.3B/S体系结构 103.4本章小结 10第4章系统详细设计 114.1后台功能实现 114.1.1管理员登录 114.1.2商品信息管理 124.1.3用户信息管理 194.2前台的功能实现 224.2.1用户登录注册功能 224.2.2搜索商品功能 254.2.3购物车功能实现 264.3本章小结 29第5章系统测试与分析 305.1软件测试 305.1.1测试的目的 305.1.2采用的测试手段 305.2系统运行环境 305.2.1硬件环境 305.2.2软件环境 305.3网站测试 305.3.1用户注册登录功能测试 305.3.2商品搜索功能测试 315.3.3加入购物车功能测试 325.4本章小结 32第6章总结与展望 336.1总结 336.2展望 33毕业设计体会 34致谢 35参考文献 36英文翻译资料 37第1章绪论21世纪是网络飞速发展的时代,上网、创建网站已经成为热门话题。Internet得到持续、猛烈的发展,已经成为计算机产业的一个热点,越来越多的企业开始关注网络,许多人正在或正准备学习网络知识,进行网络开发或创建自己的网站。JSP的全称是JavaServerPages,是一种以Java为主的跨平台Web开发语言,它具有安全性,健全性,运行效率高等许多优点。本次毕业设计——网上销售系统的设计与实现,是在Windows7下,采用JSP(JavaServerPages)技术开发,数据库开发平台使用的是MySQL,Tomcat作为该系统的应用服务器实现的。1.1研究背景最近几年,随着Internet的迅速发展,互联网已经成为人们收集提供各种信息的最佳渠道,并且已有逐步进入传统的信息传递、接收领域的趋势。于是电子商务应运而生,不断流行起来,使得越来越多的商家发现商机,纷纷在网络上建起自己特色的在线商城,为的就是向消费者传递出一种新颖的购物理念。网上销售系统强大的交互功能是其一个重要、有特色的地方,可使商家和用户之间方便快捷地传递所需信息,进行商品交易,使得商家与用户之间信息与资金的无纸化交换形成了一种全新的交易方式。网上销售在人们日常生活中变得越来越不可缺少,正是由于它适应了当今社会快节奏的生活,使得人们可以足不出户就可以很方便、很快捷、很轻松地选择自己喜欢需要的商品。由日前公布的一项研究结果显示,我国电子商务产业在近年来得到迅速地发展,已经有超过10万家的网上商店出现在人们的日常生活中,约为2000万件的商品在网上商店展示过。该项研究是由上海东方网诚数据科技有限公司进行操作的,拥有网上商店系统和独立域名的网站,以及部分具有一定规模,但是租用第三方平台的网上商店都是其研究的对象,但不包括设在拍卖网站上的店铺。PHP与ASP技术目前在国内应用较为广泛,而由于JSP技术是一种新型的技术,国内使用的情况比较少。但是在国外,JSP已经成为一种比较流行的技术,尤其是在建设电子商务类的网站这块大多数都是选择采用JSP技术,而且世界上一些大的提供商在提供电子商务解决方案这方面都采用是JSP/Servlet模式。所以总体看来在这三者中,能够成为未来发展的趋势应该是JSP。总而言之,ASP、PHP、JSP三者支持者都有相当大的数量,而这三者也是各有所长的。因此在以后的开发过程中,我们采用什么样的技术应该根据实际的需要来衡量,本网上销售系统采用的是比较新的JSP技术,采用它的原因是开发该系统的需求和JSP本身的一些安全性和跨平台性比较好,同时我也希望自己能够在通过开发该系统的过程中,学习一门新的编程语言。1.2设计的目标现在日常生活中的一些网上销售系统页面布局比较杂乱,查找商品不是很方便,还有一些网站在购物时可能存在一些风险,所以现在网上销售系统的设计要求是不仅仅要有赏心悦目的网站页面显示,更要有一个严谨的规划,注意重视每一个细小的环节,这样才能使得一些不必要发生的错误在电子交易时得以避免。由专业的文字录入人员将所需要的信息输入到管理系统数据库中的这种传统管理信息系统信息的获取方法在数据量不大时还可以使用,但是在数据量比较大并且有较强的专业性时,这时录入出错的可能性就会相应的提高,同时也增加了录入的成本,这样就不是很划算。我设计的目标是先建立数据库和使用JSP技术编辑一些基础的页面,再运用JDBC技术把数据库和动态网页关联起来,使得所需商品信息可以及时的保存、更新,可以更好的及时了解商品买卖的情况。1.3系统开发的意义人类社会得以更近一步的迅猛发展,电子商务的迅速发展起到了不少的作用,网络销售就是电子商务中一个很重要的附加产品。从购物测试来看,中国电子商务未来的发展前景显著,拥有巨大的购物潜力。在如今的社会中,时下比较流行的网上销售系统有“淘宝”、“京东”、“当当”等,它们都属于相当优秀的电子商务网站并为其他的一些网站提供了一个良好的典范。在本次设计中我就是学习、参考他们的思想,通过分析这些网站的开发流程和完整的电子商务网站应该具备的怎样的功能以及一些注意事项。总之,随着个人配备自己电脑的普及和使用电脑人数的增加,在众多的销售渠道中网络销售脱颖而出,其地位及占有量也在呈现逐渐增加的趋势。1.4本文研究内容及主要贡献本论文主要从以下几方面全面介绍网上销售系统的开发过程:第一章绪论:本章简要介绍该系统的一些发展历程和现状,同时阐述该系统实现的目标和意义。第二章需求及可行性分析:本章描述了系统的开发目标,系统的可行性分析以及系统功能模块的设计分析,深入地确定每个模块具备的功能与大致实现思路,还有数据库的设计。第三章开发环境及相关技术简介:本章介绍开发该系统所用到的各项技术与相应的开发工具,还有开发环境。第四章系统详细设计:本章具体的说明了系统的实现方法,明确了模块间的联系,分层次的说明了每个模块的具体实现。第五章系统测试与分析:本章给出了测试的意义与部分模块的测试过程。第2章需求及可行性分析在进行系统设计之前,需求及可行性分析是必不可少的,这样可以全方面地考虑清楚系统的功能实现。下面主要就是从系统的可行性以及其整体功能进行分析,确定系统的功能如何实现。2.1系统的可行性分析可行性分析是对系统的开发从各个方面进行相应的分析和研究,尽可能避免一些不必要产生的错误,保证系统成功开发的可能性。所以在进行系统开发时,要进行全面的调查,在此基础上,再针对系统开发的必要性和可能性进行分析。这部分将从以下三个方面进行详细分析:技术可行性、经济可行性、操作可行性。2.1.1技术可行性本系统使用的是JSP技术。JSP是Java在网站开发上的重要应用技术,拥有可以和各种Java技术完美地结合在一起的特性,同时利用JSP技术可以建立先进、安全和跨平台的动态网站,因此成为一种非常流行的网站开发技术并且得到了人们广泛的支持。鉴于JSP技术的成熟与广泛的使用,所以本系统就是使用的该技术。而对于数据库方面,在大学学习期间,我们学习的是SQLServer,但是由于我个人对MySQL数据库的了解相对而言比较多,所以就决定采用MySQL作为本系统数据库的后台。2.1.2经济可行性根据调查的资料显示,由于现在聘用一支专业的团队设计并建设企业需求的商务网站的费用大概是5300元,另外每年还需交纳网站空间占用和网站维护费600元。但是为了达到更好的效果,获取更多的经济效益,花费在设计团队上的费用就要相对增加,但这与网站成功建成后带来的利益远远大于前期的成本投入,所以这些花费就不值一提了。网站虽然建成但后期的服务器、网络线路和设备的维护费用也是要考虑的一个重要因素。2.1.3操作可行性现如今,随着时代的发展在日常生活中计算机与网络已经得到非常大的普及,企业的员工也必须具备计算机应用这一项技能。由于本网上销售系统是以计算机作为服务器的网站,所以营销商可以自己对自己的网站进行相应的操作和管理。2.2系统的整体功能分析通过以上的一些分析,我们可以了解到首先要对所要设计的系统进行可行性分析,不要拿到一个项目就开始做,要分析一下这个项目是否有做的价值。所以我所要设计的网站是用户可以在前台浏览信息,管理员可以在后台根据需求做出相应的调整。前台功能:提供用户的注册和登录功能。用户能够随意浏览商品,包括使用搜索功能,方便用户查找并快速获取商品的详细信息,如图片预览、商品描述。登录用户可以使用购物车,可以将商品增加到,对购物车中的商品进行修改,包括修改商品的数量,删除商品等。后台功能:管理员可以更新、配置一些信息管理本网站。可以管理商品信息,包括商品信息的修改、删除、查询、增加。可以管理用户的信息,包括用户的查询和删除。2.2.1系统整体功能模块设计 1、整体功能结构如图2.1所示:图2.1整体功能模块图从图中可以看出,此网上销售系统分为前台和后台两个部分,前台部分主要是向用户展示信息,方便用户更好的了解此系统;后台部分主要是给管理员使用的,管理员可以对商品信息、用户信息等进行管理。2、前台购物流程图如图2.2所示。图2.2前台购物流程图3、用户注册的流程如图2.3所示。图2.3用户注册流程图由上图可以看出,注册功能其实就是增加用户的信息。具体实现就是:点击主页面的“注册”按钮后,会跳到用户注册信息的页面,用户需要如实填写用户名、密码、E_mail、地址、电话、真实姓名等各项信息,提交后,系统进行一些验证判断是否注册成功。注册成功后,用户就可以在登录后进行一些操作。4、商品搜索的流程如图2.4所示。开始搜索开始搜索继续搜索继续搜索查看搜索到的商品添加到购物车输入条件点击搜索图2.4商品搜索的流程图商品的搜索功能是用户可以查找所想要的一系列的商品,更加方便地查询所需要的商品,这样可以有效地节省时间,提高操作的效率。用户搜索时只需要在搜索框中输入商品的关键字就能搜索到所有与之相关的商品。5、用户登录流程如图2.5所示。 图2.5用户登陆流程图商务网站对其网站的稳定性和安全性的要求很高,因此对用户名的填写要求要有一定的限制。所以每个用户都要有一个唯一的用户名,同时对密码也要进行加密保护,将密码加密后再存入数据库。6、管理员对商品进行管理的流程如图2.6所示。2.2.2数据库整体设计分析1、数据库需求分析其实数据库的设计是为存放该系统所需要的信息。常用的数据库管理系统有MySQL、SQLServer、Oracle等,我采用了MySQL对本系统的数据进行管理,建立的数据库名为shopping。2、数据库设计数据库的设计与建立至关重要,如果考虑不全面会为之后的开发产生不少的麻烦,所以我们必须先对本系统所需用到的一些数据进行一个大致的分类和具体的结构设计,这样可以清晰明了的了解本系统用到了哪些数据,又可以能适应系统各项功能的调用,而不至于产生结构上的逻辑混乱。在数据库进行设计的时候也要遵循一定的规则,只有遵循了这些规则后才能更好地新建好网站的“地基”,为之后的开发减轻负担。所以我们要尽量做到一个实体对应一个表,要搞清楚该实体应该有哪些属性以及与各个实体之间有什么样的联系。实体、属性与联系是进行数据库设计时要充分考虑到三个重要元素,同时也是设计好的一个数据库设计的核心。(1)、管理员表,系统管理员的登录信息,管理员表结构,如表2.1所示。(2)、用户表,记录用户的个人信息,用户表结构,如表2.2所示。(3)、商品表,记录商品信息,商品表结构,如表2.3所示。(4)、大类型表,记录商品分类的信息,大类型表结构,如表2.4所示。(5)、小类型表,记录商品的种类,小类型表结构,如表2.5所示。(6)、供应商表,记录商品供应商的信息,供应商表结构,如表2.6所示。(7)、购物车表,记录购物车中存放的商品信息,购物车表结构,如表2.7所示。表2.1管理员表字段字段名称字段类型允许为空备注Id管理员编码Int否主键Name管理员名称Varchar(20)否Password密码Varchar(20)否表2.2用户表字段字段名称字段类型允许为空备注UserId用户编号Int否主键UserName用户名Varchar(255)否UserPwd密码Varchar(255)否TrueName真实姓名Varchar(255)否Phone联系方式Varchar(255)否Email邮箱Varchar(255)否Address地址Varchar(255)否表2.3商品表字段字段名称字段类型允许为空备注GoodsId商品编号Int否主键GoodsName商品名Varchar(45)否Price单价Varchar(50)否Number库存数量Int否Picture商品图片Varchar(50)否Introduction商品简介Varchar(1000)是SupplierId供应商编号Int否外键SmallTypeId小类型编号Int否外键表2.4大类型表字段字段名称字段类型允许为空备注BigTypeId大类型编号Int否主键BigTypeName大类型名称Varchar(20)否表2.5小类型表字段字段名称字段类型允许为空备注SmallTypeId小类型编号Int否主键SmallTypeName小类型名称Varchar(20)否BigTypeId大类型编号Int否外键表2.6大类型表字段字段名称字段类型允许为空备注SupplierId供应商编号Int否主键SupplierName供应商名称Varchar(20)否表2.7购物车表字段字段名称字段类型允许为空备注CartId购物车编号Int否主键Picture商品图片Varchar(50)否GoodsName商品名称Varchar(20)否Price价格Varchar(20)否userid关联的用户编号Int是外键2.3本章小结本章节主要是对网上购物系统进行需求分析,从技术、经济、操作等方面进行剖析,充分说明该课题的可行性。同时也对系统的一些功能模块进行详细的分析,明确之后的工作内容。还有就是数据库的设计,通过功能的需求进行确定数据库到底该如何设计。第3章开发环境及相关技术简介在确定系统的整体功能实现之后,就要根据系统的功能需求考虑好在设计系统是所需要用到的开发环境及技术。确定好之后可以设计出系统的总体框架,为之后的设计奠定基础。3.1系统开发环境3.1.1EclipseEclipse是一个基于Java、开放源代码的可扩展开发平台。从其本身来说,它就仅仅是一组服务和一个框架,主要用来通过插件组件来构建开发所需环境。值得一提的是,Eclipse自身附带了一个非常标准的插件集,其中就包括了Java开发工具JDT。
在现如今,构成了IBMJava开发工具系列的基础的WebSphereStudioWorkbench应用程序就是基于Eclipse开发的最突出的例子。还有例如WebSphereStudioApplicationDeveloper就添加了对JSP、servlet、Web服务和数据库访问等的支持。Eclipse开发界面如图3.1所示。图3.1Eclipse开发界面3.1.2数据库简介本系统使用的数据库是MySQL,同时使用SQLyog这个数据库开发工具对数据库中的表进行设计。MySQL是一种轻量级的数据库,它拥有很多的特性。如使用多种编译器对代码进行测试;支持多线程减轻主线程运行的工作量;优化SQL语句的查询算法更有效地提高查询的速度。它既能够在客户端服务器网络环境中作为一个单独的应用程序应用而存在,同时也能作为一个库嵌入到其他的软件中。对于语言方面提供多种多样的编码方式,常见的编码方式有UTF-8、GBK、GB2312等。它还提供ODBC、JDBC和TCP/IP等多种数据库连接的途径,本系统就是使用JDBC连接数据库的。3.1.3Tomcat作为一个轻量级应用服务器的Tomcat,它在中小型的系统和并发访问用户不是很多的情况下才会被普遍使用,它同时也是开发和调试JSP程序的首要选择。这就不仅仅是因为它运行时所占用的系统资源很小、扩展的性能好、支持负载平衡等这些开发应用系统的常用功能;而且还因为它仍然还在不断地改进和完善,任何一个感兴趣的程序员都可以更改它或在其中加入新的功能。3.2系统开发技术与MVC模式本系统采用JSP技术,基于MVC模式开发。3.2.1JSP在网页制作时,使用的JSP页面看上去比较象HTML和XML页面,这是因为JSP页面的构成就是在HTML文件中加入一些Java程序片段(Scriptlet)和JSP标记(tag)。它使用的比较强大的Java语言进行开发,因此在网络数据库应用开发这一领域就具有得天独厚的优势。3.2.2MVC模式MVC(ModelViewController)是模型(model)、视图(view)、控制器(controller)的缩写,它就是一个框架模式,但它是软件设计的一种典范,它可以使应用程序的输入、处理和输出部分强制性的分离开来。MVC的三个核心部件的这种分离开方式可以使他们各自处理自己的任务。MVC的典型模式就是JavaBean+JSP+Servlet,而我在设计的过程就是使用的此模式。3.3B/S体系结构本系统采用的是B/S体系结构,在B/S体系结构中用户可以向分布在网络上的服务器发出请求,但这要通过浏览器实现。而服务器接收到浏览器的请求并对其进行处理,处理完之后就将用户所需信息返回到浏览器上,展示给用户。这种三层体系结构如图3.2所示。图3.2B/S三层结构示意图3.4本章小结本章主要是对开发网上销售系统所需要的一些开发工具的简单介绍。这个网上销售系统使用B/S开发结构,采用MVC框架在Eclipse中设计开发,使用JSP设计网页;后台数据库使用的是SQLyog对数据库中的数据进行操作。第4章系统详细设计网上销售系统是为用户提供足不出户就可网上进行购买自己所需要的商品的服务,该系统主要是对用户信息、商品信息等几个方面进行增加、查询、修改、删除的操作。下面也就是围绕这几个方面展开分析。4.1后台功能实现主要是管理员对用户信息、商品信息进行增、删、改、查的一些操作。4.1.1管理员登录首先确保服务器已打开并数据库已连接成功,然后管理员才可以在浏览器上打开设定的网址:http://localhost:8080/Shopping/Goods/AdminLogin.html,进入登录页面。网站打开后的管理员登录界面如图4.1所示。图4.1管理员登录界面具体代码实现如下://登录验证protectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{ response.setContentType("text/html;charset=utf-8"); request.setCharacterEncoding("utf-8"); PrintWriterout=response.getWriter(); Stringadminname=request.getParameter("adminName"); Stringadminpsw=request.getParameter("pwd"); out.print(adminname+"<br/>"); out.print(adminpsw+"<br/>"); HttpSessionsession=request.getSession(); AdminDaoImpladmin=newAdminDaoImpl(); booleana=admin.check(adminname,adminpsw); out.print(a+"<br/>"); if(a){ out.print(adminname+"<br/>"); out.print(adminpsw+"<br/>"); session.setAttribute("adminName",adminname); response.sendRedirect("goodsAdd.jsp"); }else{ out.print("<script>alert('登录失败');history.back();</script>"); } }}4.1.2商品信息管理1、增加商品信息:管理员添加新的商品信息,使得新的商品信息能够及时的记录,以防忘记、遗漏。如图4.2所示。图4.2商品增加界面关键代码如下:<scripttype="text/javascript"> functioncheck(){ varGoodsIdObjValue=document.getElementsByName("GoodsId")[0].value; varGoodsIdRegex=/^[0-9]*[1-9][0-9]*$/; if(!GoodsIdObjValue){ alert("商品编号"); returnfalse; } elseif(!GoodsIdRegex.test(GoodsIdObjValue)){ alert("商品编号格式不对"); returnfalse; } varGoodsNameObjValue=document.getElementsByName("GoodsName")[0].value; if(!GoodsNameObjValue){ alert("商品名称必填"); returnfalse; } varPriceObjValue=document.getElementsByName("Price")[0].value; if(!PriceObjValue){ alert("价格必填"); returnfalse; } }</script>2、维护商品信息:主要是管理员查询出所有数据库中的商品信息,并对其进行修改、删除的操作。如图4.3所示。图4.3商品查询界面(1)、在搜索框中输入你所要查询的商品类型(如:女装),点击搜索按钮。出现的结果如下图4.4所示。图4.4商品查询显示界面关键代码实现如下:<% intshowPage=0; intpageCount=0; intposition=0; intrecordCount=0; StringBigTypeName=null; if(session.getAttribute("showPage")!=null){ showPage=(Integer)session.getAttribute("showPage"); } if(session.getAttribute("pageCount")!=null){ pageCount=(Integer)session.getAttribute("pageCount"); } if(session.getAttribute("position")!=null){ position=(Integer)session.getAttribute("position"); } if(session.getAttribute("recordCount")!=null){ recordCount=(Integer)session.getAttribute("recordCount"); } if(session.getAttribute("BigTypeName")!=null){ BigTypeName=(String)session.getAttribute("BigTypeName"); } List<UpdateGoods>showlist=newArrayList<UpdateGoods>(); GoodsDaoImplgoodsdao=newGoodsDaoImpl(); showlist=goodsdao.getAllGoodsByBigType(BigTypeName); session.setAttribute("BigTypeName",BigTypeName); %> <scripttype="text/javascript"> functionbb(input){ varshowPage=input.value; input.value=parseFloat(<%=pageCount%>); } </script> <%if(showlist!=null&&showlist.size()>0){%> <% for(inti=position-1;i<position+3;i++){%> <%if(i<=recordCount-1){%> <tr> <td><%=showlist.get(i).getGoodsId()%></td> <td><%=showlist.get(i).getGoodsName()%></td> <td><%=showlist.get(i).getPrice()%></td> <td><%=showlist.get(i).getNumber()%></td> <tdclass="pic"><imgwidth=170height=220src="image/<%=showlist.get(i).getPicture()%>"></td> <td><%=showlist.get(i).getIntroduction()%></td> <td><%=showlist.get(i).getSupplierName()%></td> <td><%=showlist.get(i).getBigtypeName()%></td> <td><%=showlist.get(i).getSamlltypeName()%></td> <%out.print("<td><ahref=goodsUpdateOne.jsp?goodsId="+showlist.get(i).getGoodsId()+">修改</a></td>");%> <%out.print("<td><ahref=GoodsDelServlet?goodsId="+showlist.get(i).getGoodsId()+"onclick=\"returnconfirm('确定要删除吗?')\">删除</a></td>");%> </tr> <%}%> <%}%> <%}%> (2)、点击删除按钮,退跳出一个窗口问你是否要删除这个商品信息。如果要删除就点击“确定”,否则点击“取消”。点击“确定”后就可删除此商品信息,表中不在显示。如图4.5所示。图4.5商品删除界面(3)、点击修改按钮,就会出现如图4.6的界面,然后进行修改,点击修改的按钮,保存修改后的信息,提示修改成功。图4.6商品修改界面(4)、商品管理模块具体代码实现如下: //增加商品信息 @Override publicintgoodsAdd(Goodsgoods){ connection=ConnectionManager.getConnction(); Stringsql="insertintogoodsvalues(?,?,?,?,?,?,?,?)"; try{ pst=connection.prepareStatement(sql); pst.setInt(1,goods.getGoodsId()); pst.setString(2,goods.getGoodsName()); pst.setString(3,goods.getPrice()); pst.setInt(4,goods.getNumber()); pst.setString(5,goods.getPicture()); pst.setString(6,goods.getIntroduction()); pst.setInt(7,goods.getSupplierId()); pst.setInt(8,goods.getSmalltypeId()); returnpst.executeUpdate();//prestmt是PreparedStatement对象实例 }catch(SQLExceptione){ e.printStackTrace(); return0; }finally{ ConnectionManager.closeResultSet(results); ConnectionManager.closeStatement(pst); ConnectionManager.closeConnection(connection); } }//获取所有的商品信息 @Override publicList<UpdateGoods>getAllGoods(){ connection=ConnectionManager.getConnction(); List<UpdateGoods>updategoodslist=newArrayList<UpdateGoods>(); Stringsql="selectGoodsId,BigTypeName,SmallTypeName,GoodsName,Price,Number,Picture,Introduction,SupplierName" +"fromgoodsasginnerjoinsmalltypeassong.SmallTypeId=s.SmallTypeId" +"innerjoinbigtypeasbons.BigTypeId=b.BigTypeId"+"innerjoinsupplieraspong.SupplierId=p.SupplierId"; try{ pst=connection.prepareStatement(sql); results=pst.executeQuery(); while(results.next()){ UpdateGoodsupdategoods=newUpdateGoods(results.getInt(1),results.getString(2),results.getString(3),results.getInt(4),results.getString(5), results.getString(6),results.getString(7),results.getString(8),results.getString(9)); updategoodslist.add(updategoods); } }catch(SQLExceptione){ e.printStackTrace(); }finally{ ConnectionManager.closeResultSet(results); ConnectionManager.closeStatement(pst); ConnectionManager.closeConnection(connection); } returnupdategoodslist; } //根据商品的编号删除商品信息 @Override publicvoidgoodsDel(intgoodsId){ connection=ConnectionManager.getConnction(); Stringsql="deletefromgoodswhereGoodsId=?"; try{ pst=connection.prepareStatement(sql); pst.setInt(1,goodsId); pst.executeUpdate(); }catch(SQLExceptione){ e.printStackTrace(); }finally{ ConnectionManager.closeResultSet(results); ConnectionManager.closeStatement(pst); ConnectionManager.closeConnection(connection); } } //更新商品信息 @Override publicvoidupdateGoods(Goodsgoods){connection=ConnectionManager.getConnction(); Stringsql="updategoodssetGoodsName=?,Price=?,Number=?,Picture=?,Introduction=?whereGoodsId=?"; try{ pst=connection.prepareStatement(sql); pst.setString(1,goods.getGoodsName()); pst.setString(2,goods.getPrice()); pst.setInt(3,goods.getNumber()); pst.setString(4,goods.getPicture()); pst.setString(5,goods.getIntroduction()); pst.setInt(6,goods.getGoodsId()); pst.executeUpdate(); }catch(SQLExceptione){ e.printStackTrace(); }finally{ ConnectionManager.closeResultSet(results); ConnectionManager.closeStatement(pst); ConnectionManager.closeConnection(connection); } } //根据大类型的名称查询商品信息 @Override publicList<UpdateGoods>getAllGoodsByBigType(StringBigTypeName){ connection=ConnectionManager.getConnction(); List<UpdateGoods>showlist=newArrayList<UpdateGoods>(); try{ CallableStatementcast=connection.prepareCall("{callsp_GetAllGoods(?)}"); cast.setString(1,BigTypeName); results=cast.executeQuery(); while(results.next()){ UpdateGoodsshowcar=newUpdateGoods(results.getInt(1),results.getString(2),results.getString(3), results.getInt(4),results.getString(5),results.getString(6),results.getString(7), results.getString(8),results.getString(9)); showlist.add(showcar); } }catch(SQLExceptione){ e.printStackTrace(); }finally{ ConnectionManager.closeResultSet(results); ConnectionManager.closeStatement(pst); ConnectionManager.closeConnection(connection); } returnshowlist; }//根据商品编号查询商品信息 @Override publicList<Goods>getGoodsById(intgoodsId){ List<Goods>list=newArrayList<Goods>(); try{ Stringsql="select*fromgoodswhereGoodsId=?"; connection=ConnectionManager.getConnction(); pst=connection.prepareStatement(sql); pst.setInt(1,goodsId); results=pst.executeQuery(); System.out.println(goodsId); while(results.next()){ Goodsupdategoods=newGoods(results.getInt(1),results.getString(2),results.getString(3), results.getInt(4),results.getString(5),results.getString(6),results.getInt(7),results.getInt(8)); list.add(updategoods); } }catch(SQLExceptionexception){ exception.printStackTrace(); }finally{ ConnectionManager.closeResultSet(results); ConnectionManager.closeStatement(pst); ConnectionManager.closeConnection(connection); } returnlist; }4.1.3用户信息管理1、维护用户信息:由于管理员的权限问题,管理员只能对用户信息进行查询与删除的操作,不能进行添加与修改。(1)、用户查询用户信息:不在输入框中填写要搜索的用户名,直接点击“搜索”按钮,即可查看所有用户信息。也可以输入用户名,查看的你想要的用户信息,清楚的了解你想要查看的用户,方便对用户信息的管理,如图4.7所示。图4.7用户查询界面(2)、删除用户:想要删除用户,即可点击这个用户所在那一行后面“删除”的按钮就可删除该用户信息。删除前如图4.8所示,删除后如图4.9所示。图4.8用户删除前界面图4.9用户删除后界面(3)、用户管理模块关键代码如下://删除用户信息@Override publicvoiduserDel(intuserId){ try{ connection=ConnectionManager.getConnction(); pst=connection.prepareStatement("deletefromuserwhereUserId=?"); pst.setInt(1,userId); pst.executeUpdate(); }catch(SQLExceptione){ e.printStackTrace(); }finally{ ConnectionManager.closeResultSet(results); ConnectionManager.closeStatement(pst); ConnectionManager.closeConnection(connection); } } //获得所有用户信息 @Override publicList<User>getAllUser(){ List<User>userList=newArrayList<User>(); try{ connection=ConnectionManager.getConnction(); pst=connection.prepareStatement("select*fromUser"); results=pst.executeQuery(); while(results.next()){ userList.add(newUser(results.getInt("UserId"),results .getString("UserName"),results.getString("UserPwd"),results.getString("TrueName") ,results.getString("Phone"),results.getString("Email"),results.getString("Address"))); } }catch(SQLExceptionexception){ exception.printStackTrace(); } finally{ ConnectionManager.closeResultSet(results); ConnectionManager.closeStatement(pst); ConnectionManager.closeConnection(connection); } returnuserList; } //通过用户名获取用户信息 @Override publicList<User>getUserByName(StringUserName){ List<User>showList=newArrayList<User>(); try{ connection=ConnectionManager.getConnction(); CallableStatementcstmt=connection.prepareCall("{callSP_GetUserByName(?)}"); cstmt.setString(1,UserName); results=cstmt.executeQuery(); while(results.next()){ showList.add(newUser(results.getInt(1),results .getString(2),results.getString(3),results.getString(4) ,results.getString(5),results.getString(6),results.getString(7))); } } catch(Exceptionexception){ exception.printStackTrace(); } finally{ ConnectionManager.closeResultSet(results); ConnectionManager.closeConnection(connection); } returnshowList; }4.2前台的功能实现主要是在首页是一些商品的展示;给用户提供注册,对自己所填信息的一些管理;浏览商品信息,将需要的商品加入购物车,对购物车进行管理的一些功能。4.2.1用户登录注册功能一个新用户可以在首页浏览一些商品的信息,快速搜索到自己所需要的商品,但要加入购物车就要进行注册,否则不能实现一些功能,首页如图4.10所示。图4.10首页点击头页面的登录或注册按钮,进行登录和注册的操作。如果已经注册过可以直接登录,没有注册过的可以点击“立即注册”或首页的注册按钮完成注册工作,如图4.11和图4.12所示。图4.11用户登录界面图4.12用户注册界面具体代码实现如下://通过用户名称获取密码@Override publicList<User>getPassword(StringuserName){ List<User>userList=newArrayList<User>(); try{ connection=ConnectionManager.getConnction(); pst=connection.prepareStatement("select*fromuserwhereUserName=?"); pst.setString(1,userName); results=pst.executeQuery(); while(results.next()){ userList.add(newUser(results.getInt(1),results.getString(2),results .getString(3))); } } catch(SQLExceptionexception){ exception.printStackTrace(); } finally{ ConnectionManager.closeResultSet(results); ConnectionManager.closeStatement(pst); ConnectionManager.closeConnection(connection); } returnuserList; }//用户输入信息验证 protectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{ request.setCharacterEncoding("utf-8"); response.setContentType("text/html;charset=utf-8"); PrintWriterout=response.getWriter(); StringuserName=request.getParameter("UserName"); StringuserPwd; try{ userPwd=EncoderPwdByMd5(request.getParameter("UserPwd")); System.out.println(userPwd); UserDaoImpluserDaoImpl=newUserDaoImpl(); List<User>list=userDaoImpl.getPassword(userName); if(list.size()==0){ out.print("<script>alert('帐号或密码错误,请重新输入');history.back();</script>"); }else{ Stringpass=list.get(0).getUserPwd(); if(userPwd.equals(pass)){ request.getRequestDispatcher("index.jsp").forward(request,response); }else{ out.print("<script>alert('帐号或密码错误,请重新输');history.back();</script>"); } } }catch(Exceptione){ e.printStackTrace(); } }//使用MD5方法对用户密码进行加密 publicstaticfinalStringEncoderPwdByMd5(Stringstr)throwsException{ //确定计算方法 MessageDigestmd5=MessageDigest.getInstance("MD5"); BASE64Encoderbase64en=newBASE64Encoder(); //加密后的字符串 Stringnewstr=base64en.encode(md5.digest(str.getBytes("utf-8"))); returnnewstr; }}4.2.2搜索商品功能在搜索框中输入你想查找的商品(如:T恤),点击搜索按钮即可查看到所有的你想要的商品信息,如图4.13和图4.14所示。图4.13商品搜索页面图4.14查找到的商品展示页面搜索代码具体实现如下://通过对商品名称的模糊查询,查找到所需要的商品信息@Override publicList<UpdateGoods>findAll(StringkeyWord)throwsException{ List<UpdateGoods>all=newArrayList<UpdateGoods>(); Stringsql="selectGoodsId,Picture,GoodsName,Price,Number,IntroductionfromgoodswhereGoodsNamelike?"; connection=ConnectionManager.getConnction(); pst=connection.prepareStatement(sql); pst.setString(1,"%"+keyWord+"%"); ResultSetrs=pst.executeQuery(); UpdateGoodsupdGoods=newUpdateGoods(); while(rs.next()){
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 暑假托班合同范本
- 房屋预售房合同范本
- 学校厨房厨师合同范本
- 大学晚会合同范本
- 商铺租赁水电合同范本
- 如何用EXCEL建立报价表2
- 统编版二年级下册语文《祖先的摇篮》【新课标版】课件完整版
- 简单砌墙合同范本
- 2025合同协议未经合同公司盖章是否有效
- 《2025委托生产合同》
- DB21-T 3413-2021地下工程自防护混凝土结构耐久性技术规程
- 学校食品安全管理
- 痉挛性斜颈的物理治疗与按摩技术
- 团队沟通与协作培训
- 美的社会责任报告2023
- 2021年4月自考00908网络营销与策划试题及答案含评分参考
- 2019外研社王嫣演讲稿
- 设备安装调试记录表
- 机械设计说明书-多功能自动跑步机机械部分设计
- 临床路径工作总结医院临床路径管理工作总结
- 2022-2023学年上海市徐汇区世界外国语中学八年级(下)期中物理试卷
评论
0/150
提交评论