基于MVC网上购物系统的毕业论文

上传人:仙*** 文档编号:78868928 上传时间:2022-04-22 格式:DOC 页数:42 大小:763.50KB
收藏 版权申诉 举报 下载
基于MVC网上购物系统的毕业论文_第1页
第1页 / 共42页
基于MVC网上购物系统的毕业论文_第2页
第2页 / 共42页
基于MVC网上购物系统的毕业论文_第3页
第3页 / 共42页
资源描述:

《基于MVC网上购物系统的毕业论文》由会员分享,可在线阅读,更多相关《基于MVC网上购物系统的毕业论文(42页珍藏版)》请在装配图网上搜索。

1、 JIANGSU UNIVERSITY OF TECHNOLOGY 本科毕业设计(论文)苏宁易购销售网站的设计与实现 学院名称: XXXXX 专 业: 软件工程 班 级: XXXX 学 号: XXXX 姓 名: XXXX 指导教师姓名: XXXXX 指导教师职称: 讲 师 二一三 年 六 月 苏宁易购销售网站的设计与实现摘 要:随着网络技术和应用需求的发展许多网站建立了电子商务平台,网上购物系统是电子商务的一个重要的应用,由于网上购物系统拥有方便快捷、投资小、回收快、不受地理位置影响等一系列优点,它已成为研究与应用的热点,本系统就是在客户需求的基础上建立了苏宁易购的销售网站系统。 本系统便是尝

2、试用JSP在网络上架构一个动态的电子商务网站,它是在Windows XP下,以Oracle为数据库开发平台,Tomcat网络信息服务作为应用服务器,采用MVC模式开发的网上购物系统。它分前台部分和后台部分,前台主要包括用户注册、商品浏览、购物车管理、订单管理、个人资料管理模块;后台主要包括商品管理、订单处理、用户信息管理模块。关键词:Servlet,JSP,MVC,网上购物系统1Design and implementation of Suningyi purchase sales siteAbstract: With the development of network technology

3、 and application needs many e-commerce website platform, online shopping system is an important application of e-commerce, the online shopping system has convenient, small investment, quick recovery, less affected by the location and a series of advantages, it has become the hotspot of research and

4、application, the system is based on the needs of the customers established sales website system Suningyi purchase.The system is the electronic commerce website try in a dynamic network architecture with JSP, which is in Windows XP, with Oracle database development platform, Tomcat network informatio

5、n services as application servers, using MVC online shopping system development model. It is divided into the front part and back part, the onstage mainly includes the user registration, product browsing, shopping cart management, order management, personal information management module; the backsta

6、ge mainly includes the commodity management, order processing, user information management module.Keywords: Servlet, JSP, MVC, online shopping system2目录前言1第1章 绪论21.1开发背景21.2 研究目的3第2章 相关技术简介42.1 JSP技术42.2 JDBC技术52.3 MVC模式62.4 MyEclipse简介62.5 Oracle简介7第3章 总体设计93.1需求分析93.2 功能模块设计103.2.1前台功能模块设计103.2.2后

7、台功能模块设计113.3 数据库设计123.3.1 E-R图123.3.2数据库表设计14第4章 详细设计174.1创建与数据库的连接174.2前台功能的设计和实现184.2.1用户管理模块184.2.2商品管理模块22I4.2.3购物车管理模块244.2.4订单管理模块254.3 后台功能的设计与实现264.3.1管理员登录模块264.3.2用户查询模块274.3.3商品管理模块284.3.4订单管理模块30第5章 结束语32参考文献33致谢34II前言随着计算机网络技术的发展,Web软件系统被广泛地应用。在软件技术日趋成熟的今天,开发者不再仅仅着力于系统功能的实现,更关注软件系统的结构。然

8、而,目前的电子商务平台很多基于传统的开发技术,动态网页中会嵌有大量的业务逻辑程序代码,存在程序可重用程度低、可扩展性差、维护工作烦琐等缺点。针对以上提出的问题,我们对基于MVC模式的电子商务平台构造技术进行研究,结合实例采用JSP简化系统开发,提高系统性能以及可维护性,体现了软件框架结构和组件技术重用的优越性。当今社会互联网成为人们快速获取、发布和传递信息的重要渠道,它在人们政治、经济、生活等各个方面发挥着重要的作用。其中最具代表性之一的就是网上商店的诞生,网上购物系统向消费者展示出一片新鲜的购物天地,网上购物弥补了传统购物的一些局限性,成为传统购物的补充,极大方便了人们的生活。系统采用B/S

9、体系结构,人们通过浏览器就可以访问本网站的主页。由于MVC模式的简单高效性,本系统是在MVC模式之下,使用JSP、Servlet、JDBC、Ajax等技术实现的,同时使用JDBC操作数据库中的表和数据。本说明书分为5章,第1章介绍了课题的背景以及目的和意义,还有系统设计目标,第2章介绍了开发此系统运用到的一些相关技术JSP、MVC模式等,以及对myeclipse等一些开发工具做了介绍,第3章对此系统进行了总体设计,包括需求分析和数据库的设计,第4章是对系统的详细设计,主要讲述了系统是如何实现的,包括前后台两个模块,前台实现了用户注册登录等功能,后台实现了管理员对系统的管理,如对订单的管理等,第

10、5章是结束语,主要是对本系统做出评价,指出本系统的优缺点。第1章 绪论1.1开发背景传统的购物是到商店手把手的挑选商品,和货主面对面交易,完成商品购买,这种购物方式是有很多缺点的,比如人多的时候要排队等候、商品种类缺少等。随着现代消费理念的提高和互联网的普及,人们已经不再满足传统的商务模式,不再满足面对面地选择商品而浪费时间,因为电子商务应运而生。电子商务可以指的是利用简单、快捷、低成本的电子通讯方式,买卖双方不谋面地进行各种商贸活动。一般能在网上获得供求信息从而达成交易的行为活动都可以称之为电子商务,如具体的各类产品的供求信息网站也都可以称之为电子商务网站。电子商务是因特网爆炸式发展的直接产

11、物,是网络技术应用的新方向。因特网本身所具有的开放性、全球性、低成本、高效率的特点,也成为电子商务的内在特征,并使得电子商务大大超越了作为一种新的贸易形式所具有的价值1。现在人们对于互联网技术的要求已不单单是浏览一下网页,收发电子邮件,日益忙碌的人们开始追求足不出户的利用互联网这一强大的平台来实现的网上购物。对于企业来讲,无论是企业之间(B to B),还是企业和客户之间(B to C)的交易,如果能够实现网上交易将大大提高交易速度、节约交易成本。近几年,随着网络数据库技术的进一步发展,使得这一设想逐渐成为现实。运用JSP技术和网络数据库原理,基于B/S模式用java语言开发了一个网上购物系统

12、。“网上商城”实际上是运行在Web服务器中的一个Web运用程序。“网上商店”模拟一般的商店的经营模式。利用页面、脚本程序来实现“网上商城”的进货管理、销售管理、库存管理。互联网技术提供的不仅仅只是供需双方间的较低的交易成本,还有较低的选择费用和更多可供选择的商品。这些特点促使商家更多地通过使用网站来实现电子商务。本系统是苏宁易购的销售网站设计与实现,用户可以很方便的注册成为网站会员,对商品进行浏览检索,查看商品的详细资料,然后根据各人的喜好把心仪的商品放入购物车,按照顾客所填写的信息提交订单。系统管理员则可以对现有的商品进行添加和编辑,查询已注册的用户并对提交的订单进行处理2。1.2 研究目的

13、网络购物中心是一种典型的电子商务网站,它的主要功能为企业与客户提供一个理解的交易平台,使掌握信息技术和商务规则的企业和个人,系统地利用各种电子工具和网络,高效率、低成本地从事各种以电子方式实现的商贸活动。网络购物中心可以将传统形式的购物活动的全过程在网络上以电子交易方式实现的商业贸易活动,包括选购商品、处理订单等。企业通过网络购物中心可以完成交易的全过程,扩大交易的范围,提高工作的效率,从而获取经济和社会效益。 网上购物不仅改变了公司进行运作的模式,使网上商城成为传统商务的补充和发展,也使人们改变了消费的观念和消费习惯。网上购物最大程度地方便了用户,你可以通过WWW浏览器实现WEB购物。自从几

14、十年前电子计算机的出现,就为网上购物的发展创造了客观条件。但是它的发展还要借助于网络,所以其快速发展是在因特网的广泛应用上,可以预见,网上购物将成为商业普及、贸易的主流,必将影响着千家万户的生活和消费行为,并日益成为社会商业贸易活动的重要形式。廉价的网络资源使得网上商城成本低廉,世界性的互联网络带来无比宽阔的市场,给商家和买家带来的众多利益带来无限需求3。本系统利用现在比较广泛的JSP+Oracle数据库的架构实现的,前台管理是友好的操作界面,供用户浏览、查询使用。包括浏览商品、查询商品、订购商品、购物车、用户维护等功能;后台管理是提供给管理员的,其中包括商品管理、用户管理等。使管理员从繁琐的

15、手工操作中解脱出来,并提高了办公效率。 第2章 相关技术简介2.1 JSP技术Sun公司为了实现逻辑控制而创建出Servlet语言,但是Servlet语言将程序的逻辑控制代码和输出网页文档内容混合在一起,使得控制网页文档内容的显示外观和整体布局很难看,为了弥补Servlet语言这一缺陷,从而推出了JSP技术。它可以在传统的网页HTML中插入Java程序段和脚本文件以及JSP标记。用JSP开发的Web应用是跨平台的。JSP页面由Web服务器执行,JSP的运行原理是当客户端向服务器发送请求时,被请求的JSP页面首先被Web应用服务器(tomcat)编译成Servlet(即将”.jsp”档编译成Ja

16、va Class档)并执行,然后将所产生的结果作为一个HTML文件传输给浏览器,如果该JSP文件没有被修改过,当客户端再次向服务器发送请求时,JSP文件将不会再编译,而是直接执行已编译好的Servlet,这使得服务器的响应速度变得非常快,从而加快了访问速度。JSP支持对组件的访问,组件本身体现了封装和复用的思想,基于组件的开发能有效提高软件生产效率。多数JSP页面依靠JavaBeans(相当于一个实体类)及企业级JavaBeans(EJB)组件, 来完成应用所需的复杂处理,并通过页面中的脚本把具有特定功能的组件集成在一起。现在,由第三方开发的共享组件越来越多,大大简化了用JSP实现动态网页的工

17、作。JSP允许开发人员自己定义标签(tag ),这种标签一般对应于标签库中的Java程序,代表特定的应用功能。JSP使网页的外观设计与其动态内容分离,SP页面中的HTML标签定义了网页的外观,嵌在页面中的脚本、JavaBeans组件和标签库,共同生成与应用逻辑相关的动态内容。本系统中用到了JSP的的标准标签库(JSTL),JSTL提供了能方便定义变量的标签,比如本系统在商品信息的jsp页面中中就用到了这个标签,还用到了标签,用来执行流程控制,其功能和java中的if功能完全相同。在标签中配合使用EL了表达式,主要用于查找作用域中的数据,然后对它们执行简单操作4。本系统中还用到了JSP九大内置对

18、象中的request、response、session、out四个对象,request对象封装了用户提交的信息,通过调用该对象相应的方法可以获取封装的信息,即使用该对象可以获取用户提交的信息,使用getParameter()方法获取表单提交的信息。当request对象获取客户提交的汉字字符时,会出现乱码问题,必须进行特殊处理,如下设置:request.setCharacterEncoding(utf-8),request对象作用域是一次请求;response对象主要功能是用于服务器对客户端的回应;session是基于cookie产生的,由tomcat管理的,cookie是通过代码创建的。ses

19、sion对象指的是客户端与服务器的一次会话,从客户连到服务器的一个WebApplication开始,直到客户端与服务器断开连接为止,它是HttpSession类的实例。系统中用setAttribute()方法存放用户名和密码,out对象时一个输出流,用来向客户端输出数据。out对象用于各种数据的输出,其常用方法有out.print()用于输出各种类型数据,out.close()是用于关闭流的。2.2 JDBC技术JDBC(Java DataBase Connectivity)是sun公司制定的Java链接数据库技术。在安装好数据库后JSP并不能直接与数据库连接,这里选择利用第三方JDBC驱动程

20、序连接数据库。JDBC连接数据库的方式有四种,分别是JDBC-ODBC桥接驱动、JDBC本地访问方式、DBC网络访问方式、JDBC数据库协议访问方式。在项目开发中,如果频繁在JSP页面中使用数据库连接函数,释放函数进行操作的话,势必会非常麻烦,而且代码的冗余量也很大,页面很多的时候维护也会非常麻烦,页面上到处都是数据库连接和释放代码。因此,可以利用公共数据库访问连接JavaBean的开发。通过将数据库连接函数代码,释放函数代码等封装在JavaBean中,可以减少非常多的代码编程工作,提高代码可维护性。SQL(结构化查询语言),它是一种标准化的关系型数据库访问语言。在SQL看来,数据库就是表的集

21、合,其中包含了行和列。SQL标准虽然也还处在不断变革之中(任何一门标准如果已一成不变了,那只能说明这门学科已经停止发展了),但其基本内容相对稳定。JDBC定义了Java语言同SQL数据之间的程序设计接口。本系统中自定义了一个底层数据库操作类DataBaseOperate,首先进行数据库连接属性的配置,在加载了JDBC驱动程序,建立了数据库的URL后,定义一个配置文件存放路径,使用getPath()方法,要先对文件是否存在加以判断,若不存在,先创建一个文件jdbc.xml,若存在,通过调用DriverManager类的getConnection方法与oracle数据库连接。这样,在其他的Java

22、文件和页面中声明调用或包含了jdbc.xml文件后,都可以对数据库操作了,最后一定要记得关闭数据库及相关的对象。2.3 MVC模式本系统中使用MVC模式来降低耦合度,实现分层思想。其中Model层实现系统中的业务逻辑,由JavaBean来实现,View层用于与用户的交互,用JSP来实现,Controller层是Model与View之间沟通的桥梁,它可以分派用户的请求并选择恰当的视图以用于显示,同时它也可以解释用户的输入并将它们映射为模型层可执行的操作,本系统中是用servlet来实现的。MVC全名是Model View Controller,是模型(model)、视图(view)、控制器(co

23、ntroller)的缩写,一种软件设计典范,用于组织代码,用一种业务逻辑和数据显示分离的方法,这个方法的假设前提是如果业务逻辑被聚集到一个部件里面,而且界面和用户围绕数据的交互能被改进和个性化定制而不需要重新编写业务逻辑,MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中5。视图是用户看到并与之交互的界面。对老式的Web应用程序来说 ,视图就是由HTML元素组成的界面,在新式的Web应用程序中,HTML依旧在视图中扮演着重要的角色,但一些新的技术已层出不穷,它们包括Adobe Flash和象XHTML、XML/XSL、WML等一些标识语言和Web ser

24、vices。MVC好处是它能为应用程序处理很多不同的视图。在视图中其实没有真正的处理发生,不管这些数据是联机存储的还是一个雇员列表,作为视图来讲,它只是作为一种输出数据并允许用户操纵的方式。模型表示企业数据和业务规则。在MVC的三个部件中,模型拥有最多的处理任务,例如它可能用像EJBs和ColdFusion Components这样的构件对象来处理数据库,被模型返回的数据是中立的,就是说模型与数据格式无关,这样一个模型能为多个视图提供数据,由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性6。控制器接受用户的输入并调用模型和视图去完成用户的需求,所以当单击Web页面中的

25、超链接和发送HTML表单时,控制器本身不输出任何东西和做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求,然后再确定用哪个视图来显示返回的数据。2.4 MyEclipse简介本系统是在MyEclipse上进行开发的,MyEclipse从本质上讲是基于Eclipse的JavaEE方面的插件,是专门为方便JavaEE项目的开发设计的。MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持十分不错。MyEclip目前支持Java Servlet、AJAX、 JSP、JSF、 Struts、Spring、Hibernate、EJB3,JDBC数据库链接工具等多项功能。可以

26、说MyEclipse几乎囊括了目前所有主流开源产品的专属eclipse开发工具。本系统用的是Myeclipse8.5版本,Genuitec发布了MyEclipse Enterprise Workbench 5.0,更智能、更快捷、更简单和更便宜的J2EE工具的新版本的诞生。它的价格对于个人和企业开发人员来说都是非常有吸引力的。这是J2EE IDE市场一个重量级的选手。通过增加UML双向建模工具、WYSIWYG的JSP/Strutsdesigner、可视化的Hibernate/ORM工具、Spring和Web services支持,以及新的Oracle数据库开发,MyEclipse 5.0继续为

27、业界提供全面的产品7。由于MyEclipse自带的jdk不全面,而且不能更新,所以在oracle官网中下载了jdk1.6.0_23,然后在MyEclipse中配置jdk,点击window下的Preferences,接着点击下面Java下的Installed JREs,点击add,最后还要设定环境变量path,JAVA_HOME。Path变量针对Java的具体含义是系统在任何路径下都可以识别Java命令需要设置的变量。JAVA_HOME变量就是java的安装路径。2.5 Oracle简介本系统使用的数据库是oracle,采用pl/sql工具建了5张表以及一个序列,该序列名称是T_SPXX_SPB

28、H,PL/SQL Developer是一个集成开发环境,专门面向Oracle数据库存储程序单元的开发。oracle数据库是一种大型数据库系统,一般应用于商业,政府部门,它的功能很强大,能够处理大批量的数据,在网络方面也用的非常多。不过,一般的中小型企业都比较喜欢用mysql、SQL server等数据库系统,它的操作很简单,功能也比较齐全。只是相对于oracle数据库而言,在处理大量数据方面有些不如,oraclede的稳定性比sqlserver好,安全性也比sqlserver好,获得最高认证级别ISO的认证,oracle具有开放性,sqlserver只能在windows上运行8。oracle简

29、称甲骨文,是仅次于微软公司的世界第二大软件公司,该公司名称就叫oracle。oracle数据库管理系统是一个以关系型和面向对象为中心管理数据的数据库管理软件系统,其在管理信息系统、企业数据处理、因特网及电子商务等领域有着非常广泛的应用。因其在数据安全性与数据完整性控制方面的优越性能,以及跨操作系统、跨硬件平台的数据互操作能力,使得越来越多的用户将oracle作为其应用数据的处理系统。oracle数据库是基于“客户端/服务器”模式结构。客户端应用程序执行与用户进行交互的活动。其接收用户信息,并向服务器端发送请求。服务器系统负责管理数据信息和各种操作数据的活动。oracle数据库将权限划分为系统权

30、限和对象权限两大类。系统权限是当前用户对数据库的操作权限,对象权限是当前用户对其他用户创建的数据库对象的访问权限。数据库对象有表、约束、索引、序列、触发器等等。实际Oracle的数据库对象是存放在一个叫做”方案”的逻辑空间内的。当前用户创建的数据库对象都放在当前用户的方案下,在用户创建的时候Oracle数据库会自动的为该用户创建一个与用户名相同的方案名。oracle创建表的规则:表名是由字母、数字、$、#、_组成 ,数字不能开头,长度不能超过30字符,大小写不敏感。一般情况下表名用大写来显示,不建议使用中文, 不能使用Oracle中的关键字。如该系统中的用户表名是T_YH,要注意的是如果需要访

31、问其他的oracle数据库必须要配置tnsnames.ora在oracle的安装目录下的NETWORK/ADMIN/下,然后打开tnsnames.ora,把SERVICE_NAME = orcl中的orcl改成你要访问的那个数据库名称。本系统要能正常使用数据库的前提是必须把服务(OracleServiceORC)和监听器(OracleOraDb10g_home1TNSListener)开启,建议把它们改成手动,这样不影响开机速度。第3章 总体设计3.1 需求分析商务系统随着中国经济的高速发展发生了巨大的变化。专做营销的中小型企业随着百姓个人消费水平的增长迅速成长起来,但同时也带来了这一行业激烈

32、的竞争。如今的网站已经不单单是把企业想要表达的内容拜访在网站上那么简单,设计包含了更多的元素,例如css样式、jsp页面,给予浏览者更多的视觉享受。现在企业营销商需要用一些更新颖更有效的方式增强竞争力。建设一个宣传自身商品形象的电子商务营销模式的网站是一种有效的方法。另外,通过电子商务网站,广阔自己的营销方式和市场,能够帮助企业营销商从鱼龙混杂的市场中脱颖而出,完善企业销售与服务的环节,最终提升企业的价值与经济效益。苏宁也在建立起了属于自己的购物平台,本系统就是模拟苏宁易购网站实现的一个网上购物系统9。具有基本以下功能:1. 用户注册登陆功能:用户户根据注册模快要求进行邮箱注册,验证码的验证,

33、手机号是可选填的,注册后成功后完善自己的信息。2. 商品管理功能:该部分功能包括商品的管理和商品的浏览查询两大部分,将商品分成了日用、流行、新品、热销这4种状态,商品管理是面向管理员的,分商品增加、修改、查询,删除4个部分。面向用户的主要是商品的搜索,浏览功能,这里只支持精确查询。3. 购物车管理功能:商店用户在浏览商品时,可以根据自己愿意购买的商品加入到购物车,然后可以去结算或者继续购物,购买方式有两种,一键购和加入购物车,一键购是不需要加入购物车的,但是若要继续浏览其他商品可以选择先加入购物车,当进行结帐上时,购物车变为定单。4. 订单管理功能:订单管理分为面向管理员者和面向用户,管理员可

34、以查询定单,修改定单以及删除订单,但是只能修改商品数量和商品总价格。用户可以查询订单状态,若此订单未付款,用户可以在此付款。5. 用户管理功能:此功能也分为两种面向管理员者和面向用户,用户可以对自己的信息进行修改,本系统有个默认的admin最大管理员,admin修改用户信息,注意的是不能修改用户密码,同时可以给用户授管理员权限,管理员可以查询所有用户,并有权删除。admin也可以新增其他管理员。3.2 功能模块设计层次模块结构是将系统划分为若干子系统,子系统下再划分为若干的模块。而模块是指具备有输入输出、逻辑功能、运行程序和内部数据四种属性的一组程序。在结构化系统设计中,模块一般都是按功能划分

35、的,通常称为功能模块。合理的功能模块的划分能够极大限度地减少重复劳动、提高开发工作的效率并增大系统的可维护性10。以前面的需求分析为基础,将系统分为两大模块,即前台模块和后台模块。本系统的功能结构如图3-1所示。网站前台后台后台搜索商品管理员新增注册登录购物车生成订单用户管理商品管理订单管理图3-1 系统功能结构图3.2.1 前台功能模块设计前台用户如需购买商品则需要先注册,为了系统的安全性考虑,在注册用户时要对邮箱格式进行了验证,还要校验两次密码输入是否相同,以及验证码是否输入正确,注册成功之后还要完善信息,完善的信息中包括昵称、真实姓名、性别、出生年月、证件类型、证件号码、居住地址。此时也

36、要验证出生年月的格式和身份证的有效性,注册成功之后登录到首页面中,这时浏览商品了,将喜欢的商品选中加入购物车,可以查看购物车,修改商品数量,当总金额大于等于80时是免运费的,如果觉得这个商品不喜欢了可以删除购物车,购买购物车中的商品,即可以生成订单,也可以在订单管理里面查询到订单,订单状态为0的时候设置为未付款状态。如果没有登陆直接去主页面浏览商品的话,是不能加入购物车的,这是通过自己的用户名和密码登陆进去可以直接跳到刚刚浏览的那个页面,不需要再重新去查找商品了,这个是比较人性化的设计。为了方便登陆后台页面,在前台首页上放了一个超链接可以连到后台登陆的界面11。前台具体模块如图3-2所示。前台

37、修改资料购物车订单查询注册商品浏览登录图3-2 前台功能结构图3.2.2 后台功能模块设计台后台管理员不能注册只能由默认的admin管理员新增,首先要对管理员账号和密码进行验证,登陆进去之后可以将所有的用户查询出来,这里支持模糊查询,可以修改用户信息,给用户设置是否有管理员权限,后台查询商品可以根据商品编号查询,也可以根据商品编号和商品名称同时查询,可以修改商品信息,删除掉的商品将在后台商品信息表中的商品状态置为0,还可以去查询订单,如果生成的订单没有付款则订单状态置为0,付款成功后置为112。后台具体模块如图3-3所示。管理员新增用户管理修改用户用户查询删除用户添加商品后台商品查询商品管理商

38、品修改商品删除订单查询订单修改订单管理订单删除图3-3 后台功能结构图3.3 数据库设计在建设网站系统之前,必须对系统所用到的数据进行大致的分类和具体的结构设计,既要做到清晰明了,又要能适应系统各项功能的调用,而不至于产生结构上的逻辑混乱,保证关键数据在意外情况下不会被破坏,可以说数据库是系统的重中之重。数据库的核心思想是构造数据库,建立数据库及相关的系统,满足各种需求。首先在设计数据库时要分离各个实体和表,一个实体对应一个表;同时要明确各实体间的关系,明确各实体的属性,以便确定它的字段13。3.3.1 E-R图数据模型是现实世界中数据特征的抽象。数据模型应该满足三个方面要求,能够比较真实的模

39、拟现实世界,容易为人所理解,便于计算及实现。E-R图为实体关系图,提供了表现实体型、属性和联系的方法,用来描述现实世界的概念模型。构成E-R图的基本要素是实体型、属性和联系。用矩形表示实体型,矩形框内写明实体名;用椭圆表示实体的属性,并用无向边将其与相应的实体型连接起来;用菱形表示实体型之间的联系,在菱形框内写明联系名,并用无向边分别与有关实体型连接起来14。本系统中包括用户、管理员、商品、订单这几个实体。实体产生的行为有用户注册和登陆、用户资料修改、用户购买商品、商品的增删改查、订单的增删改查、管理员对用户的删除、修改。商品实体具有商品编号、商品名称、尺码、商品状态、商品描述、商品类型、日用

40、状态、热销状态、新品状态、流行状态、颜色、商品价格、商品数量、图片路径这些属性,商品信息实体图如图3-4所示。商品信息图片路径商品数量商品价格颜色新品状态热销状态日用状态商品类型商品描述尺码商品名称商品编号流行状态商品状态图3-4 商品信息实体图订单实体具有订单状态、订单编码、配送方式、收货人、手机号码、电话、用户名、下单时间、结算金额、收货地址这些属性。它的实体图如3-5所示。订单信息订单状态订单编码结算金额收货地址收货人配送方式下单时间用户名电话手机号码图3-5 订单明细实体图3.3.2 数据库表设计本系统数据库采用Oracle数据库,共包含用户表、用户信息表、商品信息表、订单主表和订单明

41、细表这5张表。用户表主要存放用户注册后而为进行完善信息的时候的数据的存放,用于前台注册。该表主要字段有用户名、密码、是否是管理员、用户状态,主键是用户名,用0和1作为判断,0代表不是管理员,不是用户,1代表是管理员,是用户15。如表3-1所示。表3-1 用户表列名数据类型是否为空是否为主键描述yhmVarchar2(50)否用户名mmVarchar2(50)否密码sfsglyNumber否是否是管理员yhztNumber否用户状态用户信息表主要存放用户信息完善后的数据的存放,用于前台登记,后台用户管理。该表主要字段有用户名、邮箱、昵称、姓名、性别、出生年月、证件类型、证件号码、居住地址,主键是

42、用户名,该表与用户表是以用户名关联的。如表3-2所示。表3-2 用户信息表列名数据类型是否为空是否为主键描述yhmVarchar2(50)否用户名emailVarchar2(50)否邮箱ncVarchar2(50)否昵称xbVarchar2(50)否姓名xmVarchar(250)否性别csnyDate否出生年月zjlxVarchar2(50)否证件类型zjhmVarchar2(50)否证件号码jzdzVarchar2(50)否居住地址订单主表用于前台用户提交订单后的订单信息。该表主要字段有订单编码、商品名称、购买数量、商品总金额、订单状态、下单时间,其中订单编码是主键,订单状态用0和1表示,

43、0表示该订单还未付款,1表示付款成功。如表3-3所示。表3-3 订单主表列名数据类型是否为空是否为主键描述ddbmVarchar2(50)否订单编码spbhVarchar2(50)否商品名称spslNumber否购买数量spzjeNumber否商品总金额spztNumber否订单状态xdsjDate否下单时间商品信息表用于前台商品详细信息的显示,用于后台商品信息的修改和删除。该表主要字段有商品编号、商品名称、商品价格、商品数量、颜色、尺码、款式、商品描述、热销状态、新品状态、流行状态、日用状态、商品状态、图片路径、商品类型,通过建立一个序列来生成商品编号,商品状态用0和1表示,0表示商品无效,

44、当商品被删除是商品状态就为0。如表3-4所示。订单明细表是与订单主表相关联的,该表用于后台管理员对订单的查询的数据的显示。该表主要字段有订单编码、配送方式、收货人、用户名、手机号码、电话、收货地址、订单状态、结算金额、下单时间。其中订单编码是主键。如表3-5所示。表3-4 商品信息表列名数据类型是否为空是否为主键描述spbhVarchar2(50)否商品编号spmcVarchar2(50)否商品名称spjgNumber(10,2)否商品价格spslInteger否商品数量ysVarchar2(50)否颜色cmVarchar2(50)否尺码ksVarchar2(50)否款式spmsVarchar

45、2(500)否商品描述rxztNumber否热销状态xpztNumber否新品状态lxztNumber否流行状态ryztNumber否日用状态spztNumber否商品状态tpljVarchar2(100)否图片路径splxVarchar2(50)否商品类型表3-5 订单明细表列名数据类型是否为空是否为主键描述ddbmVarchar2(50)否订单编码psfsVarchar2(50)否配送方式shrVarchar2(50)否收货人yhmVarchar2(50)否用户名sjhmNumber否手机号码dhNumber否电话shdzVarchar2(100)否收货地址ddztNumber否订单状态x

46、dsjDate否结算金额jsjeNumber否下单时间第4章 详细设计将系统分成前台和后台分成两个模块,各模块虽然是独立的,但又统一于同一数据库中,便于管理员管理维护数据库,同时也便于用户的操作。通过数据库连接,对后台数据进项增删改查,并把数据显示到前台页面上16。4.1 创建与数据库的连接在JSP中可以使用Java的JDBC技术,实现对数据库中表记录的查询、修改和删除等操作。JDBC技术在JSP中占有很重要的位置。JDBC(Java DataBase Connectivity)是Java数据库连接API。JDBC能完成三件事,第一是与一个数据库建立连接,第二是向数据库发送SQL语句,第三是处

47、理数据库返回的结果。要先配置数据库连接的属性配置,配置驱动private String driver=oracle.jdbc.driver.OracleDriver,配置url路径private String url = jdbc:oracle:thin:localhost:1521:ORCL,配置数据库的用户名private String user = scott,配置数据库的密码private String password = niit,定义配置文件存放路径private File pFile = new File(DataBaseOperate.class.getResource(/)

48、.getPath().replaceAll(/classes, /conf)+ jdbc.xml),再定义一个全局连接的变量private Connection con = null和全局通道的变量private Statement state = null,通过Class.forName(driver)加载驱动,通过con = DriverManager.getConnection(url, user, password)建立连接,最后通过state = con.createStatement()创建通道17。4.2 前台功能的设计和实现前台主要实现了用户注册、用户登录、商品展示、购物车管理

49、、生成订单等功能,采用ajax进行在js中向web服务器请求传递数据并接受数据18。4.2.1 用户管理模块用户在购买商品前一定要先登录,如果没有注册过则需先注册用户,然后才能浏览、购买商品。注册时要验证邮箱地址,两次密码是否输入相同,验证码是否正确,还对密码强度进行了判断,手机号码是可选填的,使用了正则表达式19来验证邮箱格式和密码强度和手机号码,如果验证码看不清可以点击换一张,就是通过一个click事件,绑定一个事件处理函数,使用attr()方法设置被选元素的属性值。对这一系列的验证增强了系统的安全性,合理性。用户注册界面如图4-1所示。图4-1用户注册图点击注册页面的提交注册按钮之后,会

50、触发一个click事件,通过该按钮的id找到它绑定的函数,点击提交按钮之后要先把所有提示信息清空,然后进行一系列验证,定义了一个falg变量,设为true,如果flag等于true,则使用ajax的post方法请求后台servlet 类if(flag=true)$.post(/SNYG/servlet/registServlet,yxdz: $(#yxdz).val(),mm:$(#szmm).val(),sjhm: $(#sjhm).val(),yzm: $(#yzm).val(),post向指定的资源提交要处理的数据。该servlet中创建了一个用户的对象RegistUser ru=new

51、 RegistUser(),调用了RegistUser用户类中的ru.saveUserInfo(yxdz, mm,telephone)方法,执行sql语句String sql=insert into t_yh(yhm,mm,sfsgly,yhzt) values(+email+,+password+,0,1)将数据插入到后台数据库表中,定义一个funciton(data)的函数,如果data等于0表示用户名存在,等于1表示验证码错误,等于2表示验证通过,然后根据if判断,根据id从页面中取得对应元素,将text的文本内容设置到该元素中。页面中的验证码是定义了一个图形处理类YanZhengMaS

52、ervlet 来处理的,首先设置http头信息,让页面知道这是一幅图片response.setContentType(image/jpeg),然后取消图片的缓存response.setHeader(Pargma, No-cache),接着再在内存中创建图片的缓冲区BufferedImage image=new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB),定义一个画笔Graphics g=image.getGraphics(),最后定义一系列的画边框、背景、随机线、数字的方法,记得的数字放在session中存储以便登陆的时候验

53、证HttpSession session = request.getSession(),session.setAttribute(yzm, srand),接着调用dispose()方法结束绘画,最后借助于图形输出接口将内存中画的图片通过response中的输出通道向客户端页面输出ServletOutputStream responseOutputStream = response.getOutputStream(),ImageIO.write(image, JPEG, responseOutputStream)。跳到注册成功之后的页面,点击点此完善超链接到完善信息的(addInformatio

54、n.jsp)页面,该页面中要对出生日期格式和身份证进行验证,信息完善页面设计如图4-2所示。图4-2 用户信息完善图通过EL表达式$yxdz取得注册的邮箱地址值,将它显示在信息完善页面中,是不可以修改的,然后同样采用上面的请求方式跳转到增加信息的Servlet,先通过request获取参数值,判断身份证是否有效,定义一个变量flag,flag=0说明身份证号码正确,然后连接数据库,执行Update更新语句String sql=update t_yhxx set nc=+nc+,xm=+xm+,xb=+xb+,csny=to_date(+csny+,yyyy-mm-dd),zjlx=+zjlx+

55、,zjhm=+zjhm+,jzdz=+jzdz+where yhm=+yhm+。信息完善之后就可以登录了,前台登录使用submit这个点击登录按钮触发的事件进行验证,用ajax的post方法请求后台checkLogin这个servlet,获取定义servlet中了两个变量flag和number,flag设为0,表示用户名不存在,1表示用户名存在密码错误,2表示验证通过3表示验证码错误,number设为0,0表示用户名不存在,1表示用户名存在密码错误,2表示验证通过,调用checkUser里面的find()方法,执行selcet语句,通过用户名查询数据库中对应的用户对象,通过验证获得num的值,

56、返回到checkLogin,在进行if判断,得到flag的值。用户登录,登陆界面如图4-3所示。图4-3 用户登陆图前台登录使用submit这个点击登录按钮触发的事件,用ajax的post方法请求后台登陆检查checkLogin这个servlet,定义servlet中了两个变量flag和number,String flag=0,int number=0,flag设为0,表示用户名不存在,1表示用户名存在密码错误,2表示验证通过3表示验证码错误,number设为0,0表示用户名不存在,1表示用户名存在密码错误,2表示验证通过,调用检查用户checkUser类里面的find()方法,执行selce

57、t查询语句,查询出来的结果以结果集返回,然后遍历结果集while(rs1.next()num=2;通过用户名查询数据库中对应的用户对象,通过验证获得num的值,返回到checkLogin,在进行if判断,得到flag的值。number=checkUser.find(yhm, mm);if(!yzm1.equals(yzm2)flag=3;else if(yzm1.equals(yzm2) & number=0)flag=0;else if(yzm1.equals(yzm2) & number=1)flag=1;else if(yzm1.equals(yzm2) & number=2)flag=

58、2;然后创建一个session,把用户明和密码放入session中,以备下一个页面进行提取应用HttpSession session=request.getSession(),session.setAttribute(yhm,yhm),session.setAttribute(mm,mm)。4.2.2 商品管理模块进入主页面后,用户可以根据自己喜好浏览页面上的商品,通过无序列表实现了页面上的菜单功能,还可以根据商品名称进行搜索。商品显示页面如图4-4所示。图4-4 商品显示图前台页面qt_main.jsp中没有任何数据,是通过qt_main.js中的ajax获得数据的,$.getJSON(/S

59、NYG/servlet/zYMTuP,null,function(data)跳到主页面图片的Servlet中,该类中定义一个map,里面放了四种商品,value是四种商品的list集合。Map String,List map=new HashMapString,List();map.put(rxsp,tup.getRxlist();map.put(xpsp,tup.getXplist();map.put(lxsp,tup.getLxlist();map.put(rysp,tup.getRylist();Gson gson=new Gson();/将map以json的格式返回到页面out.pri

60、nt(gson.toJson(map);通过ZYMTuPCl类中getRxlist()方法跳转的对应的热销产品的实现类中,再通过sql语句select * from t_spxx where rxzt=1 and rownum=5查找到商品,然后循环遍历商品,把商品再放到list中。最后通过ajax循环变量商品信息并将商品输出到页面中。for(var item in data)if(item=rxsp)var rxsp=dataitem;for(var i=0;irxsp.length;i+)var str=a href=/SNYG/huang/ShowSp.jsp? +img src=+rxspi.tplj+class=img1 + title=+rxspi.

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!