idingfan订餐系统订单模块的设计与实现【开题报告+文献综述+毕业论文】

idingfan订餐系统订单模块的设计与实现【开题报告+文献综述+毕业论文】

ID:444388

大小:623.23 KB

页数:36页

时间:2017-08-02

上传者:U-944
idingfan订餐系统订单模块的设计与实现【开题报告+文献综述+毕业论文】_第1页
idingfan订餐系统订单模块的设计与实现【开题报告+文献综述+毕业论文】_第2页
idingfan订餐系统订单模块的设计与实现【开题报告+文献综述+毕业论文】_第3页
idingfan订餐系统订单模块的设计与实现【开题报告+文献综述+毕业论文】_第4页
idingfan订餐系统订单模块的设计与实现【开题报告+文献综述+毕业论文】_第5页
idingfan订餐系统订单模块的设计与实现【开题报告+文献综述+毕业论文】_第6页
idingfan订餐系统订单模块的设计与实现【开题报告+文献综述+毕业论文】_第7页
idingfan订餐系统订单模块的设计与实现【开题报告+文献综述+毕业论文】_第8页
idingfan订餐系统订单模块的设计与实现【开题报告+文献综述+毕业论文】_第9页
idingfan订餐系统订单模块的设计与实现【开题报告+文献综述+毕业论文】_第10页
资源描述:

《idingfan订餐系统订单模块的设计与实现【开题报告+文献综述+毕业论文】》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

毕业论文开题报告电子商务idingfan订餐系统订单模块的设计与实现一、选题的背景和意义(一)技术背景随着计算机网络计术的发展,WEB软件系统被广泛的应用,人们对互联网的认识逐渐增强,网上购物已经走入了人们的生活。目前javaweb开发领域普遍采用基于javaEE规范所要求的分层开发框架,具体是指将应用分为:客户层、表示层、业务逻辑层和数据库层。整体的分层架构是以MVC(Model-View-Controller)设计模式为基础。Struts是一款实现MVC模式、遵循JavaEE规范的开源框架,最近几年已成为企业Web应用开发的首选工具,是目前javaweb领域使用最广泛的框架。基于Struts框架的购物车系统实现MVC模式,结构清晰,使开发者只关注业务逻辑的实现.。并且是一种优秀的J2EEMVC架构方式。它利用taglib获得可重用代码和抽象Java代码,利用ActionServlet配合Struts-config.xml实现对整个购物车系统导航。增强了开发人员对购物车系统的整体把握,提高了系统的可维护性和可扩充性。(二)爱订饭选择Struts框架的意义由于订餐网站是面向社会的商业运营网站,具有很高的流量,实现的功能较为复杂,实现的模块较多,如购物车模块、用户积分、订单模块等。网站的后期维护较为的重要。Struts框架是一种基于MVC(Model-View-Controller)模式的开源应用框架,同时struts框架简化了基于Mvc模式的Web应用程序。Struts框架的主要的两个优点体现在taglib和页面导航上。Taglib是Struts的标记库,灵活应用能大大的提高开发的效率。而页面导航使得各模块之间的联系更为得清晰,有利于网站的后期维护。二、研究目标与主要内容(含论文提纲)(一)研究目标与主要内容15 随着电子商务的普及,网上购物成为人们生活中必不可少的组成部分。网上订餐也在网上购物中逐渐的发展、壮大。同时,网上订餐的便利性使得订餐网在数量及质量上大大的提高。在实训项目的基础上,进一步完善订餐网的各部分模块。使用Struts框架实现订餐网的订单模块,能有效的实现购物车功能即客户对商品的选择、购买、结算、生成订单,并且用户能对各阶段的订单进行跟踪查询,及时了解订单的完成情况。用户通过订购商品产生相应的积分,进行积分兑换等功能。(二)论文提纲一、引言二、订餐网订单系统的开发(一)开发工具的选择(二)开发语言的选择(三)开发模式——Struts框架(四)订餐的开发背景三、订餐网订单系统的更新设计(一)订单系统数据库的设计(二)订单系统的页面设计(三)订单系统的功能模块划分四、订餐网订单系统购物车模块的实现(一)购物车流程(二)MVC模式的应用——购物车功能的具体实现五、订餐网订单系统实现中安全问题的解决方法(一)权限设置(会员是否登录)(二)用户信息安全(MD5加密技术)(三)目录共享安全(使用Struts结构.do)六、总结三、拟采取的研究方法、研究手段及技术路线、实验方案等(一)系统开发运行环境1、Windows2000以上的操作系统15 这是主要的软件,此系统开发过程在除了文档的编写,其它的工作都在操作系统中进行,它是现在所有初级学者的操作系统工具,在开发过程中担任重要的任务。2、MacromediaDreamweaverCS3页面编辑器MacromediaDreamweaverCS3是制作Web页站点和eb应用程序开发的专业工具。它将可视布局工具、应用程序开发功能和代码编辑支持组合在一起,其功能强大,使得各个层次的开发人员和设计人员都能够快速创建界面吸引人的基于标准的网站和应用程序。3、MySQL数据库开发软件MySQL是一个真正的多用户、多线程SQl数据库服务器。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。4、MyEclipse8.0开源软件MyEclipse是一个十分优秀的用于开发Java、J2EE的Eclipse的插件集合,也是功能丰富的JavaEE的集成开发环境。具有完备的编码、调试、测试和发布功能,完整支持HTML、Struts、JSF、Css、javascript、SQL、Hibernate。MyEclipse8.0新增Struts的图形编辑器,更加方便开发者的使用。5、其他网页设计软件MacromediaFlash8.0、PhotoshopCS3、MacromediaFirewoks8.0等(二)研究手段采用MVC模式——模型(Model)、视图(View)和控制器(Controller)、Struts架构,其中页面设计采用框架结构,其内容主要以ActionServlet+Action+ActionForm形式展现。(三)技术路线15 系统的实现遇到的问题解决方案确定系统技术框架对系统进行需求分析,制定详细的系统实现流程系统的初步实现网站的需求分析,通过分析实现网站的具体实现系统调试、优化对系统进行优化,调试。使系统整体趋向完整。总结对系统进行功能、架构等总结新技术的添加页面设计网站整体风格、架构的确定购物车功能的实现实现购物车增、删、改等功能订单查看功能的实现今日订单及历史订单查询的实现文献收集理论准备15 四、参考文献[1]高洪岩编著基于简单SSH的javaweb的设计与开发.第三版.北京:电子工业出版社,2008,1-236.15 [2]何文辉.基于JSP的动态网站开发技术[J].吉林省教育学院学报(学科版),2008,(08)[5]袁可可.JSP技术中使用MVC模式实现Web购物车.科技传播,2010-4(下):116-121.[6]傅进勇,邓少烽,李波.JSP网络编程[M].北京:电子工业出版社,2008,5.[7]王海鸥.基于Struts架构的网上购物电子商务平台的设计与实现.2010-02-05[8]于光.基于MVC模式的Struts技术在Web应用中的研究与实现.电子政务,2009-10-14.[9]王先国.JSP动态网页编程技术[M].北京:电子工业出版社,2006,12.[10]续蕾.基于JSP的B/S模式网上商城购物系统的设计与实现[J].四川兵工学报,2009,(10)[11]辛峰.基于JSP的网上购物系统设计与实现哈尔滨职业技术学院学报2010/01[12]陆聪慧.基于JSP技术的电子购物系统的设计[J].科技信息,2010,(16).[13]郭珍,王国辉.JSP程序设计教程[M].北京:人民邮电出版社,2008,5.[14]顾凌燕;蒋文蓉.Servlet与JSP技术在电子商务网站构建中的应用IT服务促进企业信息化——第十一届中国Java技术及应用交流大会文集2008[15]彭浩;林翠云.基于JSP技术的三层结构商务网站构建福建电脑2008/10五、研究的整体方是案与工作进度安排(内容、步骤、时间)(一)研究的整体方案15 在实训的基础上对爱订饭的订餐网站进行深入的研究。使用Struts框架(MVC模式的一种实现)进一步实现订单系统,实现购物一体化。用户通过购物车对商品进行选择,同时方便的修改商品类型及商品数量,使用户在消费的时候更加的便捷。用户通过订单模块除了能方便用户点餐之外,能有效的了解订单的配送情况,对订单进行进一步的跟踪查询,同时用户根据查询的历史订单清晰的了解该用户的积分。订单模块能够使用户跟商家的联系更加的紧密,从商品的添加、修改、删除直到订单的生成、执行。商家能第一时间了解用户需求,修改商家的广告策略,提高商户的知名度。而用户能在第一时间了解订单的实现情况,对商家的信誉进行及时的反馈。订单模块的实现有助于用户与商户各自需求。基于Struts框架的爱订饭订餐网站的订单模块的主要实现功能包括,购物车,今日订单、历史订单的跟踪查询,订单列表的分页显示,用户积分等功能。(二)工作进度安排1、2010年11月1日—2010年11月17日初步完成idingfan网站设计2、2010年11月17日—2010年12月1日部分功能实现3、2010年12月1日—2011年1月5日选题4、2011年12月5日—2011年12月28日修改订单模块页面设计5、2011年1月6日—2011年1月15日完成文献综述和外文翻译6、2011年1月16日—2011年1月30日完成开题报告7、2011年1月31日—2011年3月31日测试网站、修改不足、完成网站8、2011年1月30日—2011年3月1日完成毕业设计初稿9、2011年3月1日—2011年4月30日定稿10、2011年4月30日—2011年5月14日准备论文答辩11、2011年5月15日论文答辩六、研究的主要特点及创新点随着网络技术的迅速发展和多层软件体系结构开发技术的不断完善,基于B/S的多层Web应用已成为开发的主流技术。MVC模式将J2EE表示层和业务逻辑层划分为模型(Model)、视图(View)和控制器(Controller)三部分,在理论上实现了页面显示与业务逻辑分离,具有模块独立、流程清晰、设计灵活和易于扩展等特点。爱订饭网站根据自身需求及出与安全性考虑,采用新技术Struts以满足不断完善的订单模块。对用户提供个性化的便捷服务。主要特点及创新点如下:(一)采用先进的技术:MVC模型、Struts架构。(二)提升安全性:数据库安全(采用数据链接池)、目录共享安全、系统安全性。(三)节省网站空间资源,提高程序利用率。15 (一)动态导航。(五)方便用户操作:订单查询日历选择等。15 毕业设计文献综述电子商务idingfan订餐系统订但模块的设计与实现一、订单系统建设情况随着计算机网络计术的发展,WEB软件系统被广泛的应用,人们对互联网的认识逐渐增强,网上购物已经走入了人们的生活。由于网上订餐的便利性使得订餐网逐渐的走进人们的生活,在杭州较为有名的订餐网,如点我吧,爱订饭等。每个电子商务平台都存在着订单这一模块,顾客可以通过订单模块选择商品添加修改删除,资金结算,在线支付,生成订单,查看订单的完成情况以及历史订单及当日订单的查询等功能。在订单模块中尤为重要的一部分为购物车,这也是电子商务平台中不可或缺的组成部分,是电子商务的核心。一般的购物车系统集成了产品发布与查询、会员注册登录、购物车、在线订单、在线支付、在线交流等完善的网上销售功能。最主要的是管理员只需要登录网站后台管理就可以在线发布商品、处理订单,完全不需要任何网站建设的知识。购物车系统的使用者是做网上销售的商家,不需要懂任何网络知识,只要使用了购物车系统他们可以轻松建立一个功能强大的网上商城,实现用户注册、产品展示、在线定购、在线支付等电子商务功能计。订单模块的实际需要动态网站技术的支持。目前订单模块的主要技术实现在网上购物车这一部分。其主要实现以下功能:用户选择商品放入购物车;对用户网上购物车中的商品进行删除操作;对网上购物车中商品的数量信息进行修改;统计用户网上购物车中的商品总价格信息。二、基于Struts框架的订单模块建设的当前成果Struts是一种基于MVC(Model-View-Controller)模式的开源应用框架,它可以有效的提高系统的可维护性、灵活性以及复用性,并能对web应用程序的开发进行简化。(一)MVC模式15   MVC即Model-View-Controller的缩写。Model(模型),封装了数据与基于数据的操作,代表的系统逻辑部分。View(视图),是模型的外在表示部分。Controller(控制器),是联系前两者的纽带,提供应用的处理过程控制。(一)Struts体系结构Struts是开源的MVC的一种实现,它将Servlet和JSP标记(属于J2EE规范)用作实现的一部分。Struts继承了MVC的各项特性,并根据J2EE的特点,做了相应的变化与扩展。Struts的体系结构包括模型(Model),视图(View)和控制器(Controller)三部分。1)模型(Model)在Struts的体系结构中,模型分为两个部分:系统的内部状态和可以改变状态的操作(事务逻辑)。内部状态通常由一组ActinformBean表示。根据设计或应用程序复杂度的不同,这些Bean可以是自包含的并具有持续的状态,或只在需要时才获得数据(从某个数据库)。大型应用程序通常在方法内部封装事务逻辑(操作),这些方法可以被拥有状态信息的bean调用。比如购物车bean,它拥有用户购买商品的信息,可能还有checkOut()方法用来检查用户的信用卡,并向仓库发定货信息。小型程序中,操作可能会被内嵌在Action类,它是struts框架中控制器角色的一部分。  2)视图(View)视图主要由JSP建立,struts包含扩展自定义标签库(TagLib),可以简化创建完全国际化用户界面的过程。目前的标签库包括:BeanTags、HTMLtags、LogicTags、NestedTags以及TemplateTags等。  3)控制器(Controller)在struts中,基本的控制器组件是ActionServlet类中的实例servelt,实际使用的servlet在配置文件中由一组映射(由ActionMapping类进行描述)进行定义。对于业务逻辑的操作则主要由Action、ActionMapping、ActionForward这几个组件协调完成的,其中Action扮演了真正的业务逻辑的实现者,ActionMapping与ActionForward则指定了不同业务逻辑或流程的运行方向。struts-config.xml文件配置控制器。三、基于Struts框架的订单模块的发展趋势15 随着Internet的普及,电子商务大力的发展。在实现的技术上也日益的成熟,购物车系统在电子商务平台上显得尤为的重要。但目前市场上存在的大多数购物车系统只能作为一个顾客选中商品的展示,客户端无法将购物车里的内容提取出来满足自己事务处理的需要,而这一点在有些电子商务活动很有必要。Struts框架的出现使得网络上传输的数据变得有意义起来,可以根据不同的要求以不同的样式将一个购物车的内容显示出来。目前javaweb开发领域普遍采用基于javaEE规范所要求的分层开发框架,具体是指将应用分为:客户层、表示层、业务逻辑层和数据库层。整体的分层架构是以MVC(Model-View-Controller)设计模式为基础。Struts是一款实现MVC模式、遵循JavaEE规范的开源框架,最近几年已成为企业Web应用开发的首选工具,是目前javaweb领域使用最广泛的框架。基于Struts框架的购物车系统实现MVC模式,结构清晰,使开发者只关注业务逻辑的实现.。并且是一种优秀的J2EEMVC架构方式。它利用taglib获得可重用代码和抽象Java代码,利用ActionServlet配合Struts-config.xml实现对整个购物车系统导航。增强了开发人员对购物车系统的整体把握,提高了系统的可维护性和可扩充性。四、基于Struts框架的购物车系统所存在的问题Struts框架操作复杂。转到展示层时,需要配置forward,每一次转到展示层,相信大多数都是直接转到jsp,而涉及到转向,需要配置forward,如果有十个展示层的jsp,需要配置十次struts,而且还不包括有时候目录、文件变更,需要重新修改forward,注意,每次修改配置之后,要求重新部署整个项目,而tomcate这样的服务器,还必须重新启动服务器,如果业务变更复杂频繁的系统,这样的操作简直不可想象。Struts的Action必需是thread-safe方式,它仅仅允许一个实例去处理所有的请求。所以action用到的所有的资源都必需统一同步,这个就引起了线程安全的问题。Struts的FormBean把所有的数据都作为String类型,它可以使用工具Commons-Beanutils进行类型转化。但它的转化都是在Class级别,而且转化的类型是不可配置的。类型转化时的错误信息返回给用户也是非常困难的。15 对Servlet的依赖性过强.Struts处理Action时必需要依赖ServletRequest和ServletResponse,所有它摆脱不了Servlet容器。对Action执行前和后的处理.Struts处理Action的时候是基于class的hierarchies,很难在action处理前和后进行操作。对事件支持不够.在struts中,实际是一个表单Form对应一个Action类(或DispatchAction),换一句话说:在Struts中实际是一个表单只能对应一个事件,struts这种事件方式称为applicationevent,applicationevent和componentevent相比是一种粗粒度的事件。参考文献[1]高洪岩编著基于简单SSH的javaweb的设计与开发.第三版.北京:电子工业出版社,2008,1-236.[2]何文辉.基于JSP的动态网站开发技术[J].吉林省教育学院学报(学科版),2008,(08)[5]袁可可.JSP技术中使用MVC模式实现Web购物车.科技传播,2010-4(下):116-121.[6]傅进勇,邓少烽,李波.JSP网络编程[M].北京:电子工业出版社,2008,5.[7]王海鸥.基于Struts架构的网上购物电子商务平台的设计与实现.2010-02-05[8]于光.基于MVC模式的Struts技术在Web应用中的研究与实现.电子政务,2009-10-14.[9]王先国.JSP动态网页编程技术[M].北京:电子工业出版社,2006,12.[10]续蕾.基于JSP的B/S模式网上商城购物系统的设计与实现[J].四川兵工学报,2009,(10).[11]辛峰.基于JSP的网上购物系统设计与实现哈尔滨职业技术学院学报2010/01.[12]陆聪慧.基于JSP技术的电子购物系统的设计[J].科技信息,2010,(16).[13]郭珍,王国辉.JSP程序设计教程[M].北京:人民邮电出版社,2008,5.[14]顾凌燕;蒋文蓉.Servlet与JSP技术在电子商务网站构建中的应用IT服务促进企业信息化——第十一届中国Java技术及应用交流大会文集2008.15 [15]彭浩;林翠云.基于JSP技术的三层结构商务网站构建福建电脑2008/10.15 本科毕业论文(20__届)idingfan订餐系统订单模块的设计与实现摘要:随着电子商务应用的推广,网上购物的普及,涌现出越来越多的订餐网站。Idngfan订餐网站使用struts框架实现,struts框架为MVC模式的一种实现。本文主要实现订餐网中的订单系统的实现,包括购物车的实现,将购物车信息写入订单表及订单详细表,今日订单及历史订单的查询等模块功能。系统主要实现偏向于购物车功能,购物车功能主要实现商品的添加、删除、数量修改、查看的功能。订餐系统订单模块还存在一些缺陷,订单模块还需要完善的地方。关键词:MVC模式;Struts框架;订餐网;交互式15 thedesignandtheachievementoftheroscoesystemordermoduleofaidingfanAbstract:Withthepromotionofe-commerceapplications,thepopularityofonlineshopping,moreandmorenetworksarise.ThewebsiteofIdnfanimplementsitwiththeframeworkofstruts. Inthispaper,weimplementtheorderingsystemofwebsite,includingimplementingtheshoppingcart,copyingtheshoppingcartinformationintotheorderform,takingnotesofthedetailorderform,today'sorderform,thehistoryandsoon.Thesystemismainlytoachievethepartoftheshoppingcart,andthefunctionoftheshoppingcartismainlytoinsert,delete,updateandlistCertainly,thesystemhassomeshortcomings,whichisneededtobeperfected.Keywords:MVCmode;Strutsframework;networking;interactive15 目录一、订餐网站的开发1(一)开发工具1(二)开发语言的选择2(三)开发模式——MVC2(四)订餐网的开发背景4二、Idingfan网站的整体结构设计5(一)订餐管理模块的数据库设计5(二)订餐管理模块的页面设计9(三)爱订饭系统订餐模块的功能实现11三、订单系统的购物车功能实现12(一)购物车流程12(二)MVC模式应用——购物车功能实现13四、订单系统实现中安全问题的解决方法19(一)权限设置(会员是否登录)19(二)用户信息安全(MD5加密技术)19(三)目录共享安全(使用Struts结构.do)19总结19参考文献19致谢2015 引言随着计算机网络技术的发展,电子商务的大力推广,网上商城逐渐走入大众生活。网上购物成为人们日常生活必不可少的一部分。网上购物改变了传统的购物方式,它可以使人们不受时间的限制,不受空间的限制,不受传统购物的诸多限制,随时随地通过互联网购物。网上购物的便利性促进了淘宝网、淘宝商城、团购网等网上购物平台的发展。同时,订餐网也出现在大众视线中。由于餐厅用餐时间及餐厅地点的局限性,我们采用了基于MVC模式的struts框架开发爱订饭网上订餐系统。MVC模式将J2EE表示层和业务逻辑层划分为模型(Model)、视图(View)和控制器(Controller)三部分,在理论上实现了页面显示与业务逻辑分离。Struts是一个开源的MVC实现,它提供了可在应用中继承、修改的基本控制器的功能。除了提供MVC的实现,Struts还提供了一些有价值的定制标签库。由于订餐网站的流量较大,而MVC模式思路清晰,可以方便快捷的实现网站的后期维护。全方位的实现爱订饭订餐网站的实现及后续发展。一、订餐网站的开发(一)开发工具1、Windows2000以上的操作系统这是主要的软件,此系统开发过程在除了文档的编写,其它的工作都在操作系统中进行,它是现在所有初级学者的操作系统工具,在开发过程中担任重要的任务。2、MacromediaDreamweaver8页面编辑器MacromediaDreamweaverCS3是制作Web页站点和Web应用程序开发的专业工具。它将可视布局工具、应用程序开发功能和代码编辑支持组合在一起,其功能强大,使得各个层次的开发人员和设计人员都能够快速创建界面吸引人的基于标准的网站和应用程序。3、MySQL数据库开发软件MySQL是一个真正的多用户、多线程SQl数据库服务器。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。4、MyEclipse8.0开源软件MyEclipse8.0是一个十分优秀的用于开发Java、J2EE的Eclipse的插件集合,也是功能丰富的JavaEE的集成开发环境。具有完备的编码、调试、测试和发布功能,完整支持HTML、Struts、JSF、Css、javascript、SQL、Hibernate。MyEclipse8.0新增Struts的图形编辑器,更加方便开发者的使用。5、其他网页设计软件20 MacromediaFlash8.0、PhotoshopCS3、MacromediaFirewoks8.0等。(二)开发语言的选择1、JAVAJAVA是一种跨平台的、适合于网络计算环境的面向对象语言。语言具有简单性、面向对象、分布性、编译和解释性、安全性、中性的体系结构、可移植性、高性能、多线程和动态性等特点由于爱订饭订餐网选用MVC模式,在MVC模式下的ActionServlet、Action、ActionForm都支持JAVA语言编写。2、JSPJSP技术是一种动态网页技术标准,是基于JavaServlets以及整个Java系统的Web开发技术。JSP能够在HTML语言中嵌入或者调用脚本语言从而链接多个对象,与客户端实现交互作用。利用JSP技术,动态信息由JSP页面来表现,JSP页面由安装在WEB服务器或者使用JSP的应用服务器上的JSP引擎执行。JSP引擎接受客户端对JSP页面的请求,并且生成JSP页面作为对客户端的响应。(三)开发模式——MVCMVC模式将J2EE表示层和业务逻辑层划分为模型(Model)、视图(View)和控制器(Controller)三部分,在理论上实现了页面显示与业务逻辑分离,具有模块独立、流程清晰、设计灵活和易于扩展等特点。实践证明,MVC模式能够有效提高企业级Web应用的开发效率,并显著增强系统代码重用性与可靠性。基于MVC模式的JZEE多层Web框架己经成为目前分布式企业级应用的主流架构之一。MVC模式的适用范围很广,这与其具有众多优点密不可分,具体包括:结构清晰,重用性、灵活性和可配置性,功能强大的用户界面,模块的有效性和可维护性,有利于软件工程化管理等优点。采用MVC模式——模型(Model)、视图(View)和控制器(Controller),Struts架构,其内容主要以ActionServlet+Action+ActionForm形式展现,如图2-1所示。1、ActionServlet类ActionServlet是该MVC实现的Command部分,它是这一框架的核心。ActionServlet(Command)创建并使用Action、ActionForm。struts-config.xml文件配置该Command。在创建Web项目时,扩展Action和ActionForm来解决特定的问题。文件struts-config.xml指示ActionServlet如何使用这些扩展的类。这种方法有几个优点:(1)应用程序的整个逻辑流程都存储在一个分层的文本文件中。这使得人们更容易查看和理解它,尤其是对于大型应用程序而言。(2)网页设计人员不必费力地阅读Java代码来理解应用程序的流程。(3)Java开发人员也不必在更改流程以后重新编译代码。(4)可以通过扩展ActionServlet来添加Command功能。20 2、ActionForm类ActionForm维护Web应用程序的会话状态。ActionForm是一个抽象类,必须为每个输入表单模型创建该类的子类。输入表单模型,是指ActionForm表示的是由HTML表单设置或更新的一般意义上的数据。例如,有一个由HTML表单设置的UserActionForm。Struts框架将执行以下操作:(1)检查UserActionForm是否存在;如果不存在,它将创建该类的一个实例。(2)Struts将使用HttpServletRequest中相应的域设置UserActionForm的状态。例如,Struts框架将从请求流中提取fname,并调用UserActionForm.setFname()。(3)Struts框架在将UserActionForm传递给业务包装UserAction之前将更新它的状态。(4)在将它传递给Action类之前,Struts还会对UserActionForm调用方法进行表单状态验证。3、Action类Action类是业务逻辑的一个包装。Action类的用途是将HttpServletRequest转换为业务逻辑。ActionServlet(Command)使用perform()方法将参数化的类传递给ActionForm。当事件进展到这一步时,输入表单数据(或HTML表单数据)已被从请求流中提取出来并转移到ActionForm类中。图2-1Command(ActionServlet)与Model(Action&ActionForm)之间的关系的UML图Struts框架是MVC模式的一种实现,它将servlet和jsp标记用作实现的一部分。Struts继承了MVC的各项特性,并根据J2EE的特点,做了相应的变化与扩展。以下步骤为Struts框架实现MVC模式的基本原理。20 ActionServlet是struts最核心的组件。在Web容器启动的时候,ActionServlet被初始化,加载struts-config.xml配置文件。Struts处理请求的过程如下:(1)当客户端浏览器发起请求到ActionServlet时,Action-Servlet根据请求的路径和Struts-config.xml配置信息找到对应的Actionbean和Formbean。(2)在确定将要调用ActionBean和对应的FromBean后,就将请求中包含的值填充到FromBean中。在调用Action的execute方法前,ActionServlet还需要准备好ActionMapping参数,ActionMapping中包含了该Action的配置信息。(3)然后Struts将请求分发至相应的ActionBean处理,ActionMapping参数、ActionFrom参数、request和response都作为参数传给处理请求的ActionBean的execute方法。(4)Action调用业务逻辑方法,得到返回值,并返回Action-Forward对象。(5)控制权重新回到ActionServlet,ActionServlet根据Action返回的ActionForward对象转发到相应的JSP页面。(6)处理结果返回给浏览器。Struts的工作原理如图1所示:图1Struts的工作原理(四)订餐网的开发背景爱订饭订餐网的订单模块主要实现购物车技术完成用户的订餐状态,并且确认订餐后,购物车信息写入订单表和订单细节表。订餐成功后用户积分增加,相应的商家的订餐次数发生修改。客户也可以通过客户中心对订单进行查询,包括今日订单查询和历史订单查询。而购物车模块可以实现商品的添加、删除、修改、统计价格等功能。20 随着电子商务的进一步应用,订餐网的普及。为了适应订餐网的高访问量及高频率的点餐率,为了更好的实现服务、管理的网络化。使用MVC模式来提高网站后期的管理及更新,实现高度交互的网络环境,更好的提高订餐网的效率。基于MVC模式的订餐网订单模块主要实现购物车、动态导航条、订单查询、选择订单日期、订单列表的分页显示等功能。二、Idingfan网站的整体结构设计(一)订餐管理模块的数据库设计1、数据库逻辑结构设计本系统数据库主要采用MySQL数据库,系统数据库名为idingfan,共包含12张表。其中涉及到订单系统的数据表有5张。订单系统总体结构功能模块设计后,就要对数据库进行设计。系统使用关系数据库,而数据之间的结构关系可以用E-R表来分析。E-R图由实体、属性、实体之间的关系三部分组成。经分析总结出系统的实体大致包含以下几个:用户{用户编号、送餐地址、真实姓名、联系电话}餐馆{餐馆编号、餐馆地址、餐馆号码、送餐费}订单{订单编号、用户编号、订餐时间、订餐份数、餐馆简介}订单详细{订单详细编号、订单编号、菜品编号、总价格}菜品{菜品编号、餐馆编号、价格、菜品名称、菜品照片、菜品名字}以下是通过经订餐网整体系统实体分析,在Visio下设计的订餐网基本实体关系E-R图如图2所示:20 图2idingfan订餐网的实体基本关系E-R图2、数据库物理结构设计即尽可能减少数据冗余和重复,结构设计与操作设计相结合,数据结构要具有相对的稳定性,进行本系统中关系数据库表结构设计及代码设计。仅举一例如下:教务系统附件上传结构设计,就是基于对关系数据库中的各个关系模式都要满足一定的要求,以便使用。规范化设计后和附件上传相关的5个数据库表的具体结构设计相关数据如表3-1至表3-5,其中用户(customer)表的用户编号(id)字段与、订单(order)表中的用户ID(customer_id)相关联,订单详细表(orderdetail)表中菜品编号(menu_id)与菜品(menu)表中编号(id)的:20 表3-1用户(customer)表结构字段名称字段类型Null含义示例数据idInt否,自增主键列,用户id1emailVarchar(50)邮箱passwordVarchar(50)密码building_idInt外键列,写字楼idcompanynameVarchar(50)公司名称addressVarchar(50)接收人地址telInt联系电话nameVarchar(50)接收人姓名qqVarchar(50)QQmsnVarchar(50)MSN表3-2订单(order)表结构字段名称字段类型Null含义示例数据order_idInt否,自增主键列,订单编号1customer_idInt否外键列,用户idCustomeridmessageVarchar(50)是留言tipsdecimal(13,3)送餐费2.5表3-3订单详细(orderdetail)表结构字段名称字段类型Null含义示例数据idInt否,自增主键列,外码,订单编号order_idInt否外码,订单idmenu_idInt否外码,菜品idcountInt数值数量1表3-4餐厅(restaraunt)表结构字段名称字段类型Null含义示例数据idInt否,自增主键列,餐厅id1typeVarchar(50)所属菜系“中式快餐,广式烩饭,家常炒菜,日式料理”priceVarchar(50)价格范围introductionVarchar(50)餐厅简介takeawaytimeVarchar(100)外送时段addressVarchar(100)餐厅地址telVarchar(50)餐厅电话satisfactionVarchar(50)满意度laterateVarchar(50)迟到率noticVarchar(200)店内公告promotionVarchar(200)促销信息1:20 家家送从9月13日至11月31日,1.新品土鸡煲套餐+2元换购绿豆汤oneforsaleint是否一份起送是:1,否:0;表3-5菜品(menu)表结构字段名称字段类型Null含义示例数据idInt否主键列1menu_namevarchar(50)菜名茶树菇烧肉menu_typevarchar(50)菜品类型中式简餐pricedecimal(13,3)价格7menu_imgvarchar(50)菜品图片图片的存放路径restaraunt_idInt餐厅id,外键列由于数据库中所保存的数据是系统中非常重要的资源,所以在数据库设计时一定要注意库结构的安全性、完整性,并发控制与恢复,而一般的数据库管理系统都提供了一定的数据保护功能。3.数据库的连接设计本系统通过JDBC技术来实行与数据库的链接。在JDBC方式下,接口和现实相分离,JDBC驱动程序中的接口实现类来控制数据库的操作,通过JDBC,可以便捷的将SQL语句传送给具有JDBC驱动的任何一个数据库。JDBC链接数据库的相关代码如下:ConnDB.javapublicclassconnDB{publicConnectionconn=null;publicStatementstmt=null;publicResultSetrs=null;privatestaticStringpropFileName="connDB.properties";privatestaticPropertiesprop=newProperties();privatestaticStringdbClassName="org.gjt.mm.mysql.Driver";privatestaticStringdbUrl="jdbc:mysql://127.0.0.1:3306/idingfan?characterEncoding=gb2312";privatestaticStringdbUser="root";privatestaticStringdbPwd="";privatestaticvoidloadProperty(){try{prop.load(newFileInputStream(propFileName));20 //通过文件输入流对象加载Properties文件dbClassName=prop.getProperty("DB_CLASS_NAME");dbUrl=prop.getProperty("DB_URL","jdbc:mysql://127.0.0.1:3306/idingfan?characterEncoding=gb2312");dbUser=prop.getProperty("DB_USER","root");dbPwd=prop.getProperty("DB_PWD","");}catch(Exceptione){e.printStackTrace();}}publicstaticConnectiongetConnection(){Connectionconn=null;loadProperty();try{Class.forName(dbClassName).newInstance();conn=DriverManager.getConnection(dbUrl,dbUser,dbPwd);}catch(Exceptionee){ee.printStackTrace();}if(conn==null){System.err.println("id:DbConnectionManager.getConnection():"+dbClassName+"r :"+dbUrl+"r "+dbUser+"/"+dbPwd);}returnconn;}(二)订餐管理模块的页面设计1、购物车页面设计订餐网订单模块购物车页面设计与当前大部分网站的购物车页面有所不同,例如较为有名淘宝网站的购物车页面是独立设计的,而idingfan的购物车页面与商品在同一页面里,更加方便用户的点餐。本站的购物车页面使用javascript脚本语言控制购物车在页面位置,使购物车模块能随着鼠标的移动而上下位置,实现用户友好体验。如图3-1所示:20 图3-1订餐网购物首面2、订单查询页面设计订单查询页面分为今日订单查询及历史订单查询。订单查询页面设计采用框架结构设计,使用户在同一页面能同时查看今日订单、历史订单、积分情况、及积分兑换情况,同时该页面能修改用户基本信息、用户登录密码等功能。页面设计简洁、大方,用户能一眼了解网站的所有内容。如图金日订单查询页面3-2、历史订单查询页面3-3、积分兑换页面3-4所示:图3-2今日订单查询页面20 图3-3历史订单查询页面图3-4历史订单查询页面在商务网站总体功能的设计过程中,我们采用了软件工程中自顶向下的方法。按照系统的功能将相对复杂的系统划分为各个较为简单的功能模块,这样的过程也是从抽象到具体的过程,在模块划分的过程中遵循了“多内聚少耦合”的原则,使各个模块相互独立,既便于实现又易于维护。(三)爱订饭系统订餐模块的功能实现爱订饭订餐网的订单模块主要实现购物车技术完成用户的订餐状态,并且20 确认订餐后,购物车信息写入订单表和订单细节表。订餐成功后用户积分增加,相应的商家的订餐次数发生修改。查询用户今日订单及历史订单。本次订餐网订单系统的设计过程中通过对用户需求的分析,同时基于对网站总体功能设计,系统功能模块结构如图4-1所示:图4-1订餐网订单模块功能结构1、购物车模块购物车模块实现多种商品的买卖,通过购物车用户对商品进行数量添加、删除等操作。同时用户可以通过购物车查看所购买的所有商品的总价格。当用户点击确认购买商品后,将生成订单,同时将用户的订单信息写入订单详细表及订单表中。方便用户查询订单的状况以及所购买的所有商品的信息。2、订单查询模块订单查询模块分为今日订单查询和历史订单查询两部分,今日订单查询直接从后台读出今日订单的数据。而历史订单查询用户可以选择时间区间来查询订单记录。三、订单系统的购物车功能实现(一)购物车流程购物车的具体实现可采用这种形式:定义一个购物车的类,其属性为每一条记录CartItem,每条记录CartItem的价格Price,数量count以及若干方法的定义。20 1.列出商品的列表,使用户能够自由选择所需要的商品。2.当用户在点击“添加到购物车”的链接时,执行如下功能:检查用户购物车类是否存在。如不存在,则建立新的购物车类,并注册存入Session变量;在有用户购物车类存在的情况下,检查该类中是否有该商品。如存在,则商品数量相应增加1;如没有该商品,则将该商品添加到该类中。3.对放入用户购物车的各条记录CartItem可以进行数量的修改、删除及清空购物车等操作。具体流程实现如图5所示:图5购物车流程图(二)MVC模式应用——购物车功能实现MVC模型应用在订单模块的购物车功能中,方便了程序员的管理,对未来添加修改优化购物车搭建了一个良好便捷的平台。购物车的具体实现,具体操作如下:1、新建CartItem.java类。该文件定义了商品的属性,并且对各字段get、set方法。packagecom.idingfan.form;publicclassCartItem{privateintmenuid;privatedoubleprice;privateintcount;privateintrestraurantid;privateStringmenutype;privateintcustomerid;publicCartItem(intmenuid,intcount,doubleprice,StringmenuName){this.menuId=menuId;20 this.count=count;this.price=price;this.menuName=menuName;}publicintgetMenuid(){returnmenuid;}publicvoidsetMenuid(intmenuid){this.menuid=menuid;}publicdoublegetPrice(){returnprice;}publicvoidsetPrice(doubleprice){this.price=price;}publicintgetCount(){returncount;}publicvoidsetCount(intcount){this.count=count;}publicintgetRestraurantid(){returnrestraurantid;}publicvoidsetRestraurantid(intrestraurantid){this.restraurantid=restraurantid;}publicStringgetMenutype(){returnmenutype;}publicvoidsetMenutype(Stringmenutype){this.menutype=menutype;}publicintgetCustomerid(){returncustomerid;}publicvoidsetCustomerid(intcustomerid){this.customerid=customerid;}//计算当前该种商品的总价格publicdoublegetSum(){returnthis.count*this.price;}20 }2、创建Cart.java核心类。Cart类型的一个对象代表的是一个用户所使用的虚拟的购物车,这个类定义了能对虚拟购物车进行操作的方法。例如,向购物车添加商品,删除商品和计算购物车内商品的总价。packagecom.idingfan.form;importjava.util.ArrayList;importjava.util.Iterator;publicclassCart{/***保存所有CartItem对象的容器对象**/privateArrayListcart;publicCart(){cart=newArrayList();}/***返回包括说有已经购物车的商品信息的容器对象*@return当前的Items容器对象*/publicArrayListgetCart(){returncart;}/***添加一种商品到购物车中,如果这种商品在购物车以存在*@paramid所删除商品的编号*@return删除成功,返回true,否则返回flase**/publicvoidaddCartItem(CartItemitem){CartItemoldItem=null;if(item!=null){for(inti=0;iit=cart.iterator();doublesum=0.0;CartItemitem=null;while(it.hasNext()){item=it.next();sum=sum+item.getSum();}returnsum;}}3、AddCartAction.action。实现页面操作的页面添加商品的功能。packagecom.idingfan.action;importjava.sql.ResultSet;importjava.sql.SQLException;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importjavax.servlet.http.HttpSession;importorg.apache.struts.action.Action;20 importorg.apache.struts.action.ActionForm;importorg.apache.struts.action.ActionForward;importorg.apache.struts.action.ActionMapping;importcom.idingfan.DB.connDB;importcom.idingfan.form.Cart;importcom.idingfan.form.CartItem;importcom.idingfan.form.MemberForm;importcom.idingfan.form.MenuForm;publicclassAddCartActionextendsAction{publicActionForwardexecute(ActionMappingmapping,ActionFormForm,HttpServletRequestRequest,HttpServletResponseResponse)throwsException{HttpSessionsession=Request.getSession();Cartcart=(Cart)session.getAttribute("cart");if(cart==null){cart=newCart();session.setAttribute("cart",cart);}//获取商品参数intmenuId=Integer.parseInt((String)Request.getParameter("menuId"));StringmenuName=Request.getParameter("menuName");intcount=Integer.parseInt((String)Request.getParameter("count"));DoublePrice=Double.parseDouble((String)Request.getParameter("price"));//以该商品构建条目CartItemcartitem=newCartItem(Integer.getInteger("menuId"),1,Double.parseDouble("Price"),menuName);//添加该条目cart.addCartItem(cartitem);session.getAttribute("cart");//转发购物车显示对象returnmapping.findForward("partenerList2.jsp");4、RemoveCartAction.java。该类实现页面操作删除购物车中商品的功能packagecom.idingfan.action;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importjavax.servlet.http.HttpSession;importorg.apache.struts.action.ActionForm;20 importorg.apache.struts.action.ActionForward;importorg.apache.struts.action.ActionMapping;importcom.idingfan.form.Cart;publicclassRemoveCartAction{publicActionForwardexecute(ActionMappingmapping,ActionFormForm,HttpServletRequestRequest,HttpServletResponseResponse)throwsException{HttpSessionsession=Request.getSession();Cartcart=(Cart)session.getAttribute("cart");intmenuId=Integer.parseInt(Request.getParameter("menuId"));cart.removeCartItem(menuId);returnmapping.findForward("partenerList2.jsp");}}5、Struts-config.xml配置6、partnerList.jsp部分重点代码。删除四、订单系统实现中安全问题的解决方法(一)权限设置(会员是否登录)使用购物车时,系统将对该用户进行判断,该用户是否登录。由于订餐网有多个页面,并且每个页面都将进行用户的登录判断。传统的方法需要在每个页面进行判断,而servlet监听器则很好的解决了该问题。Servlet监听器Servlet监听器用于监听一些重要事件的发生,监听器对象可以在事情发生前、发生后可以做一些必要的处理,激发一些操作(二)用户信息安全(MD5加密技术)MD5加密技术中是单向加密,PassWord字段的信息是以二进制方式保存的,即使数据库被人取得,也不可能知道密码具体是什么意思,密码也就不会泄露,所以是一种可靠网站用户帐号的加密技术。由于它容易使用、性能好,而且提供了在Internets上的良好接口,对网站的应用开发提供了极大的便利。(三)目录共享安全(使用Struts结构.do)使用MVC模型所建的系统,当用户访问时所看的网址是以.do结尾,无法真正了解该系统网页设计架构。总结MVC模式适用于中小型网站,Struts框架使得网站后期的维护更加的便捷,订餐网的开发业务逻辑浮渣,存在大量的用户界面的应用系统。随着技术的进步、要求的提高我认为订餐网站还有待完善的功能如下:(一)用户登录模块由于网站诸多页面的用户验证,servlet监听器进行用户登录判断。(二)订单查询模块历史订单查询目前是由客户选择订餐时间的区间,再显示订餐的具体信息。考虑用户友好体验,可以考虑默认显示用户一周内的订餐详情。既可以满足用户的需求,也可以使商家了解到市场需求。参考文献:[1]高洪岩编著基于简单SSH的javaweb的设计与开发.第三版.北京:电子工业出版社,2008,1-236.20 [2]何文辉.基于JSP的动态网站开发技术[J].吉林省教育学院学报(学科版),2008,(08)[3]JeromeJosephraj.ArchitectStrutsapplicationsforwebservices[J/OL].IBM,2003-04.http://www.ibm.com/developerworks/webservices/library/ws-arcstruts/[4]PalaniyappanThiagarajan.BestpracticesforStrutsdevelopment[J/OL].IBM,2004-7.http://www.ibm.com/developerworks/web/library/wa-struts/[5]袁可可.JSP技术中使用MVC模式实现Web购物车.科技传播,2010-4(下):116-121.[6]傅进勇,邓少烽,李波.JSP网络编程[M].北京:电子工业出版社,2008,5.[7]王海鸥.基于Struts架构的网上购物电子商务平台的设计与实现.2010-02-05.[8]于光.基于MVC模式的Struts技术在Web应用中的研究与实现.电子政务,2009-10-14.[9]王先国.JSP动态网页编程技术[M].北京:电子工业出版社,2006,12.[10]续蕾.基于JSP的B/S模式网上商城购物系统的设计与实现[J].四川兵工学报,2009,(10).[11]辛峰.基于JSP的网上购物系统设计与实现哈尔滨职业技术学院学报2010/01.[12]陆聪慧.基于JSP技术的电子购物系统的设计[J].科技信息,2010,(16).[13]郭珍,王国辉.JSP程序设计教程[M].北京:人民邮电出版社,2008,5.[14]顾凌燕;蒋文蓉.Servlet与JSP技术在电子商务网站构建中的应用IT服务促进企业信息化——第十一届中国Java技术及应用交流大会文集2008.[15]彭浩;林翠云.基于JSP技术的三层结构商务网站构建福建电脑2008/10.20

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

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

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