网上鲜花订购系统_第1页
网上鲜花订购系统_第2页
网上鲜花订购系统_第3页
网上鲜花订购系统_第4页
网上鲜花订购系统_第5页
已阅读5页,还剩63页未读 继续免费阅读

下载本文档

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

文档简介

摘要伴随着INTERNET的蓬勃发展,网络购物中心作为电子商务的一种形式正以其高效、低成本的优势,逐步成为新兴的经营模式和理念,人们已经不再满足用途信息的浏览和发布,而是渴望着能够充分享受网络所带来的更加多的便利。本课题实现了客户网上鲜花的订购和管理员对网站一切的内部管理。其主要功能如下前台,客户可以通过浏览器在网上订购鲜花,主要通过对购物车操作,生成定单完成交易。后台,管理员可以对网上的鲜花进行增、删、改和查找,可以对用户的信息和用户的留言进行管理,还可以对管理员包括用户生成的定单进行管理。根据不同的业务需求,系统可以动态地设置管理员的权限。该系统基于MVC架构下的WEB开发,开发环境使用ECLIPSE,服务器采用APACHETOMCAT,开发语言采用JAVA与JAVA联系的语言JAVASCRIPT、JSP、SERVLET、STRUTS、HIBERNATE和JDBS,后台数据库采用MYSQL。主要运用一系列数据访问的相关技术以及WEB开发的的相关技术等。软件界面友好,使用方便。本论文主要介绍该系统的2个重点模块购物车的管理和管理员的管理。介绍WEB开发过程,包括需求分析、总体设计、详细设计、测试四个阶段。主要介绍业务层和持久层的开发。关键词网上鲜花订购、JAVA、MYSQL、MVC、购物车、网上订购、JSP、STRUTS、HIBERNATE、WEBABSTRACTFOLLOWSTHEINTERNETVIGOROUSDEVELOPMENT,THENETWORKSHOPPINGCENTERISTAKINGTHEELECTRONICCOMMERCEHIGHLYEFFECTIVEONEFORMBYITS,THELOWCOSTSUPERIORITY,BECOMESTHEEMERGINGBUSINESSMODELANDTHEIDEAGRADUALLY,THEPEOPLEALREADYNOLONGERSATISFIEDTHEUSEINFORMATIONTHEBROWSINGANDTHEISSUE,BUTWASLONGINGFORCANENJOYMORECONVENIENCESWHICHFULLYTHENETWORKBRINGSTHISTOPICHASREALIZEDTHECUSTOMERONLINEFRESHFLOWERSORDERANDTHEMANAGERTOTHEWEBSITEALLINTERNALMANAGEMENTITSMAJORFUNCTIONISASFOLLOWSTHEONSTAGE,THECUSTOMERMAYTHROUGHTHEBROWSERINONLINEORDERFRESHFLOWER,MAINLYTHROUGHTOTHESHOPPINGCARTOPERATION,THEPRODUCTIONORDERFORMCOMPLETETHETRANSACTIONTHEBACKSTAGE,THEMANAGERMAYCARRYONTOONLINEFRESHFLOWERINCREASES,DELETES,CHANGESANDSEARCHES,MAYCARRIESONTHEMANAGEMENTTOUSERSINFORMATIONANDUSERSMESSAGE,BUTMAYALSOCARRYONTHEMANAGEMENTTOTHEMANAGERINCLUDINGTHEUSERPRODUCTIONORDERFORMACCORDINGTOTHEDIFFERENTSERVICEDEMAND,THESYSTEMMAYDYNAMICESTABLISHMANAGERSJURISDICTIONUNDERTHISSYSTEMSBASEDONMVCCONSTRUCTIONWEBDEVELOPMENT,THEDEVELOPMENTENVIRONMENTUSESECLIPSE,THESERVERUSESAPACHETOMCAT,THEDEVELOPMENTLANGUAGEUSESJAVAANDTHEJAVARELATIONLANGUAGEJAVASCRIPT,JSP,SERVLET,STRUTS,HIBERNATEANDJDBS,THEBACKSTAGEDATABASEUSESMYSQLMAINLYUTILIZESASERIESOFDATAACCESSINGTHECORRELATIONTECHNIQUEASWELLASTHEWEBDEVELOPMENTCORRELATIONTECHNIQUEANDSOONTHESOFTWARECONTACTSURFACEISFRIENDLY,EASYTOOPERATETHEPRESENTPAPERMAINLYINTRODUCESTHISSYSTEMS2KEYMODULESHOPPINGCARTSMANAGEMENTANDMANAGERSMANAGEMENTINTRODUCEDTHATTHEWEBPERFORMANCEHISTORY,INCLUDINGTHEDEMANDANALYSIS,THESYSTEMDESIGN,THEDETAILEDDESIGN,TESTSFOURSTAGESMAININTRODUCTIONSERVICELEVELANDLASTINGLEVELDEVELOPMENTKEYWORDONLINEFRESHFLOWERORDER,JAVA,MYSQL,MVC,SHOPPINGCART,ONLINEORDER,JSP、STRUTS、HIBERNATE、WEB1前言42系统开发的环境和平台介绍521LINUX系统522ECLIPSE工具623TOMCAT服务器624LINUX系统下配置JDK和TOMCAT725MYSQL83系统开发使用的技术931JAVA语言932JSP933STRUTS1034HIBERNATE1135SERVLET124总体设计思想与系统的需求分析1241设计思想1242系统功能模块设计1343数据库需求分析1444数据库表的ER图1646系统类的设计2047系统关系用例流程图215系统的详细分析2251前台购物车22511功能介绍22512功能实现2452后台管理31521功能介绍31522功能实现326软件测试5061前台测试购物车模块5062后台测试517结束语51附录一译文SESSION和事务范围521中文522英文60附录二参考文献721前言网上鲜花订购系统是我组的毕业设计以及毕业论文的题目,在目前由于互连网的日益普及和计算机在管理领域的广泛应用,信息系统的开发与应用获得惊人的发展,电子商务也应运而生,并得到迅速的推广,给当今的传统型企业或者现代型企业都带来了巨大的冲击和无限的商机,INTERNET及全球信息网的应用的快速发展,为商家提供了一个无国界、无地域、无时间的便利环境来拓展商务,实施电子商务是提高企业、商家竞争力的有效手段。在现代经济的日益发展下,人民的精神生活也不断增长,鲜花作为人民精神生活一部分,它的需求量也不断增大,很多地方和国家都以鲜花产业当作自己国家的主要经济来源,它和旅游业一样有异曲同工之处,荷兰的鲜花产业就是一个很好的例子。在我国鲜花产业也在高速的发展,出现网上鲜花订购系统也是经济发展的必然,由于鲜花有生命周期短的特性,所以在订购、储存、运送方面都要有很全面的市场调查。网上鲜花订购系统为实现对商业零售企业提供信息化管理。为保证系统的可维护性、强壮性,系统采用B/S体系结构,设计基于WEB技术的开发应用系统和基于MYSQL的数据库系统,通过JSP技术来开发动态页面。我们所做的这个网上鲜花订购系统,就是基于电子商务的网上订购系统,它的目标是实现网上购物,而这个物品就是鲜花,这个系统分为6个模块1、鲜花管理模块,2、客户信息管理模块,3、订单管理模块,4、购物车管理模块,5、管理员管理模块,6、客户留言版管理模块。客户可以在网上注册成用户,然后通过购物车选择你所要的鲜花、也可以通过定单订购我们所暂时没有或数量不够的鲜花,管理员是来管理注册的客户,客户也有个自的级别,不同的级别对应的优惠不同,同时这个系统也给用户提供了留言的版面。在这6个模块中我所做的是管理员管理模块和购物车管理模块。在管理员管理的模块,能做到对鲜花品质,鲜花的种类和对用户进行管理。对管理员的管理中有2类管理员超级管理员和超级管理,超级管理员中可以管理一般管理员的信息和权限。在购物车管理模块中,对用户的除订单外所有鲜花零销售的管理。所用平台是LINUX、APACHETOMCAT服务器,MYSQL数据库所用的技术有JAVASCRIPT、JSP、STRUTS、HIBERNATE、JDBC2系统开发的环境和平台介绍21LINUX系统LINUX是一个计算机操作系统,计算机操作系统有好多,比如WINDOWSMACOSUNIXBSD等。所以LINUX在地位上和WINDOWS是平行的,都是计算机操作系统。LINUX以它的高效性和灵活性著称。它能够在PC计算机上实现全部的UNIX特性,具有多任务、多用户的能力LINUX之所以受到广大计算机爱好者的喜爱,主要原因有两个,一是它属于自由软件,用户不用支付任何费用就可以获得它和它的源代码,并且可以根据自己的需要对它进行必要的修改,无偿对它使用,无约束地继续传播。另一个原因是,它具有UNIX的全部功能,任何使用UNIX操作系统或想要学习UNIX操作系统的人都可以从LINUX中获益。使用LINUX,用户可以设置目录和文件的权限,以便允许或拒绝其他人对其进行访问。LINUX目录采用多级树形结构,图11表示了这种树形等级结构。用户可以浏览整个系统,可以进入任何一个已授权进入的目录,访问那里的文件。文件结构的相互关联性使共享数据变得容易,几个用户可以访问同一个文件。LINUX是一个多用户系统,操作系统本身的驻留程序存放在以根目录开始的专用目录中,有时被指定为系统目录。图11中那些根目录下的目录就是系统目录。LINUX采取了许多安全技术措施,包括对读、写进行权限控制、带保护的子系统、审计跟踪、核心授权等,这为网络多用户环境中的用户提供了必要的安全保障。在现在的大多数公司的软件开发中都选择使用LINUX系统就是鉴于它的安全性和可靠习惯性。22ECLIPSE工具ECLIPSE是一个开放源代码的、基于JAVA的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,ECLIPSE附带了一个标准的插件集,包括JAVA开发工具。ECLIPSE是SUN公司为推行JAVA语言,而免费推出的一种强大的开发工具。其优点免费、程序代码排版功能、有中文化包、可增设许多功能强大的外挂、支持多种操作系统WINDOWS、LINUX、SOLARIS、MACOSX等等。我们使用的JDK50系列。23TOMCAT服务器TOMCAT是一个免费的开源的SERLVET容器,它是APACHE基金会的JAKARTA项目中的一个核心项目,由APACHE,SUN和其它一些公司及个人共同开发而成。由于有了SUN的参与和支持,最新的SERVLET和JSP规范总能在TOMCAT中得到体现。TOMCAT被JAVAWORLD杂志的编辑选为2001年度最具创新的JAVA产品,可见其在业界的地位。与传统的桌面应用程序不同,TOMCAT中的应用程序是一个WAR(WEBARCHIVE)文件。WAR是SUN提出的一种WEB应用程序格式,与JAR类似,也是许多文件的一个压缩包。这个包中的文件按一定目录结构来组织通常其根目录下包含有HTML和JSP文件或者包含这两种文件的目录,另外还会有一个WEBINF目录,这个目录很重要。通常在WEBINF目录下有一个WEBXML文件和一个CLASSES目录,WEBXML是这个应用的配置文件,而CLASSES目录下则包含编译好的SERVLET类和JSP或SERVLET所依赖的其它类(如JAVABEAN)。通常这些所依赖的类也可以打包成JAR放到WEBINF下的LIB目录下,当然也可以放到系统的CLASSPATH中,但那样移植和管理起来不方便。在启动TOMCAT时,是运行TOMCAT的BIN目录下的STARTUPSH(WINDOWS中使用STARTUPBAT)判断TOMCAT是否启动成功,可以在浏览器的地址栏中使用HTTP/LOCALHOST8080/或HTTP/1270018080/可以访问到TOMCAT的主页就是启动成功了。要想停止TOMCAT服务器要使用SHUTDOWNSH(WINDOWS中使用SHUTDOWNBAT),如果直接关闭启动窗口,就会造成8080端口占用错误,这时可以在使用SHUTDOWNSH关闭一下服务器。STARTUPSH,SHUTDOWNSH,SHUTDOWNBAT,STARTUPBAT这些文件其实是一些脚本文件用来执行大量的命令,也就是大量JAVA命令。TOMCAT的默认监听端口是8080端口,当接受到每一个连接请求,就会为其分配一个线程。TOMCAT可以识别的资源只有在WEBAPPS文件夹下,WEBAPPS也就是WEB应用文件夹,WEBAPPS下的文件夹这些文件夹中存放的就是WEB应用,WEB应用是有格式规范的,每个WEB应用的文件夹下都要有WEBINF文件夹,WEBINF文件夹下有CLASSES,和一个WEBXML文件,一些使用到的类文件放在CLASSES中。TOMCAT中配置了ROOT缺省应用,也就是在不指定的情况下会默认访问这个应用。24LINUX系统下配置JDK和TOMCATWEB服务器,这里的服务器不是硬件概念,而是软件,常用的WEB服务器有TOMCAT,JBOSS等,我们所用到的TOMCAT是一个开源的服务器,TOMCAT是一个用JAVA语言编写的WEB服务器,所以需要有相应的JAVA运行环境,也就是JVM,还要配置TOMCAT的具体路径。在LINUX系统中,先新建一个终端,到当前目录下,打“VIBASH_PROFILE”进入配置环境的文件中,会看见其中的一些配置,只需要配置上JDK和TOCAT的运行环境就就可以了。配置JDK如下JAVA_HOME/OPT/JDK150_14后面是JDK路径,BIN的上一层目录在PATH后面追加JDK的BINPATHPATHHOME/BINJAVA_HOME/BIN在配置文件的结束上,保存就可以了EXPORTJAVA_HOME。这样就可以在LINUX的任何位置包括ECLIPSE中编译JAVA文件了再配置TOMCAT服务器的时候也一样,只要把TOMCAT的BIN配置到系统中就可以了,配置如下CATALINA_HOME/XXXX/XXX(TOMCAT的绝对路径WINDOWS中XXXXXXX)PATHPATHHOME/BINJAVA_HOME/BINCATALINA_HOME/BINEXPORTCATALINA_HOME这样一来就可以使用ECLIPSE和TOMCAT服务器了。配置完成,可以测试是否配置完成,可以在浏览器的地址栏中使用HTTP/LOCALHOST8080/或HTTP/1270018080/可以访问到TOMCAT的主页就是启动成功了。就可以看到以下内容25MYSQLMYSQL是一个数据库管理系统,一个数据库是一个结构化的数据集合。它可以是从一个简单的销售表到一个社团网络的庞大的信息集合。如果要添加、访问和处理存储在一个计算机数据库中的数据,你就需要一个像MYSQL这样的数据库管理系统。从计算机可以很好的处理大量的数据以来,数据库管理系统就在计算机处理中和独立应用程序或其他部分应用程序一样扮演着一个重要的角色。在LIUNX下安装MYSQL,开始要将MYSQL的文件导入,在MYSQL的目录下,使用命令CONFIGURE,这样一来MYSQL就启动了,在到其BIN目录下,登陆就可以了。下面是部分MYSQL的命令连接MYSQL格式MYSQLH主机地址U用户名P用户密码修改密码格式MYSQLADMINU用户名P旧密码PASSWORD新密码显示数据库列表SHOWDATABASES建库CREATEDATABASE库名建表USE库名;显示表中的记录SELECTFROM表名插入字段INSERTINTOTEACHERVALUES,GLCHENGANG,深圳一中,197610103系统开发使用的技术31JAVA语言要说JAVA语言,不得不先述说说SUN公司。SUN公司的名称,实际为“STANFORDUNIVERSITYNETWORK”,中文意思为斯坦福大学网络。JAVA语言的特点纯面向对象、跨平台“WRITEONCE,RUNANYWHERE”一次编译到处运行、简单JAVA语法去掉了指针,运算符重载,多重继承等;有垃圾回收器程序员只负责对象的创建,垃圾回收器负责对象销毁和资源释放,一般只会在内存空间不够的情况下进行资源回收。JAVA程序的开发过程A、JAVA源代码(JAVA)JAVA编译器JAVA字节码(CLASS)JAVA解释器CPU(虚拟机屏蔽底层操作系统的差异)执行JAVA字节码B、计算机编译一个JAVA程序的过程1启动JVM。2通过JAVA_HOMEJRELIB目录下找到对应的类。3如果的2不找不到则在环境变量中配置的CLASSPATH配置的路径中找类。包是JAVA的一个面向用户最方便的地方。在该系统中,底层的实现都是通过JAVA代码。32JSP1JSP的特点(1)JSP里面可以嵌入JAVA代码(2)在运行的时候,JSP被容器翻译成为一个SERVLET,放在APACHETOMCAT5520WORKCATALINALOCALHOST目录下面(3)不需要再在配置文件里面配置(4)文件被修改之后,自动进行重新编译2跟SERVLET的比较1JSP以文本为主,主要用于画界面2JSP可以人工扩充,而SERVLET是固定的3JSP内核是SERVLET,所以也是基于HTTP协议的请求响应循环4由HTML(CSS、XML)、JAVACODE、JSP标签组成5JSP有自定义标签(ASP没有)6CGI和SERVLET以代码为主,代码中嵌文本;JSP中文本中嵌代码7JSP擅长于表现,而短于逻辑;而SERVLET一般用作CONTORLER和DIAPATCH控制和流转;所以在JSP中写界面元素,而逻辑方面由SERVLET完成。8JSP不需要写JAVA文件、不需要编译和配置,它被封装到了容器内部9JSP代码不可重用3JSP的运行过程(1)翻译(转换)阶段JSPJAVA(2)编译阶段JAVACLASS(3)运行阶段运行编译后生成的CLASS文件。以上三个阶段均由JSP引擎来执行;JSP引擎由WEB服务器所提供,它实际上就是一个SERVLET(该SERVLET在CONF/WEBXML中配置)4、JSP的脚本元素静态HTML、JAVASCRIPT/声明(DECLARATION)或JSP/代码段SCRIPTLETS或代码/注释COMMENTS或或动态表达式EXPRESSIONS或/指令DIRECTIVES或/非代码动作ACTION33STRUTSSTRUTSMVC框架WEB应用的分层交互层,表现数据,收集数据,也就是视图层,接受请求,通过处理层完成相应的响应。(V,C)处理层,完成数据的处理,也就是业务层(M)。MVC设计模式(应用观察者模式的框架模式)MMODEL,模型,操作数据的业务处理层。VVIEW,示图,采集和显示数据,为业务层提供数据,表现业务层输出的数据,只关心数据的类型,不管新数据的来源。CCTRL,控制器,也就是视图层和模型层桥梁,控制数据的流向,接受视图层发出的事件,并重绘视图。MVC框架的实现模型模型一JSPJAVABEAN,JSP既充当控制,又充当视图,以页面为核心,JSP使用JSPUSEBEAN,他不能够实现不同的页面,显示不同的数据,需要借助于中间类来调用JAVABEAN的方法才能实现。模型二JSPSERVLETJAVABEAN,以控制为核心,JSP只负责显示和收集数据,SEVLET,连接视图和模型,将视图层数据,发送给模型层,JAVABEAN,分为业务类和数据实体,业务类处理业务数据,数据实体,承载数据,基本上大多数的项目都是使用这种MVC的实现模式。STRUTSMVC框架STRUTS是使用MVC的实现模式二来实现的,也就是以控制器为核心。STRUTS提供了一些组件使用MVC开发应用程序MODELSTRUTS没有提供MODEL类。这个商业逻辑必须由WEB应用程序的开发者以JAVABEAN或EJB的形式提供VIEWSTRUTS提供了ACTIONFORM创建FORMBEAN,用于在CONTROLLER和VIEW间传输数据。此外,STRUTS提供了自定义JSP标签库,辅助开发者用JSP创建交互式的以表单为基础的应用程序,应用程序资源文件保留了一些文本常量和错误消息,可转变为其它语言,可用于JSP中。CONTROLLERSTRUTS提供了一个核心的控制器ACTIONSERVLET,通过这个核心的控制器来调用其他用户注册了的自定义的控制器ACTION,自定义ACTION需要符合STRUTS的自定义ACTION规范,还需要在STRUTSCONFIGXML的特定配置文件中进行配置,接收JSP输入字段形成ACTIONFORM,然后调用一个ACTION控制器。ACTION控制器中提供了MODEL的逻辑接口。34HIBERNATEHIBERNATE一种ORM工具,是连接JAVA应用程序和关系数据库的中间件,这是对JDBC的封装,主要负责JAVA对象的持久化操作1、ORM(OBJECTRELATIONMAPPING)对象关系映射。2、对象持久化,把数据保存在永久的存储介质中(数据库)。HIBERNATE不仅仅管理JAVA类到数据库表的映射(包括JAVA数据类型到SQL数据类型的映射),还提供数据查询和获取数据的方法,可以大幅度减少开发时人工使用SQL和JDBC处理数据的时间。HIBERNATE的目标是对于开发者通常的数据持久化相关的编程任务,解放其中的95。对于以数据为中心的程序来说,它们往往只在数据库中使用存储过程来实现商业逻辑,HIBERNATE可能不是最好的解决方案对于那些在基于JAVA的中间层应用中,它们实现面向对象的业务模型和商业逻辑的应用,HIBERNATE是最有用的。不管怎样,HIBERNATE一定可以帮助你消除或者包装那些针对特定厂商的SQL代码,并且帮你把结果集从表格式的表示形式转换到一系列的对象去。1、配置环境,加载HIBERNATE的JAR文件,以及连接数据库连接使用的JAR文件,并配置CLASSPATH环境变量。HIBERNATE中所需要的各JAR的作用2、写HIBERNATE所需的配置文件,HIBERNATECFGXML,XXXXXHBMXML。3、写POJO类。4、调用HIBERNATEAPI。35SERVLETSERVLET,可以实现动态的页面,可以针对不同的请求作出不同的响应,可以实现页面的流转,SERVLET可以充当MVC模式中的CTRL模块,他可以控制信息的流向。SERVLET,服务器端的小程序,它是相对于APPLET而言的,APPLET是客户端小程序。SERVLET,是接受来自网络的请求(FORM表单,以及其他的请求),并对不同请求作出不同的响应。SERVLET,是基于HTTP协议的,是运行在WEB服务器中的程序。这里要提出一个容器的概念。SERVLET是运行在WEB容器中,在后面会详细地讲解,这个WEB容器可以控制SERVLET对象的生命周期,控制请求由SERVLET对象处理。4总体设计思想与系统的需求分析41设计思想该系统是基于B/S架构下的多层结构应用系统。在多人合作分工的情况下,分层是一种必然,在使用STRUTS时,必然要使用其MVC的结构框架。其基本分层图如下图。在这个系统中,基本的思路很简单,就是现在数据库中创建要使用的属性,在持久层调用调用数据库中的数据。而业务逻辑层再调用持久层的方法,来在表述让客户通过浏览器来体现。在数据库层,就是使用MYSQL的建表方法来在数据库中创建底层的数据模型。在持久层,使用了HIBERNATE语言来调用,数据库中的数据。在表述层,使用了JSP和STRUTS来体现系统所要描述的内容。42系统功能模块设计从图中可以看出,网上购物系统可以分为前台和后台两个部分,前台部分由用户使用,主要包括用户注册,生成订单,购物车管理,查看购物车,查看留言,网上鲜花购物系统前台功能后台功能用户管理购物车管理订单管理个人资料管理留言板管理用户信息管理公告信息管理管理员管理处理订单鲜花管理管理员身份验证订购产品,订单查询和发布留言7个模块;后台部分由管理员使用,主要包括管理员身份验证,鲜花管理,处理订单,用户信息管理,管理员管理和公告信息管理5个模块。43数据库需求分析一个总体的数据库的数据如下1客户信息,是指一个客户的属性信息,具体包括以下内容1姓名2密码3地址4EMAIL5电话号码6邮编7所拥有的所有订单2商品信息,系统中的商品的信息应该包括1名称2品种3商品描述4打折率5价格6打折率后价格7数量8颜色3、订单信息该包括1订单号2创建时间4、订单项1商品ID2数量3总价5、管理员1姓名2密码3工号4邮箱5家庭电话6手机号7权限6、留言1日期2标题3内容数据库的设计通常是以一个已经存在的数据库管理系统为基础的,常用的数据库管理系统有MYSQL,SQLSERVER,ORACLE等。我采用的是MYSQL。我完成的是里面的前台购物车管理和后台的管理。由于对用户、鲜花、定单和公告管理都是借助前台的数据库,我完成的模块中,就3张表,管理员的信息表、权限表以及管理员权限的关联表。ADMIN列名类型长度描述AIDINTEGER11对象IDADMINIDVARCHAR32管理员工号ADMINNAMEVARCHAR32管理员姓名PASSWORDVARCHAR32密码EMAILVARCHAR32邮箱地址HOMEPHONEVARCHAR32家庭电话PHONEVARCHAR32手机OPERATE列名类型长度描述OIDINTEGER11对象IDOPERATEIDVARCHAR32权限的IDOPERATENAMEVARCHAR32权限的名称ADMIN_OPERATE列名类型长度描述OIDINTEGER11权限对象的IDAIDINTEGER11管理对象的IDOID与AID是关联主健在MYSQL中新建一个DATABASE名CREATEDATABASESKY再到该库下,USESKY建表如下2张多对多映射表和一张关联表建表语句如下CREATETABLEADMINAIDINTEGER11AUTO_INCREMENT,ADMINIDVARCHAR32NOTNULL,ADMINNAMEVARCHAR32NOTNULL,PASSWORDVARCHAR32NOTNULL,EMAILVARCHAR32,HOMEPHONEVARCHAR32,PHONEVARCHAR32,PRIMARYKEYAIDCREATETABLEOPERATEOIDINTEGER11AUTO_INCREMENT,OPERATEIDVARCHAR32,OPERATENAMEVARCHAR32,PRIMARYKEYOIDCREATETABLEADMIN_OPERATEAIDINTEGERREFERENCESADMINAID,OIDINTEGERREFERENCESOPERATEOID,PRIMARYKEYAD,OID这3张表需要以下数据项管理员信息表OID数据库自动生成的ID,ADMINID给管理员的ID,ADMINNAME管理员登陆名,PASSWORD登陆密码,EMAIL邮箱,HOMEPHONE家庭电话,PHONE手机管理权限表AID数据库自动生成的ID,OPERATEID管理权限的ID,OPERATENAME管理权限的名称44数据库表的ER图ADMINPADDWORDEMAILADMINNAMEADMINIDHOMEPHONEPHONE这是管理员的数据库的ER图,上面有他的基本的一些属性,包括管理员的工号、姓名、密码、邮箱地址、家庭电话和手机号码。在这张创建的表中,还有一个ID的基本属性。这是表的主健,同时也为后面的关系外健作唯一的标识。USERHOMEPHONEUSERNAMEPOSTCODEPASSWORDOFFICEPHONECELLPHONEEMAILADDRESS这是用户的数据库的ER图,上面有他的基本的一些属性,包括用户的姓名、密码、邮箱地址、家庭电话、手机号码、地址和邮编。在这张创建的表中,还有一个ID的基本属性。这是表的主健,同时也为后面的关系外健作唯一的标识。这是管理员权限的数据库的ER图,上面有他的基本的一些属性,包括管理员权限的ID和权限的名称。在这张创建的表中,还有一个ID的基本属性。这是表的主健,同时也为后面的关系外健作唯一的标识。OPERATEOPERATEIDOPERATENAME这是用户定单的数据库的ER图,上面有他的基本的一些属性,包括用户定单的号码和生成定单的日期。在这张创建的表中,还有一个ID的基本属性。这是表的主健,同时也为后面的关系外健作唯一的标识。这是鲜花的数据库的ER图,上面有他的基本的一些属性,包括了鲜花的名称、种类、颜色、数量、价格、打折率、现价和鲜花的基本信息。在这张创建的表中,还有一个ID的基本属性。这是表的主健,同时也为后面的关系外健作唯一的标识。这是定单条目的数据库的ER图,上面有他的基本的一些属性,包括条目的号ORDERORDERCOSTSTART_DATEFLOWERFLOWERNAMECOLORINFORMATIONTYPENAMEPRICEBALANCENOWPRICENUMBERITEMCOSTNUMBER码和数量。在这张创建的表中,还有一个ID的基本属性。这是表的主健,同时也为后面的关系外健作唯一的标识。这张图是描述管理员和管理员权限之间的关系。图上很明显的标识了管理员和其权限之间的多对多的关系。一个管理员可以有多个权限,同样一个权限也可以有多个管理员进行操作。在管理员之间一张管理员和权限之间的关联这两者之间的表,在后面的对管理员的权限进行操作的时候,就是对两者之间的那张表进行操作。特别注意的是,在持久层的HIBERNATE的配置文件中,要注意,由于对多对多的关联表进行操作,在对其进行的增加、删除和查找过程中,我们是对关联表进行的操作,不是对权限或者管理的表进行操作的。CREATECREATECREATECREATEAD_OPADMINOPERATENMUSERORDERMESSAGEITEMFLOWERM11MMNM1这是用户、鲜花、定单、条目和留言之间的关联图。用户留言之间是一对多的关系,一个用户可以有多个留言,一个留言只可能是一个用户的。用户定单之间也是一对多的关系,一个用户可以拥有多个定单,同样一个定单也只可能被一个用户所拥有。定单条目之间是一个一对多的关系,一个定单中存在多个条目,但是唯一标识的条目只可能出现在一个定单中。条目鲜花之间是多对多的关系,在一个条目中可以出现多种鲜花和一个鲜花的多个数量,同样一种鲜花也可以出现在多个条目中。46系统类的设计在系统的类中,一共有9个实体类,它们之间存在不同的联系关系。在持久层中通过HIBERNATE映射关系能清楚的表示出它们之间的关系。具体的关系图如下47系统关系用例流程图5前台的用例流程图后台的关系用例流程图5系统的详细分析51前台购物车511功能介绍我完成的是前台其中的一个模块购物车。它是在用户登陆后,才可以购物。在WEB层的CARTACTION方法中,我规定了,只有用户登陆后才在SESSION中给用户一个购物车,如果用户不登陆,在选择把鲜花放到购物车中的时候,会出现给你报错的画面提示你的没有SESSION或SESSION已经过期。出现过期是在TOMCAT中设置了,如果半小时你没有作任何事,服务器会主动结束这次,如果你想往你的购物车中增加商品会报告你的SESSION已经过期。如果你已经登陆,并且SESSION没有过期,那么你就可以安心的往你的购物车增加商品或者对你的购物车进行操作。一个前台的运行过程,基本的流程如下图的说明。它会在你向购物车中出放你想要的鲜花的时候判断你是否已经登陆了。上面我已经说到,只有用户登陆后服务器才会给用户一个购物车。但是我对这个的实现没有通过过滤器,而是在ACTION方法中就给予了判断,这样的方法有好处,也有坏处。好处在于这个简单的判断可读性很好,而且减少代码量,坏处是这样可维护性就变差了。512功能实现用户想要对购物车进行任何操作,都要通过浏览器。表现层的实现我选择了同JSP。先来说下我完成该模块的思想。由于购物车不要经过数据库,所以我要得到是前面主界面的ID来得到这朵鲜花的对象,我先把该对象放在一的MAP的集合中。然后在传给CARTFLOWERS这个CART的SET的集合中,在JSP的界面中,我就是通过CARTFLOWERS这个表现在WEB层的,再对购物车中的鲜花进行修改的时候,就是现修改MAP这个集合再来修改CARTFLOWERS这个SET集合。在开始的时候,我只修改了MAP集合的值,没有修改CARTFLOWERS,就出现了一定的BUG,在不断修改中我发现这个BUG。1向购物车添加鲜花向购物车中添加鲜花,先从表现层说起,在WEB层中,我的ACTION继承的是DISPATCHACTION,之所以选择使用DISPATCHACTION我考虑到以下原因DISPATCHACTION类是ACTION类的子类,他提供了有实现的EXECUTE方法。我们写的自定义ACTION类,可以继承DISPATCHACTION类,但不要覆盖EXECUTE方法,可以在自定义类中写反回值和参数表都与EXECUTE方法相同的方法,可以通过在STRUTSCONGFIGXML中为这个ACTION的配置中添加一个参数,来判断调哪一个方法,实际上DISPATCHACTION类就是通过反射机制,通过FORM中参数调用了自定义ACTION中的方法,当然这些方法的定义要符合规范,使用继承DISPATCHACTION类的自定义的ACTION类,也就会共享同一的ACTION路径。所以在STRUTSCONFIGXML的配置文件中,只要在一个PATH路径中配置就可以了。具体的实现方法如下PUBLICACTIONFORWARDADDCARTACTIONMAPPINGMAPPING,ACTIONFORMFORM,HTTPSERVLETREQUESTREQUEST,HTTPSERVLETRESPONSERESPONSETHROWSEXCEPTIONHTTPSESSIONSESSIONREQUESTGETSESSIONFALSESTRINGMESSAGE“IFSESSIONNULLMESSAGE“该SESSION已经过期,或者你没有登录,请重新登录请返回“REQUESTSETATTRIBUTE“MESSAGE“,MESSAGERETURNMAPPINGFINDFORWARD“ERROR“USERUSERUSERSESSIONGETATTRIBUTE“USER“IFUSERNULLMESSAGE“该SESSION已经过期,或者你没有登录,请重新登录请返回“REQUESTSETATTRIBUTE“MESSAGE“,MESSAGERETURNMAPPINGFINDFORWARD“ERROR“CARTCARTCARTSESSIONGETATTRIBUTE“CART“IFCARTNULLCARTNEWCART在向购物车添加鲜花,先要判断下,这是不是一个用户的SESSION,如果不是的话,就会提示你的SESSION不对。这个界面是CART的主界面,系统的主界面通过一个方法和一个FLOWER的ID来过滤传递到CART的主界面/HTML/ADDCARTDOMETHODADDCARTFLOWERSPUTFLOWERGETID,CARTFLOWERPUBLICVOIDADDCARTFLOWERFLOWER,INTNUMBERCARTFLOWERCARTPRODUCTNEWCARTFLOWERFLOWER,NUMBERFLOWERSPUTFLOWERGETID,CARTPRODUCT上面是添加一个具体的对象,在添加的过程中,有一个特别要注意,就是,总的价格,我在CARTFLOWER类也定义了得到总的价格的方法,代码如下PUBLICDOUBLEGETCOSTSETKEYSFLOWERSKEYSETITERATORITKEYSITERATORDOUBLECOST00WHILEITHASNEXTINTEGERFLOWERIDITNEXTCARTFLOWERCARTFOLWERCARTFLOWERFLOWERSGETFLOWERIDDOUBLEPRICECARTFOLWERGETCOSTCOSTPRICERETURNCOST2删除购物车中鲜花删除鲜花,同样和添加鲜花在表现层中通用一个ACTION的类,具体的方法在类中定义不同。在ACTION类中,删除的代码如下/删除购物车中鲜花PUBLICACTIONFORWARDREMOVEACTIONMAPPINGMAPPING,ACTIONFORMFORM,HTTPSERVLETREQUESTREQUEST,HTTPSERVLETRESPONSERESPONSETHROWSEXCEPTIONHTTPSESSIONSESSIONREQUESTGETSESSIONFALSEINTEGERFLOWERIDINTEGERPARSEINTREQUESTGETPARAMETER“ID“CARTCARTCARTSESSIONGETATTRIBUTE“CART“CARTREMOVECARTFLOWERIDSESSIONSETATTRIBUTE“CART“,CARTRETURNMAPPINGFINDFORWARD“REMOVECART“方法的思想就是,先通过ID得到鲜花的对象,再把从CARTFLOWER删除,删除后,在把它从得到保存鲜花集合的SESSION给删除了。在STRUTSCONFIGXML的配置文件中/删除鲜花操作的虚拟路径和删除成功所转发的绝对路具体的实现还是调用了CARTFLOWER类中的方法,类中的实现的代码如下PUBLICVOIDREMOVECARTFLOWERFLOWERTHISFLOWERSREMOVEFLOWERGETIDPUBLICVOIDREMOVECARTINTEGERIDCARTFLOWERCARTPRODUCTCARTFLOWERFLOWERSGETIDTHISCARTFLOWERSREMOVECARTPRODUCTTHISFLOWERSREMOVEID这里面注意删除的方法要和添加的方法结合起来,我开始添加鲜花的时候,是把所有得到的鲜花集合方到一次与服务器会话中,在把它拿到购物车中去。所以在删除大的时候,先从购物车中,再把它从与服务器的会话那个鲜花的集合中删除。3修改购物车鲜花的数量修改购物车鲜花的数量,同样和添加鲜花在表现层中通用一个ACTION的类,具体的方法在类中定义不同。在ACTION类中,修改的代码如下/改变购物车中鲜花的数量PUBLICACTIONFORWARDMODIFYACTIONMAPPINGMAPPING,ACTIONFORMFORM,HTTPSERVLETREQUESTREQUEST,HTTPSERVLETRESPONSERESPONSETHROWSEXCEPTIONINTEGERIDINTEGERPARSEINTREQUESTGETPARAMETER“ID“INTNUMBERINTEGERPARSEINTREQUESTGETPARAMETER“NUMBER“HTTPSESSIONSESSIONREQUESTGETSESSIONCARTCARTCARTSESSIONGETATTRIBUTE“CART“CARTMODIFYNUMID,NUMBERRETURNMAPPINGFINDFORWARD“MODIFYCART“上面修改鲜花的数量必然调用CARTFLOWER中的得到总价的方法在STRUTSCONFIGXML的配置文件中/修改鲜花数量操作的虚拟路径和修改成功所转发的绝对路在调用CARTFLOWER类的方法如下PUBLICVOIDMODIFYNUMFLOWERFLOWER,INTNUMCARTFLOWERCARTPRODUCTFLOWERSGETFLOWERGETIDCARTPRODUCTSETNUMBERNUMFLOWERSPUTFLOWERGETID,CARTPRODUCTPUBLICVOIDMODIFYNUMINTEGERPRODUCTID,INTNUMCARTFLOWERCARTPRODUCTFLOWERSGETPRODUCTIDCARTPRODUCTSETNUMBERNUMFLOWERSPUTPRODUCTID,CARTPRODUCT这里面注意修改购物车鲜花的数量的方法也要和添加的方法结合起来,我开始添加鲜花的时候,是把所有得到的鲜花集合方到一次与服务器会话中,在把它拿到购物车中去。所以在修改购物车鲜花的数量的时候,先把它从与服务器的会话那个鲜花的集合中的鲜花数量修改,再修改购物车鲜花的数量。把修改后的集合都重新封装,然后就覆盖购物车和与服务器会话的那个集合。清空购物车的鲜花清空购物车鲜花,同样和添加鲜花在表现层中通用一个ACTION的类,具体的方法在类中定义不同。在ACTION类中,清空购物车鲜花的代码如下/清空购物车中的鲜花PUBLICACTIONFORWARDREMOVEALLACTIONMAPPINGMAPPING,ACTIONFORMFORM,HTTPSERVLETREQUESTREQUEST,HTTPSERVLETRESPONSERESPONSETHROWSEXCEPTIONHTTPSESSIONSESSIONREQUESTGETSESSIONCARTCARTCARTSESSIONGETATTRIBUTE“CART“SESSIONREMOVEATTRIBUTE“CART“RETURNMAPPINGFINDFORWARD“SUCCESS“在STRUTSCONFIGXML的配置文件中/清空鲜花操作的虚拟路径和清空成功所转发的绝对路这里面注意清空购物车中的鲜花方法也要和添加的方法结合起来,我开始添加鲜花的时候,是把所有得到的鲜花集合方到一次与服务器会话中,在把它拿到购物车中去。所以在清空购物车中的鲜花的时候,先把它从与服务器的会话那个鲜花的集合中的鲜花清空的修改,再清空购物车中的鲜花。底层的实现就是通过这里来完成。下面来介绍WEB的功能实现WEBXML配置ACTION过虑器如下ACTIONSERVLETORGAPACHESTRUTSACTIONACTIONSERVLET1ACTIONSERVLETDO52后台管理521功能介绍后台功能只允许具有管理员权限的用户使用,它是实现前台功能的基础。主要包括管理员身份验证,订单信息管理模块,添加商品模块,查询用户信息管理模块,管理员管理,公告信息管理模块组成。最主要的体现在管理员ADMIN和权限OPERATE2张多对多的映射表,管理员的权限也是通过ADMIN_OPERATE这张映射表来控制的。如果管理员的权限没有在ADMIN_

温馨提示

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

评论

0/150

提交评论