网上购物系统的设计与实现 毕业论文

网上购物系统的设计与实现 毕业论文

ID:343113

大小:1.18 MB

页数:35页

时间:2017-07-26

上传者:green wind
网上购物系统的设计与实现  毕业论文_第1页
网上购物系统的设计与实现  毕业论文_第2页
网上购物系统的设计与实现  毕业论文_第3页
网上购物系统的设计与实现  毕业论文_第4页
网上购物系统的设计与实现  毕业论文_第5页
资源描述:

《网上购物系统的设计与实现 毕业论文》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

西南民族大学题目:网上购物系统的设计与实现TheDesignandImplementationofInternetShoppingGoodsSystem教学单位计算机科学与技术学院姓名学号201131104076年级2011级专业软件工程指导教师职称2015年5月1日 西南民族大学摘要随着互联网和信息技术的快速发展,网上购物作为电子商务的一种形式正以其高效、低成本的优势,逐步成为新的经营模式和理念,人们渴望着能够充分享受网络所带来的更多的便利,可以说互联网改变着世界。网上购物正适应了当今社会快节奏地生活,使顾客足不出户便可以方便快捷轻松地动动鼠标在网上选购自己喜欢的商品。以及快递公司的发展使得在网上购物已经很普及了,网上购物已经不是什么新鲜的事了,网上购物方便了很多,由此带来很多商业化的公司以及电子商务的发展。既方便了人们的购物也缓解了一些人的就业压力。本设计是做的就是类似淘宝的购买衣服的网站,跟淘宝比肯定相差甚远,本设计只卖衣服,不卖其他的,设计的一个用JSP做的Javaweb的购衣服系统,实现在网上浏览衣服,以及购买衣服,并使用Tomact作为服务器,使用JDBC连接桥作为MYSQL的数据库的连接,主要技术有JspJavaBeanJavascriptcssAJAX实现用户登录,注册,购买,加入购物车等功能。关键字:JspJavaBean、购买衣服、购物车JSPAbstractWiththerapiddevelopmentofInternetandinformationtechnology,onlineshoppingasaformofe-commerceistotheadvantageofhighefficiencyandlowcost,andgraduallybecomeanewbusinessmodelandphilosophy,peoplewanttofullyenjoythenetworkbringsmoreconvenience,canbesaidthattheInternetischangingtheworld. Onlineshoppingisadaptedtothefastpaceoflifeintoday'ssociety,sothatcustomersstayathomewillbeabletofacilitatequickandeasytomovethemouseontheInternettobuytheirfavoritegoods. AndthedevelopmentofexpresscompanymakesshoppingontheInternethasbeenverypopular,onlineshoppingisnotwhatfreshthing,onlineshoppingisconvenientformany,resultinginmanycommercialcompaniesandthedevelopmentofelectroniccommerce.Theutilitymodelisconvenientforpeopleshoppingcanalleviatesomeofthepressureofemployment.ThedesignisdoneissimilartoTaobaobuyclotheswebsite,withTaobaocertainlydifferveryfar.Thisdesignonlysellsclothes,donotsellother,designaJSPtodowithJavaWebpurchaseclothessystem,browsetheInternetinclothes,andbuyclothesandusingtomactasaserver,usingJDBCconnectionbridgeasamysqldatabaseconnection,themaintechnologywithJSPJavaBeanJavaScript,CSS,Ajaxtoachieveuserlogin,registration,purchase,addtocartetc.Keywords:JspJavaBean、shoppingclothes、cartJSPI 西南民族大学目录第一章绪论11.1研究背景11.2研究意义11.3研究内容1第二章系统设计相关原理22.1系统简介22.2系统主要技术简介22.2.1JSP简介22.2.2JavaBean简介22.2.3MYSQL简介22.2.4网络程序B/S架构简介32.5.5HTML及CSS简介32.2.6JavaScript简介32.2.7Ajax简介32.2.8Java核心技术简介32.2.9数据库设计简介4第三章需求分析53.1系统目标53.2功能需求5第四章系统总体设计74.1系统结构设计74.2系统体系结构84.3系统数据库设计84.3.1数据库分析84.3.2实体描述104.3.3联系描述104.3.4系统E-R图114.3.5物理数据模型PDM13第五章详细设计145.1登陆设计145.2注册设计145.3搜索衣服设计145.4浏览衣服设计145.5加入购物车设计145.6提交订单设计155.7修改订单设计155.8订单查询设计155.9修改用户信息设计15第六章界面设计166.1登陆界面166.2注册界面186.3搜索衣服界面19I 西南民族大学6.4浏览衣服界面216.5加入购物车界面226.6提交订单界面236.7修改订单界面236.8查询订单界面236.9修改用户信息界面23结束语25致谢26主要参考文献27附录:部分源代码2831 西南民族大学第一章绪论1.1研究背景现在社会是高速发展的社会,不管在哪方面各种新技术新产品,每天都在更新,尤其在互联网在一块,更是发展的迅速,网络改变着世界,尤其的在经济水平很高的大城市,网上购物已经普遍了很多年了,像淘宝那样的,购网网站也是层出不穷,随着快递公司的可快速发展以及银行业务办理效率的提高,以及安全快捷方便的支付方式,导致在网上实现购物已经很容易了。而且在当前国际金融危机进一步加深的大背景下,许多企业尤其是外贸出口型中小企业面临着生存的困境,促进中小企业大规模步入网上购物的商机首次成为各级地方政府关注的新热点。作为现代流通方式,网上购物已广泛渗透到各个领域,对改变传统经营管理模式、有效降低交易成本、提高经济运行效率、促进区域经济发展起着越来越重要的作用。1.2研究意义随着我国经济的发展,人民生活水平的提高,网上购物已经变得很普及了,人们对网购变得越来越了解。以个人网上购买衣服为中心,为了让顾客体会到更加方便,更加美观,简单,更加易于操作的购买衣服的网站,开发本系统意义是为顾客提供方便,而且开发投资少,回收多,基本不需要太多的资金,24小时的营业时间,不受空间和地理位置的限制。1.3研究内容该系统是基于开源的tomcat服务器,数据库是建立在mysql可视化工具navicat上,用java语言及jsp语言开发的。主要研究利用JAVA的面向对象的语言来设计和处理业务以及JSP的显示技术,以及JavaScript技术在浏览器端的验证,还有那个异步的处理机制AJAX。以及网页开发是用到的session对象,在开发过程中,JavaBean技术以及,数据库的相关技术,JDBC连接桥等,主要用到了Java面向对象的技术来进行设计的系统,即万物皆对象,以及类与类之间的设计,Java的设计模式,Java的反射机制,集合框架等技术的研究。该系统完成了用户信息的注册,用户登录,浏览衣服,修改用户信息,加入购物车,未登录不能买,提交订单,确认订单等功能。主要用到了Java面向对象的技术来进行设计的系统,即万物皆对象,以及类与类之间的设计,Java的设计模式,Java的反射机制,集合框架等技术的研究。31 西南民族大学第二章系统设计相关原理2.1系统简介本网上购物系统主要实现用户的登陆,浏览,以及在没有登陆的时候也可以进行浏览衣服,当你登陆之后既可以浏览衣服又可以去提交订单实现确认订单,最后完成购买,当你看到自己喜欢的衣服后可以加入到购物车,购物车会保存你所选的衣服的,登陆的时候购物车也会保存你的信息,以及设置购买衣服的数量,以及删除要购买的订单,登陆之后还可以查询你的订单,最近购买的情况,还有用户在登录之后还可以修改用户信息,以及新用户的注册等功能。2.2系统主要技术简介2.2.1jsp技术简介JSP全名为JavaServerPages,中文名叫java服务器页面,其根本是一个简化的Servlet设计,它是由SunMicrosystems公司倡导,许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML文件和JSP标记,从而形成JSP文件,后缀名为*.jsp。用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。它实现了Html语法中的java扩张。JSP与Servlet一样,是在服务器端执行的。通常返回给客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计的显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。JSP是一种动态页面技术,它的主要目的是将表示逻辑从Servlet中分离出来。Java Servlet是JSP的技术基础,而且大型的Web应用程序的开发需要JavaServlet和JSP配合才能完成。JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。2.2.2JavaBean简介JavaBean是一种JAVA语言写成的可重用的组件。JavaBean在JSP程序中常用来封装事物逻辑,数据库操作等,可以很好的实现业务逻辑和前台程序(JSP程序)的分离,使得系统具有更好的健壮性和灵活性,为写成JavaBean,类必须是具体的和公共的,并且具有无参的构造器。JavaBean通过提供符合一致性设计模式的公共方法,将内部域暴露成员属性。周所周知属性名称符合这种模式,其他JAVA类可以通过自身机制发现和操作这些JavaBean属性。2.2.3MySql简介MYSQL是一个关系型数据库管理系统由瑞典MySQLAB公司开发,目前属于Oracle 公司MySQL 最流行的关系型数据库管理系统,在WEB应用方面MySQL31 西南民族大学是最好的RDBMS(RelationalDatabaseManagementSystem,关系数据库管理系统)应用软件之一。MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言。MySQL软件采用了双授权政策,它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL。2.2.4网络程序B/S架构B/S结构(Browser/Server,浏览器/服务器模式),是WEB兴起后的一种网络结构模式,WEB浏览器是客户端最主要的应用软件。这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。客户机上只要安装一个浏览器,如NetscapeNavigator或InternetExplorer,服务器安装SQLServer、Oracle、MYSQL等数据库浏览器通过WEBServer同数据库进行交互。2.2.5HTML及CSS简介HTML是一种超文本标记语言,标准通用标记语言下的一个应用“超文本”就是指页面内可以包含图片、链接,甚至音乐、程序等非文字元素。超文本标记语言的结构包括“头”部分(英语:Head)、和“主体”部分(英语:Body),其中“头”部提供关于网页的信息,“主体”部分提供网页的具体内容。HTML页面上可以嵌套用脚本语言编写的程序段如JavaScript是由浏览器解释执行web浏览器作为HTML的解释器和内嵌脚本程序的执行器CSS(CascadingStyleSheets)层叠样式表又叫级联样式表简称样式表用于HTML中元素的样式的定义实现了内容与表现的分离提高了代码的可重用性和可维护性。使用CSS有内联方式,内部样式表,外部样式表。2.2.6JavaScript简介JavaScript是一种基于对象和事件驱动的解释性语言具有与Java和C语言类似的语法是一种页面编程技术,用来向HTML页面添加交互行为,直接嵌入到HTML页面,由浏览器解释执行不进行预编译。可以使用任何文本编辑工具编写,由浏览器内置的JavaScript引擎执行代码,内置大量的现成对象适宜浏览器事件的触发,网页特殊显示效果,客户端表单的合法验证,服务器的异步数据的提交。2.2.7Ajax简介AJAX即“AsynchronousJavascriptAndXML”(异步JavaScript和XML)是一种用来改善用户体验的技术,其实质是使用XMLHttpRequest对象异步的像服务器发送请求,服务器返回部分数据,而不是一个完整的页面,以页面无刷新的效果更改页面中的局部内容。2.2.8Java核心技术简介31 西南民族大学说到JAVA不管是你做JAVAEE还是做安卓,如果你对JAVA这个语言很了解的话,你一定可以做的很好,还要了解什么是面向对象,以及和面向过程的区别,以及JAVA的封装,继承,多态,对象协作,抽象类,接口,尤其是类的设计,类的设计是最核心最重要,也是最难的,UML必须要熟悉这样你才能做出更加高效的功能,总之JAVA学好JAVA很重要,以及JAVA的安全性,多线程等等重要的技术,理解抽象数据类型:将不同类型的数据集合组成一个整体用来描述一种新的事物。类定义了一种抽象数据类型,同时还定义了对该类型实施的操作(方法)。为了能够对实例化的对象进行访问,需要使用一个特殊的变量—引用,引用类型的变量存放存放该对象的地址信息。用类,接口,数组等声明的变量都称做引用类型变量。理解动态绑定:在运行时动态绑定所调用方法属于子类还是父类。但是static方法和final方法不能被继承,因此不能动态绑定;private声明的方法和成员变量同样不能被子类继承,也不能动态绑定;构造方法也不能动态绑定。2.2.9数据库设计简介数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求(信息要求和处理要求)在数据库领域内,常常把使用数据库的各类系统统称为数据库应用系统。数据库建设是硬件、软件和干件的结合三分技术,七分管理,十二分基础数据,技术与管理的界面称之为“干件”如图2-1所示。现实世界功能分析数据分析功能说明功能模型概念模型设计逻辑数据库设计事务设计物理数据库设计程序说明子模式设计应用程序设计程序编码调试建立数据库图2-1数据库设计图31 西南民族大学第三章需求分析3.1系统目标该系统是一个个人网上购买衣服的系统,在该系统中,在用户未登录的情况下,用户可以有以下功能:(1)浏览衣服,在未登录的情况下用户可以查看自己想要购买的衣服。(2)分类管理衣服,在不同的年龄段应该有不同的衣服适合不同的人,因此衣服的分类管理很重要,比如像小孩衣服,男孩女孩衣服等的分类管理。(3)把自己想要购买的衣服加入购物车,但是不能提交订单,因为没有登陆(4)用户注册,为用户提供注册功能方面用户购买,用JavaScript和AJAX异步对象验证输入的合法性。(5)登陆页面,为用户提供登陆用JavaScript验证以及验证码的验证为了防止机器人的破坏性操作,可以采用验证码技术来防止恶意的发送数据。(6)搜索功能,用户可以输入自己想要找的衣服,可以检索出衣服,所有的衣服都存到数据库中。(7)在订单中修改订单的数量和删除订单。在用户登录的情况下,用户可以有以下功能:(1)浏览衣服,登录的情况下用户可以查看自己想要购买的衣服。(2)分类管理衣服,在不同的年龄段应该有不同的衣服适合不同的人,因此衣服的分类管理很重要,比如像小孩衣服,男孩女孩衣服等的分类管理。(3)把自己想要购买的衣服加入购物车。(4)从购物车中提取自己加入购物车中的衣服。(5)用户修改自己的信息修改中也用JavaScript验证。(6)用户购买和结账在结账的同时也可以返回去继续购买衣服。(7)删除订单以及订单数量的修改。(8)提交订单。(9)确认订单。3.2功能需求在功能需求中,只有不断的调查与研究,了解组织机构的情况,了解业务流程等系统与需求,对于设计一个好的概念模型是非常重要的。在功能需求中,应该对现实世界要处理的对象进行详细的调查;在确定系统功能中,收集支持系31 西南民族大学功能目标的数据及分析数据之间的关系和处理流程。可以说,功能需求的质量直接影响到系统设计的成败。本系统的功能需求如下:(1)用户注册:在网上购买衣服的用户一定是该系统的注册用户,因此,必须提供注册功能。(2)用户登录:提供用户在网站上购买前的登录功能。只有登录后,用户才能正常进行购买衣服的操作。(3)衣服搜索:用户在浏览衣服时,必须给予搜索功能的支持,以便用户能够快速地查找自己喜欢的衣服。(4)购物车:当用户选定一种衣服后,就可以把这衣服放到购物车中,在本系统中使用session对象来存储购物车的有关信息。需要注意的是,在购物车中衣服不是用户最终购买的衣服,只是一个购物意向,用户可以根据需要,在提交订单之前,随时修改购物车中的衣服。(5)浏览衣服的功能。(6)订单管理:修改订单数量和查看订单。31 西南民族大学第三章系统总体设计4.1系统结构设计本系统主要使用的是JSP的二层架构模式来完成设计的即如图4-1所示浏览器容器JSPviewJavaBeanModel数据库requestresponse图4-1二层架构模式图二层架构模式Javabean封装所要处理的业务逻辑,JSP用于显示页面但也有业务的处理。其中在JavaBean中封装要装载衣服信息,访问衣服的数据库DAO封装用户信息的Javabean用户的DAO订单,订单详细的Javabean和DAO最主要的是购物车的类的设计在购物车中调用订单详细,其中所有的类的设计用到了集合,集合可以很方便的处理。其中,页面之间的跳转的同时传递参数,参数传递到要处理的页面中,然后重定向,前台页面用CSS布局DIV布局,最难的是类之间的设计。31 西南民族大学4.2系统体系结构在系统功能分析的基础上,做系统功能整体体系图如图4-2所示。图中明示了每个功能,网上购买衣服系统用户登陆用户未登录用户管理用户管理订单管理衣服管理衣服管理搜索衣服搜索衣服浏览衣服加入购物车加入购物车浏览衣服用户登录用户注册修改用户信息用户退出修改订单提交订单购买衣服订单查询修改订单数量删除订单图4-2系统体系结构图4.3系统数据库设计一个好的数据库是每一个成功的系统必不可少的部分,数据库设计原则是系统设计中最关键的一步。所以要根据系统的信息量设计一个合适的数据库。4.3.1数据库分析因为网上购买衣服系统中需存储的数据信息量不大,对数据库的要求并不是很高,所以本系统采用了开源的MYSQL数据库,数据库名称为sellclothes。在数据库中共建立了4张数据表,用于存储不同的信息,31 西南民族大学(1)customer(顾客信息表)这个表主要定义了顾客的信息,其中索引为name和email主键:id索引是数据库中为提高查询最常用的工具,表结构如图4-3-1-1所示表4-3-1-1顾客信息表字段名称数据类型大小说明idint11编号namevarchar50帐号passwordvarchar50密码sexchar1性别emailvarchar100邮箱phonevarchar30电话addressvarchar200地址answervarchar100问题questionvarchar100答案(2)clothes(衣服信息表)其中id为主键其中type字段用来标示不同种类的衣服,表结构如图4-3-1-2所示表4-3-1-2衣服信息表字段名称数据类型大小说明idint11编号clothesnamevarchar50衣服名pingpaivarchar50品牌fenggevarchar100风格typechar1类型descriptiontext0描述image_urlvarchar50图片地址pricedecimal8价格31 西南民族大学(3)order_detail(订单详细信息表)其中clothes_id和order_id两个一起构成主键,外键为clothes_id,order_id表结构如图4-3-1-3所示表4-3-1-3顾客信息表字段名称数据类型大小说明clothes_idint11衣服编号order_idint11订单编号quantityint11数量unit_pricedecimal8总价(4)order(订单信息表)其中id为主键外键为customer_id用来标示不同的顾客,表结构如图4-3-1-4所示表结构如图4-3-1-4所示字段名称数据类型大小说明idint11编号customer_idint11顾客编号order_numbervarchar25数量total_pricedecimal8单价statuschar1状态create_attimestamp0创建时间4.3.2实体描述实体衣服,有属性编号id、衣服名称、衣服品牌、衣服风格、衣服类别、衣服描述、图片地址、衣服价格,主键是衣服编号。实体用户,有属性用户编号、用户名、密码、性别、邮箱、电话、地址、问题、答案,主键是用户编号。实体订单,有属性订单编号、用户、订单号、单价、订单状态、订单创建时间,主键是订单编号。实体订单明细,有属性衣服编号、订单编号、数量、总价,主键是衣服编号和订单编号一起构成主键。4.3.3联系描述(1)购物:是实体用户和商品之间的N:M联系,表示多个用户可以购买同一商品,也可能一多个商品被同一用户购买。(2)对应:是实体用户和订单之间的1:M联系,表示一个用户对应多个订31 西南民族大学单。订单明细实体和商品信息实体之间也是1:M联系。(3)属于:是实体订单明细和订单之间的1:1联系,表示一个订单对应一个订细。4.3.4E-R图(1)衣服信息实体属性图如图4-3-4-1所示:价格衣服实体地址编号描述名字类型风格品牌图4-3-4-1衣服实体属性图问题用户实体地址编号电话名字性别密码邮箱答案(2)用户信息实体属性图如图4-3-4-2所示:图4-3-4-2用户实体属性图31 西南民族大学(3)订单信息实体属性图如图4-3-4-3所示:订单实体创建时间状态用户名字编号订单号单价图4-3-4-3衣服实体属性图(4)订单明细信息实体属性图如图4-3-4-4所示:订单明细实体衣服id订单id数量总价图4-3-4-4订单明细实体属性图由上面的描述,可得到系统的E-R模型图如图4-3-4-5所示订单实体衣服实体用户实体订单明细实体购买对应属于对应图4-3-4-5系统E-R图31 西南民族大学4.3.5物理数据模型PDMPDM叙述数据库的物理实现,主要目的是CDM(ConceptualDataModel)概念数据模型中建立的现实世界模型生成特定的DBMS脚本,产生数据库中保存信息的存储结构,保证数据在数据库中的完整性和一致性。本设计用PowerDesigner来设计然后用PowerDesigner自动生成数据库的脚本,设计图如图4-3-2-1所示图4-3-2-1物理数据模型图31 西南民族大学第三章详细设计5.1登陆设计登陆主要用于用户的登陆,登陆页面对账号和密码进行了验证,同时还有验证码的填写,当账号,密码,验证码都正确之后,则登陆成功进入系统修改用户信息的页面中。逻辑处理是用request.getParameter(参数)获取从提交页面的数据,然后进行处理其中request是JSP的内置对象,JSP总共有九种内置对象,比如像经常用到的session对象处理的逻辑是实例化用户DAO对象然后用对象调用SQL语句检索到所有的用户信息,只有找到用户名,密码,验证码和输入的相匹配,当匹配成功时重定向到修改用户页面,不然用JavaScript提示“登录失败请重新登陆”。最重要的还有就是在登录中用session对象保存用户的所有信息。方便后面的获取。用如下图:5.2注册设计注册页面主要用AJAX技术来实现异步的服务器端的请求,以页面无刷新的效果来处理检查用户名是否合法,和JavaScript技术来处理输入是否合法,当输入合法的注册信息之后会提交的注册处理的页面中。该页面中的逻辑处理,先用Javabean标签先实例化用户访问DAO对象然后该对象调用它的insert(用户)返回一个整型的数值当数值为1的是时候表示登录成功,当为0的时候表示登录失败把返回的值赋给之前定义好的开关,然后再重定向到注册成功页面5.3搜索衣服设计搜索衣服用到了JavaScript先用JavaScript进行是否输入的验证,然后用JavaScript的document对象的forms[]方法获取表单的参数进行提交,提交到处理页面进行处理,才处理中还是用内置对象request.getParameter(参数)获取从提交页面的数据,实例化衣服的DAO对象该对象中封装了数据库查询语句查询的结果返回一个list集合,其中SQL语句中用like模糊查询返回结果集,用if语句判断是否为空,如果为空用JavaScrip的alter输出“没有搜索到匹配记录”然后继续用JavaScript的Window对象的history.back()方法后退,当不为空时,用session保存将要搜索的关键字,然后重定向提交到,搜索处理的页面中,在处理页面中处理之后显示。5.4浏览衣服设计浏览衣服中主要调用数据库中的type的属性来找到相对应的适合不同年龄段的人的衣服,先获取链接地址中来提交的参数,然后再浏览衣服界面中实例化衣服访问的DAO,不同的参数用于不同的搜索,select语句返回list集合,这个集合是衣服的集合,用for()循环来显示衣服,在这个集合中遍历不同类型的衣服,然后获取衣服的属性,然后显示的页面上。5.5加入购物车设计31 西南民族大学当用户选中自己想要买的衣服的时候,点击进入单个衣服的界面。然后进入选中衣服的界面时获取在浏览衣服界面中的参数,由获取的参数继续创建衣服DAO由衣服的DAO对象调用数据库查询数据库中的衣服,最后得到衣服对象,由衣服对象获取在即的属性,然后再选中衣服界面中,点击购买以一个图片链接,链接到逻辑处理的页面,在处理页面中先获取session在购物车中的值,如果session没有值,则创建session并且添加一条订单到购物车,并且保存在session中,若果session中有值,则在衣服的数量加15.6提交订单设计当点击结账链接之后,会跳转到订单的最后的确认订单的页面中在该页面中又在之前的登陆的时候保存的session中获取用户信息,还有在之前买的时候中设置的购物车的信息中取出订单的信息,然后显示出来。5.7修改订单设计修改订单包括修改订单数量和删除订单,其中修改订单数量,在一个隐藏域中设置数量之后在onblur事件之后用JavaScript获取数量然后提交到更新数量的页面中处理,获取到隐藏域中的参数之后输出数量,然后在session中取出购物车中订单的详细,最后调用购物车的方法更新数量。删除订单相对简单,点击删除图标之后,会传递一个订单中所对应的衣服的参数,用这个参数作为,购物车中移除订单的参数传递到方法中,然后执行删除操作5.8订单查询设计只有在用户登录的情况下才可以进行订单的查询,当用户登录时,在修改用户信息的页面中设置订单查询,订单查询显示了,当前用户所有的订单交易,先在此页面中实例化订单DAO用这个对象根据用户id搜索订单的所有信息。5.9修改用户信息设计只有当用户登录成功的时候才会有修改用户信息这个页面,在这个页面中主要显示页面主要用于输入用户的信息,在处理的页面中用request.getParameter()对象获取提交的所有的信息,获取信息之后对用户信息的类进行赋值,此时用户的所有的信息都已经更新了,然后把用户对象作为参数传递到用户DAO对象中的更新方法中来完成对用户信息的修改。31 西南民族大学第六章界面设计6.1登陆界面登陆界面对用户名,密码,用JavaScript进行了验证,当用户不输入用户名或密码时,会提醒用户账号不能为空或密码不能为空。当用户输入错误的用户或者密码或验证码时显示登陆失败请重新登陆。其中用DIV,CSS表格控制显示页面布局如图6-1-1所示图6-1-1登陆界面当登陆失败时显示如图6-1-2所示图6-1-3登陆失败当不输入用户名或密码的提示如图6-1-4,图6-1-5所示:31 西南民族大学图6-1-4用户验证图6-1-5密码验证还有那个刷新验证码的功能,用一个点击事件,来刷整个页面来刷新验证码验证码是用一个验证码文件生成的,登陆成功的界面如图6-1-6所示图6-1-631 西南民族大学6.2注册界面注册界界面是用户没有账号时需要进行的操作,对用户的一些相关信息进行了保存,如用户名,密码,电话,电子邮箱,性别等。同时在JSP页面中,使用了AJAX对相关的信息进行了验证,只有输入合格的数据时,才能注册成功,注册成功之后会跳转到注册成功页面,如下图所示:31 西南民族大学其中检测用户名是否可用是用异步的AJAX处理的,会员邮箱用正则表达式来匹配密码性别等都用了JavaScript来验证页面布局用CSS。6.3搜索衣服界面搜索页面中也用了DIVCSS表格布局JavaScript进行验证当不输入任何文本时显示如下31 西南民族大学当搜索到匹配的记录时的界面31 西南民族大学搜索界面是每个页面中都有的其中用到了用jsp中的include的指令能很很方便的为每个页面中添加所需要的东西,用到了JavaScript进行提交及在数据库中的检索。6.4浏览衣服界面浏览衣服主要用一个for循环来显示加载图片的地址及实例化对象调用自己方法来实现CSS和div表格控制页面布局31 西南民族大学6.5加入购物车界面此界面主要用图片作为那个连接用到CSS和DIV表格来控制页面布局。点击购买就可以加入购物车。31 西南民族大学6.6提交订单界面只有在登录的情况下点击结账就提交到订单中了,CSS和div布局。6.7修改订单界面包括修改订单数量和删除订单,用CSS和div布局和JavaScript进行输入验证。6.8查询订单界面此界面主要用DIVCSS表格布局JavaScript进行验证6.9修改用户信息界面此界面主要用DIVCSS表格布局JavaScript进行验证31 西南民族大学31 西南民族大学结束语这次论文和所做的系统做的比较匆忙,系统比较简单,还有很多功能有待完善,比如添加管理员的管理的功能,添加支付的功能也没做出来,其中还存在一些缺陷没有解决,比如说乱码问题,提交到数据库中的乱码问题,所以在本设计中,搜索功能中只能搜索英文的衣服名称,中文的搜不到,本设计只用到了JSP的二层架构设计模式,这样就使得大量的Java代码和前端的显示页面的代码混合在一起,导致代码的阅读性很差,应该用现在流行的MVC以及servlet控制业务的转发,或者用框架像SSH等,由于自己技术有限,对于那些还是没有深入的理解导致没用MVC做。另外本系统没有考虑网站的安全问题,还有类的设计有点重要,只要设计好的类之后,才能减少代码的书写量,而且提高效率,以及提高系统的运行速度,Java的跨平台性本来就使得Java运行起来比C++等其他语言要慢。如果你的类设计的不优化,可能做出来的系统会更慢,人们上网对访问服务器的速度还是有要求的。想要做一个美观的网站学一些Photoshop和Flash还是很重要的。以及完美的会用MyEclipse它真的很强大,总体来说,本系统的设计扩展能力多一点使用较为简便。31 西南民族大学致谢本论文是在傅春常老师的指导下完成的,其中有很多不规范和需要注意的地方老师都给我平易近人的指导与改正了,比如该怎么书写格式问题,以及论文需要注意,还有指导我们必须是自己写的东西,不能有抄袭,由于自己有拖延症,一直没有给老师看论文,直到最后几天,但是老师还是一直耐心的等,没有逼着赶紧写,这一点我真的很感谢,让我能静下心来用很短的时间完成论文。写到这里就要毕业了,有点惆怅但是终究要毕业,还能清楚的记得自己大一时的那种不懂事(不过现在还是不怎么懂事没礼貌)与各种羞涩,争分夺秒的想着逃课,现在真是后悔当初,没有学好C语言以及C++以及各种学校的专业课,但是那都是过去了,后悔也没有用,一路走来过了四年了,或多或少的有些收获,读了好多年的书,终于要落幕了,但是还是有很多很多的不舍,很爱自己的大学,以及在这期间遇到的老师,同学,从老师哪里我看到了他们的才华,以及气质和态度,真是腹有诗书气自华,都是缘分,我很珍惜,可是我却要离开,真的舍不得。总之我是民大的学子,我深深的爱着你的一草一木,以及你的所有好的坏的愿我的西南民族大学以后会越来越强不管在哪方面,学术,后勤服务,校医院等很真心感谢我的所有教过我的老师,感谢本次论文的指导老师傅老师,感谢的人很多,但是更应该感谢西南民族大学,让我度过了四年的时光以及感恩我的父母。31 西南民族大学主要参考文献[1]萨师煊.王珊.数据库系统概论[M].北京:高等教育出版社,2008[2]陈建英.傅春常.朱晖.数据库原理实验指导[M].北京:电子科技大学出版社,2012[3]李兴华.Java开发实战经典[M].北京:清华大学出版社,2009[4]喻浩.CSS+DIV网页样式与布局从入门到精通[M].北京:清华大学出版社,2013[5]弗拉纳根.JavaScript权威指南[M].北京:机械工业出版社,2007[6]孙更新.宾晟.宫生文.Java程序开发大全[M].北京:中国铁道出版社,2010[7]刘晓华.张健.周慧贞.JSP应用开发详解[M].北京:电子工业出版社,2007[8]周桓.王殊宇.JSP项目开发全程实录[M].北京:清华大学出版社,2008.6[9]唐汉明.翟振兴.关宝军.王洪权.黄潇.深入浅出MySQL-数据库开发、优化[M].北京:人民邮电出版社,2014[10]正则表达式参考文档[EB/OL].http://www.regexlab.com/zh/regref.htm,2009-10.31 西南民族大学附录:部分源代码1衣服的访问对象的主要代码:publicArrayListselect(Stringsql){ArrayListlist=newArrayList();Connectionconn=null;Statementstmt=null;ResultSetrs=null;while(rs.next()){Clothesclothes=newClothes();//一定要在循环体内,且是循环的第一句。否则后面的Clothes会覆盖前面的clothes.setId(rs.getInt("id"));clothes.setClothesname(rs.getString("clothesname"));//数据库表里面的名字clothes.setPingpai(rs.getString("pingpai"));clothes.setFengge(rs.getString("fengge"));clothes.setType(rs.getString("type").charAt(0));clothes.setDescription(rs.getString("description"));clothes.setImage_url(rs.getString("image_url"));clothes.setPrice(Float.parseFloat(rs.getString("price")));list.add(clothes);}2顾客的访问对象的主要代码:publicArrayListselect(Stringsql){ArrayListlist=newArrayList();Connectionconn=null;Statementstmt=null;//可以直接用匿名对象ResultSetrs=null;try{conn=getConnection();stmt=conn.createStatement();rs=stmt.executeQuery(sql);while(rs.next()){//将rs结果集中的每一条记录都转化成Customer对象,再放进list中Customercustomer=newCustomer();customer.setId(rs.getInt("id"));//设置idcustomer.setEmail(rs.getString("email"));customer.setName(rs.getString("name"));customer.setPassword(rs.getString("password"));Strings_sex=rs.getString("sex");charc=s_sex.charAt(0);customer.setSex(c);31 西南民族大学customer.setPhone(rs.getString("phone"));customer.setAddress(rs.getString("address"));customer.setQuestion(rs.getString("question"));customer.setAnswer(rs.getString("answer"));list.add(customer);3顾客修改顾客信息的主要代码:publicintupdate(Customercustomer){//返回所影响的记录数,如果为1,则更新成功intcount=0;Connectionconn=null;PreparedStatementps=null;//根据user对象的属性生成sql语句Stringsql="updatecustomersetname='"+customer.getName()+"',password='"+customer.getPassword()+"',sex='"+customer.getSex()+"',email='"+customer.getEmail()+"',phone='"+customer.getPhone()+"',address='"+customer.getAddress()+"',question='"+customer.getQuestion()+"',answer='"+customer.getAnswer()+"'whereid="+customer.getId();try{conn=getConnection();ps=conn.prepareStatement(sql);count=ps.executeUpdate();4订单详细对象的访问主要代码:publicintinsert(OrderDetailorderDetail){intcount=0;Connectionconn=null;PreparedStatementps=null;Stringsql="insertintoorder_detail(clothes_id,order_id,quantity,unit_price)values("+orderDetail.getClothes().getId()+","+orderDetail.getOrder().getId()+","+orderDetail.getQuantity()+","+orderDetail.getUnit_price()+")";conn=newClothesDAO().getConnection();//获得连接31 西南民族大学ps=conn.prepareStatement(sql);count=ps.executeUpdate();returncount;//查询publicArrayListselect(Stringsql){ArrayListlist=newArrayList();Connectionconn=null;Statementstmt=null;ResultSetrs=null;try{conn=newClothesDAO().getConnection();stmt=conn.createStatement();rs=stmt.executeQuery(sql);while(rs.next()){//将rs结果集中的每一条记录都转化成OrderDetail对象,再放进list中OrderDetailorderDetail=newOrderDetail();Clothesclothes=newClothes();clothes.setId(Integer.parseInt(rs.getString("clothes_id")));orderDetail.setClothes(clothes);Orderorder=newOrder();order.setId(rs.getInt("order_id"));orderDetail.setOrder(order);orderDetail.setQuantity(Integer.parseInt(rs.getString("quantity")));orderDetail.setUnit_price(Float.parseFloat(rs.getString("unit_price")));list.add(orderDetail);5购物车主要代码:publicclassShopCart{privateArrayListlist=newArrayList();//购物车中订单明细列表集合,数组publicvoidaddList(OrderDetailorderDetail){//添加衣服时,先判断list中有无该衣服所对应的订单明细,//若没有,添加一条新的订单明细;若有,将衣服的数量加1OrderDetailorderDetail2=findOrderDetailById(orderDetail.getClothes().getId());if(orderDetail2==null){list.add(orderDetail);}else{orderDetail2ssss.addQuantity();31 西南民族大学}}publicvoidupdateQuantity(intclothesId,intquantity){//修改购物车中衣服的数量,OrderDetailorderDetail=findOrderDetailById(clothesId);orderDetail.setQuantity(quantity);}publicfloatcalculateTotalPrice(){//计算所有衣服的总价,即所有订单明细的单价之和floattotal=0.0f;for(inti=0;igetList(){//获取购物车的listreturnlist;}publicvoidsetList(ArrayListlist){this.list=list;}privateOrderDetailfindOrderDetailById(intclothesId){//从list中根据clothesId找到所对应的那一条订单明细for(inti=0;i

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
大家都在看
近期热门
关闭