在线影像订购系统_第1页
在线影像订购系统_第2页
在线影像订购系统_第3页
在线影像订购系统_第4页
在线影像订购系统_第5页
已阅读5页,还剩72页未读 继续免费阅读

下载本文档

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

文档简介

摘要在线购物已经成为当代的新潮,通过购物网站人们可以足不出户地购买想要的商品通常的购物网站所提供的商品品种繁多,满足不同客户的需求,甚至有些商品在现实生活中是很难买到的购物网站所提供的商品价格相对便宜,购买便捷,给人们的生活带来了很大的方便开发购物网站可以用不同的语言和工具,本次毕业设计开发的是一个基于JAVA语言的在线影像订购系统,该系统并没有提供种类繁多的商品,而是只提供影像产品,但系统功能完备,完全可以满足客户进行在线影像的购买用户可以在本购物网站中进行用户注册,用户登录,用户信息自维护用户可以在购物车中添加挑选出的商品,也可以从购物车中删除商品,然后进行下订单操作,购买商品本网站还提供用户留言功能,用户可以自由发表对本网站以及商品的评论所有用户信息以及留言都会在本网站的后台进行管理该系统所用技术主要有STRUTSJSP完成网络层的业务控制和页面视图,HIBERNATE完成底层数据库的操作ORACLE数据库进行信息存储关键词STRUTSJSPHIBERNATEORACLE在线影像订购系统ABSTRACTONLINESHOPPINGHASBECOMEATRENDYCONTEMPORARY,BYONLINESHOPPING,PEOPLECANBUYANYTHINGHOMES,THEUSUALSHOPPINGSITEPROVIDEDBYTHEWIDEVARIETYOFGOODS,MEETINGTHENEEDSOFDIFFERENTCLIENTS,EVENSOMECOMMODITIESINREALLIFEISVERYDIFFICULTTOBUYSHOPPINGSITESPROVIDEDBYTHERELATIVELYCHEAPCOMMODITYPRICESANDISCONVENIENTTOPURCHASE,WITHALOTOFCONVENIENCETOTHELIFEOFPEOPLETHEDEVELOPMENTOFSHOPPINGSITESCANUSEDIFFERENTLANGUAGESANDTOOLS,THEGRADUATIONISADESIGNANDDEVELOPMENTBASEDONTHEJAVALANGUAGEONLINEVIDEOORDERINGSYSTEMTHESYSTEMDOESNOTPROVIDEAWIDERANGEOFGOODSWITHONLYIMAGINGPRODUCTS,BUTFULLYFUNCTIONALANDFULLYSATISFYCUSTOMERSTOPURCHASEONLINEVIDEOUSERSCANINTHISSHOPPINGSITEINTHEUSERREGISTRATION,LOGINANDSINCETHEMAINTENANCEOFUSERINFORMATIONUSERSCANADDASHOPPINGCARTOFGOODSSELECTEDANDDELETEGOODS,THENPROCEEDTOOPERATEUNDERORDERSANDPURCHASEGOODSTHISSITEALSOPROVIDESUSERSMESSAGEFUNCTION,USERSCANFREELYONTHISSITEANDTHECOMMENTSOFGOODS,ALLUSERSOFINFORMATIONANDMESSAGESONTHISSITEWILLBETHEBACKGROUNDTOMANAGETHESYSTEMUSEDBYMAJORTECHNOLOGYARESTRUTSANDJSP,COMPLETINGOFTHEOPERATIONALCONTROLOFTHENETWORKANDVIEWPAGES,HIBERNATECOMPLETIONOFTHEOPERATIONOFTHEUNDERLYINGDATABASE,WITHORACLEDATABASEINFORMATIONSTORAGEKEYWORDSSTRUTSJSPHIBERNATEORACLEONLINEORDERINGSYSTEMIMAGE;目录1绪论52开发环境及开发工具的介绍621JAVA概述6211JAVA工作原理7212JAVA的特点722JSP概述9221JSP的工作原理9222JSP的特点1023HIBERNATE框架概述11231HIBERNATE的工作原理11232HIBERNATE的特点1224STRUTS框架概述12241STRUTS的工作原理1325服务器配置134TOMCAT安装及配置143在线影像订购系统需求分析1531系统功能简介1532系统业务模型154在线影像订购系统需求定义1641在线购物用例1642用户管理用例1643管理员管理用例175在线影像订购系统总体设计1851系统架构逻辑图体系结构及其说明1852系统ESTORE应用架构MVC及其说明196在线影像订购系统软件需求分析2061实体类图2062实体关系图2663系统顺序图277在线影像订购系统数据建模2871ER图2872用户表设计3373管理员管理模块表设计358在线影像订购系统详细设计代码与测试3681用户管理模块详细设计代码与测试3682管理员管理模块详细设计与测试44总结与体会51致谢52参考文献53附录一英文资料原文54附录二英文资料翻译671绪论互联网的浪潮席卷了我们生活的每一寸空间,从全球咨询,到奇闻异事;从时事要闻到衣食住行;只有我们想不到的没有在网络上找不到的由此可见互联网给我们工作、生活、学习所带来的翻天覆地的变化INTERNET是强有力的工具,能以低代价却很方便的把产品或服务的信息发向全世界的每个角落。全世界所有客户都能通过网站,了解企业。INTERNET已经连接了相当多的网民、企业、机构和政府,而且向着更广阔的范围发展。INTERNET在中国正以几何级数速度发展,因此,任何一家企业,都不应置身于INTERNET之外,那会脱离企业发展最基本的资源和环境人类社会。电子商务(EC,也就是ECOMMERCE的缩写),关于电子商务的定义世人众说纷纭,从不同的角度出发有不同的定义。可以理解为以INTERNET为依托,借助一定的信用支付手段,在网络上进行产品的购销、费用支付及其他商务活动等。按交易对象不同进行分类,可以分为BTOB(常简称为B2B,商业机构对商业机构的电子商务)、BTOC(常简称为B2C,商业机构对消费者的电子商务)、CTOC(常简称为C2C,即消费者对消费者的电子商务)、CTOB(常简称为C2B,即消费者对商家的电子商务)等。国内著名电子商务站点如WWWALIBABACOM等。电子商务是未来经济形式发展的大趋势,目标是实现交易信息的网络化和电子化,如使用电子货币,开网上商店,进行网上商务谈判和使用电子签名签合同等等。企业上网通常都会加入到网上的某个行业协会网站或商业网站中,成为会员或网员。在行业协会网站或商业网站上发布供求信息,获取有关政策和市场信息,享受其他的服务。企业建立网站,从销售的观点看,可以减少交易的中间环节,降低成本。企业网站还可以扩建成为网上销售和售前售后咨询服务中心。企业建立网站,将信息咨询站开设到网上,专人值守,提供信息服务。可与外部建立实时的、专题的或个别的信息交流渠道。一些企业在网站上公开电子邮件地址,使客户能够通过电子邮件向企业发表意见。因为电子邮件的传递速度很快,企业能够迅速得到客户信息并及时给予答复。一些企业的网站以BBS或公告板的形式联系客户,客户可以发表意见,同时也能够看到其他客户的信息和从前的信息。可以使客户全面和客观地了解企业和企业的服务及产品。又因为是直接对话,具有增进感情的作用。让别人看到自己,展示企业的实力。企业就能够在国内和世界亮相,无疑是一种宣传企业、产品和服务的机会。从广告意义上看,企业网站事关企业形象建设,没有网站也谈不上企业形象。企业上网,这是时代发展的必然,任何一家企业要想跟上时代发展的潮流,必须尽快上网。为了不被竞争对手建立网站抢占先机,为了不落后于时代潮流,应该考虑建站的必要性。企业可以利用自己或别人的网页在网上打广告。一些专业的网络服务者称为ISP,即网络服务提供商在网上开设汇总信息的大型信息服务系统称ISP网站,面向企业提供广告服务业务。网上广告通常以一个醒目的图形贴在ISP的网页上,通过该图形可以链接更多的和更具体的广告信息,其信息量可以很大。企业网站本身就是广告,一些企业在网上建立自己的网页,或者开设自己的网站,把企业信息集中起来,分类分栏,方便浏览。现代社会中的所有著名企业都在网上建立了自己的网页或网站2开发环境及开发工具的介绍21JAVA概述1991年,SUNMICROSYSTEM公司的JAMEGOSLING、BILLJOE等人,为在电视、控制烤面包箱等家用消费类电子产品上进行交互式操作而开发了一个名为OAK的软件即一种橡树的名字,但当时并没有引起人们的注意,直到1994年下半年,INTERNET的迅猛发展,环球信息网WWW的快速增长,促进了JAVA语言研制的进展,使得它逐渐成为INTERNET上受欢迎的开发与编程语言,一些著名的计算机公司纷纷购买了JAVA语言的使用权,如MICROSOFT、IBM、NETSCAPE、NOVELL、APPLE、DEC、SGI等,因此,JAVA语言被美国的著名杂志PCMAGAZINE评为1995年十大优秀科技产品,计算机类就此一项入选,随之大量出现了用JAVA编写的软件产品,受到工业界的重视与好评,认为“JAVA是八十年代以来计算机界的一件大事“,微软总裁比尔盖茨在悄悄地观察了一段时间后,不无感慨地说“JAVA是长时间以来最卓越的程序设计语言“,并确定微软整个软件开发的战略从PC单机时代向着以网络为中心的计算时代转移,而购买JAVA则是他的重大战略决策的实施部署因此,JAVA的诞生必将对整个计算机产业发生深远的影响,对传统的计算模型提出了新的挑战。MICROSOFT和IBM两大公司都计划在INTERNET上销售用JAVA编写的软件。APPLE、HP、IBM、MICROSOFT、NOVELL、SGI、SCO、TANDEM等公司均计划将JAVA并入各自开发的操作系统,而负责开发并推广JAVA技术的SUNSOFT公司这是SUN下属的一个子公司,将通过颁发许可证的办法来允许各家公司把JAVA虚拟机和JAVA的APPLETS类库嵌入他们开发的操作系统,这样各类开发人员就能更容易地选择多种平台来使用JAVA语言编程,不同的用户也就可以脱离WEB浏览器来运行JAVA应用程序,这无疑是很受广大用户欢迎的,也为JAVA语言的应用开拓了极为广阔的前景。当然,各类JAVAOS之间的兼容性必须得到重视,好在JAVASOFT已保证将监督这种兼容性。另外,由JAVASOFT推出的完全用JAVA编写的INTERNET上新型浏览器HOTJAVA,比去年ALPHA版更为实用,不仅能编制动态的应用软件,而且能编制完整的成套桌面应用软件,将来还会提供更多的能帮助编制动态应用软件的模块,显然,这也是为JAVA的应用提供了有力的例证。211JAVA工作原理JAVA语言是一种工作在JAVA虚拟机JVM上的一种编程语言JAVA虚拟机是一个想象中的机器,在实际的计算机上通过软件模拟来实现。JAVA虚拟机有自己想象中的硬件,如处理器、堆栈、寄存器等,还具有相应的指令系统。JAVA虚拟机由五个部分组成一组指令集、一组寄存器、一个栈、一个无用单元GARBAGECOLLECTEDHEAP、一个方法区域。这五部分是JAVA虚拟机的逻辑成份,不依赖任何实现技术或组织方式,但它们的功能必须在真实机器上以某种方式实现。JAVA语言的一个非常重要的特点就是与平台的无关性。而使用JAVA虚拟机是实现这一特点的关键。一般的高级语言如果要在不同的平台上运行,至少需要编译成不同的目标代码。而引入JAVA语言虚拟机后,JAVA语言在不同平台上运行时不需要重新编译。JAVA语言使用模式JAVA虚拟机屏蔽了与具体平台相关的信息,使得JAVA语言编译程序只需生成在JAVA虚拟机上运行的目标代码字节码,就可以在多种平台上不加修改地运行。JAVA虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。212JAVA的特点首先,作为一种程序设计语言,它简单、面向对象、不依赖于机器的结构、具有可移植性、鲁棒性、安全性、并且提供了并发的机制、具有很高的性能。其次,它最大限度地利用了网络,JAVA的小应用程序APPLET可在网络上传输而不受CPU和环境的限制。另外,JAVA还提供了丰富的类库,使程序设计者可以很方便地建立自己的系统。JAVA语言有下面一些特点简单、面向对象、分布式、解释执行、鲁棒、安全、体系结构中立、可移植、高性能、多线程以及动态性。1简单性JAVA语言是一种面向对象的语言,它通过提供最基本的方法来完成指定的任务,只需理解一些基本的概念,就可以用它编写出适合于各种情况的应用程序。JAVA略去了运算符重载、多重继承等模糊的概念,并且通过实现自动垃圾收集大大简化了程序设计者的内存管理工作。另外,JAVA也适合于在小型机上运行,它的基本解释器及类的支持只有40KB左右,加上标准类库和线程的支持也只有215KB左右。库和线程的支持也只有215KB左右。2面向对象JAVA语言的设计集中于对象及其接口,它提供了简单的类机制以及动态的接口模型。对象中封装了它的状态变量以及相应的方法,实现了模块化和信息隐藏而类则提供了一类对象的原型,并且通过继承机制,子类可以使用父类所提供的方法,实现了代码的复用。3分布性JAVA是面向网络的语言。通过它提供的类库可以处理TCP/IP协议,用户可以通过URL地址在网络上很方便地访问其它对象。4鲁棒性JAVA在编译和运行程序时,都要对可能出现的问题进行检查,以消除错误的产生。它提供自动垃圾收集来进行内存管理,防止程序员在管理内存时容易产生的错误。通过集成的面向对象的例外处理机制,在编译时,JAVA提示出可能出现但未被处理的例外,帮助程序员正确地进行选择以防止系统的崩溃。另外,JAVA在编译时还可捕获类型声明中的许多常见错误,防止动态运行时不匹配问题的出现。5安全性用于网络、分布环境下的JAVA必须要防止病毒的入侵。JAVA不支持指针,一切对内存的访问都必须通过对象的实例变量来实现,这样就防止程序员使用“特洛伊“木马等欺骗手段访问对象的私有成员,同时也避免了指针操作中容易产生的错误。6体系结构中立JAVA解释器生成与体系结构无关的字节码指令,只要安装了JAVA运行时系统,JAVA程序就可在任意的处理器上运行。这些字节码指令对应于JAVA虚拟机中的表示,JAVA解释器得到字节码后,对它进行转换,使之能够在不同的平台运行。7可移植性与平台无关的特性使JAVA程序可以方便地被移植到网络上的不同机器。同时,JAVA的类库中也实现了与不同平台的接口,使这些类库可以移植。另外,JAVA编译器是由JAVA语言实现的,JAVA运行时系统由标准C实现,这使得JAVA系统本身也具有可移植性。8解释执行JAVA解释器直接对JAVA字节码进行解释执行。字节码本身携带了许多编译时信息,使得连接过程更加简单。9高性能和其它解释执行的语言如BASIC、TCL不同,JAVA字节码的设计使之能很容易地直接转换成对应于特定CPU的机器码,从而得到较高的性能。10多线程多线程机制使应用程序能够并行执行,而且同步机制保证了对共享数据的正确操作。通过使用多线程,程序设计者可以分别用不同的线程完成特定的行为,而不需要采用全局的事件循环机制,这样就很容易地实现网络上的实时交互行为。11动态性JAVA的设计使它适合于一个不断发展的环境。在类库中可以自由地加入新的方法和实例变量而不会影响用户程序的执行。并且JAVA通过接口来支持多重继承,使之比严格的类继承具有更灵活的方式和扩展性。22JSP概述JSP(IAVASERVERPAGES)是由SUN公司在JAVA语言上开发出来的一种动态网页制作技术,其可使您可以将网页中的动态部分和静态的HTML相分离。您可以使用平常得心应手的工具并按照平常的方式来书写HTML语句。然后,将动态部分用特殊的标记嵌入即可,这些标记常常以“”开始并以“”结束。通常,将文件以“JSP”为扩展名,并将它放置到任何可以放置普通WEB页面的路径下。尽管JSP文件看起来更象是HTML文件而不是SERVLET文件,但,事实上,它恰恰将转换为SERVLET文件,其中的静态HTML仅仅用来输出SERVLET服务方法返回的信息。如果JSPPAGES已经被转换为SERVLET且SERVLET被编译进而被装载(在第一次被REQUEST时),当再次REQUEST此JSP页面时,将察觉不到一瞬的延迟。221JSP的工作原理在一个JSP文件第一次被请求时,JSP引擎把该JSP文件转换成为一个SERVLET。而这个引擎本身也是一个SERVLET,在JSWKD或WEBLOGIC中,它就是JSPSERVLET。JSP引擎先把该JSP文件转换成一个JAVA源文件,在转换时如果发现JSP文件有任何语法错误,转换过程将中断,并向服务端和客户端输出出错信息;如果转换成功,JSP引擎用JAVAC把该JAVA源文件编译成相应的CLASS文件。然后创建一个该SERVLET的实例,该SERVLET的JSPINIT方法被执行,JSPINIT方法在SERVLET的生命周期中只被执行一次。然后JSPSERVLET方法被调用来处理客户端的请求。对每一个请求,JSP引擎创建一个新的线程来处理该请求。如果有多个客户端同时请求该JSP文件,则JSP引擎会创建多个线程。每个客户端请求对应一个线程。以多线程方式执行可大大降低对系统的资源需求,提高系统的并发量及响应时间但应该注意多线程的编程限制,由于该SERVLET始终驻于内存,所以响应是非常快的。如果JSP文件被修改了,服务器将根据设置决定是否对该文件重新编译,如果需要重新编译,则将编译结果取代内存中的SERVLET,并继续上述处理过程。虽然JSP效率很高,但在第一次调用时由于需要转换和编译而有一些轻微的延迟。此外,如果在任何时候如果由于系统资源不足的原因,JSP引擎将以某种不确定的方式将SERVLET从内存中移去。当这种情况发生时JSPDESTROY方法首先被调用,然后SERVLET实例便被标记加入“垃圾收集“处理。JSPINIT及JSPDESTORY格式如下可在JSPINIT中进行一些初始化工作,如建立与数据库的连接,或建立网络连接,从配置文件中取一些参数等,在JSPDESTORY中释放相应的资源。222JSP的特点1将内容的生成和显示进行分离使用JSP技术,WEB页面开发人员可以使用HTML或者XML标识来设计和格式化最终页面。使用JSP标识或者小脚本来生成页面上的动态内容。生成内容的逻辑被封装在标识和JAVABEANS组件中,并且捆绑在小脚本中,所有的脚本在服务器端运行。如果核心逻辑被封装在标识和BEANS中,那么其他人,如WEB管理人员和页面设计者,能够编辑和使用JSP页面,而不影响内容的生成。在服务器端,JSP引擎解释JSP标识和小脚本,生成所请求的内容(例如,通过访问JAVABEANS组件,使用JDBCTM技术访问数据库,或者包含文件),并且将结果以HTML(或者XML)页面的形式发送回浏览器。这有助于作者保护自己的代码,而又保证任何基于HTML的WEB浏览器的完全可用性。2强调可重用的组件绝大多数JSP页面依赖于可重用的,跨平台的组件(JAVABEANS或者ENTERPRISEJAVABEANSTM组件)来执行应用程序所要求的更为复杂的处理。开发人员能够共享和交换执行普通操作的组件,或者使得这些组件为更多的使用者或者客户团体所使用。基于组件的方法加速了总体开发过程,并且使得各种组织在他们现有的技能和优化结果的开发努力中得到平衡。3采用标识简化页面开发WEB页面开发人员不会都是熟悉脚本语言的编程人员。JAVASERVERPAGE技术封装了许多功能,这些功能是在易用的、与JSP相关的XML标识中进行动态内容生成所需要的。标准的JSP标识能够访问和实例化JAVABEANS组件,设置或者检索组件属性,下载APPLET,以及执行用其他方法更难于编码和耗时的功能。通过开发定制化标识库,JSP技术是可以扩展的。今后,第三方开发人员和其他人员可以为常用功能创建自己的标识库。这使得WEB页面开发人员能够使用熟悉的工具和如同标识一样的执行特定功能的构件来工作。JSP技术很容易整合到多种应用体系结构中,以利用现存的工具和技巧,并且扩展到能够支持企业级的分布式应用。作为采用JAVA技术家族的一部分,以及JAVA2(企业版体系结构)的一个组成部分,JSP技术能够支持高度复杂的基于WEB的应用。由于JSP页面的内置脚本语言是基于JAVA编程语言的,而且所有的JSP页面都被编译成为JAVASERVLET,JSP页面就具有JAVA技术的所有好处,包括健壮的存储管理和安全性。作为JAVA平台的一部分,JSP拥有JAVA编程语言“一次编写,各处运行”的特点。随着越来越多的供应商将JSP支持添加到他们的产品中,我们可以使用自己所选择的服务器和工具,更改工具或服务器并不影响当前的应用。23HIBERNATE框架概述HIBERNATE是一种访问数据库技术,它对JDBC进行了封装。HIBERNATE在对象和关系型之间建立起一座桥梁,使得开发人员可以方便、快捷地进行持久化开发。HIBERNATE的第一个正式版本发布于2001年末;2003年6月HIBERNATE2发布,这一版本提供了对大多数数据库的支持;2003年末HIBERNATE被JBOSS吸纳;2005年3月HIBERNATE3正式发布,至此,HIBERNATE获得了巨大的成功。HIBERNATE使用起来非常简单,这也是HIBERNATE作者GAVINKING的一贯思想。231HIBERNATE的工作原理HIBERANTE的运行过程如下HIBERNATE的初始化读取HIBERNATE的配置信息创建SESSIONFACTORY1创建CONFIGERATION类的实例它的构造方法将配置信息HIBERNATECONFIGXML读入到内存。一个CONFIGERATION实例代表HIBERNATE所有JAVA类到SQL数据库映射的集合。2创建SESSIONFACTORY实例把CONFIGERATION对象中的所有配置信息拷贝到SESSIONFACTORY的缓存中。3调用SESSIONFACTORY创建SESSION的方法。4通过SESSION接口提供的各种方法来操纵数据库访问。232HIBERNATE的特点1HIBERNATE是JDBC的轻量级的对象封装,它是一个独立的对象持久层框架,和APPSERVER,和EJB没有什么必然的联系。HIBERNATE可以用在任何JDBC可以使用的场合,例如JAVA应用程序的数据库访问代码,DAO接口的实现类,甚至可以是BMP里面的访问数据库的代码。从这个意义上来说,HIBERNATE和EB不是一个范畴的东西,也不存在非此即彼的关系。2HIBERNATE是一个和JDBC密切关联的框架,所以HIBERNATE的兼容性和JDBC驱动,和数据库都有一定的关系,但是和使用它的JAVA程序,和APPSERVER没有任何关系,也不存在兼容性问题。3HIBERNATE不能用来直接和ENTITYBEAN做对比,只有放在整个J2EE项目的框架中才能比较。并且即使是放在软件整体框架中来看,HIBERNATE也是做为JDBC的替代者出现的,而不是ENTITYBEAN的替代者出现的24STRUTS框架概述STRUTS就是在JSPMODEL2的基础实现了MVC设计模式的WEBFRAMEWORK。基于STRUTS构架的WEB应用程序基本上符合JSPMODEL2的设计标准,可以说是MVC设计模式的一种变化类型。整个STRUTS大约有15包,近200个类所组成。STRUTS这个名字来源于在建筑和旧式飞机中使用的支持金属架。它的目的是为了减少在运用MVC设计模型来开发WEB应用的时间,它将可以完成其中一些繁重的工作。如果想混合使用SERVLETS和JSP的优点来建立可扩展的应用,STRUTS是一个不错的选择。STRUTS由一组相互协作的类、SERLVET以及丰富的标记库JSPTAGLIB和独立于该框架工作的实用程序类VALIDATOR组成。STRUTS有其自己的控制器(CONTROLLER),同时整合了其他的一些技术去实现模型层(MODEL)和视图层(VIEW)。在模型层,STRUTS可以很容易的与数据访问技术相结合,包括EJB,JDBC和OBJECTRELATIONBRIDGE。在视图层,STRUTS能够与JSP,VELOCITYTEMPLATES,XSL等等这些表示层组件想结合。241STRUTS的工作原理STRUTS使用MODEL2架构,它的ACTIONSERVLET控制导航流,其他STRUTS类,比如ACTION,用来访问业务逻辑类。当ACTIONSERVLET从容器接收到一个请求,它使用URI或者路径“PATH”来决定那个ACTION将用来处理请求。一个ACTION可以校验输入,并且访问业务层以从数据库或其他数据服务中检索信息。为校验输入或者使用输入来更新数据库,ACTION需要知道什么指被提交上来。并不是强制每个ACTION从请求中抓取这些值,而是由ACTIONSERVLET将输入绑定JAVABEAN中。输入BEAN是STRUTSACTIONFORMC类的子类。ACTIONSERVLET通过查找请求的路径可以决定使用哪个ACTIONFORM,ACTION也是通过同样的方法选取的。ACTIONFORM扩展ORGAPACHESTRUTSACTIONACTIONFORM类。每个都必须以HTTP响应进行应答。通常,STRUTSACTION并不自行加工响应信息,而是将请求转发到其他资源,比如JS页面。STRUTS提供一个ACTIONFORWARD类,用来将一个页面的路径存储为逻辑名称。当完成业务逻辑后,ACTION选择并向SERVLET返回一个ACTIONFORWARD。SERVLET然后使用存储在ACTIONFORWARD对象中的路径来调用页面完成响应。STRUTS将这些细节都绑定在一个ACTIONMAPPING对象中。每个ACTIONMAPPING相对于一个特定的路径。当某个路径被请求时,SERVLET就查询ACTIONMAPPING对象。ACTIONMAPPING对象告诉SERVLET,哪个ACTIONS,ACTIONFORMS,和ACTIONFORWARDS将被使用。所有这些细节,关于ACTION,ACTIONFORM,ACTIONFORWARD,ACTIONMAPPING,以及其他一些东西,都在STRUTSCONFIGXML文件中定义。ACTIONSERVLET在启动时读取这个配置文件,并创建一个配置对象数据库。在运行时,STRUTS应用根据文件创建的配置对象,而不是文件本身。25服务器配置1从官方网站HTTP/JAVASUNCOM下载该软件的最新版本。我所下载的是JDK1_5_0_06WINDOWSI586PEXE文件。2双击EXE文件,安装在CPROGRAMFILESJAVAJDK150_06。3JDK的环境配置在WINDOWS中用鼠标指向我的电脑,按右键,选择“属性”,在“系统特性”表单内选择“高级”标签,在“高级”标签内选择“环境变量”,在系统变量中加入变量JAVA_HOME变量名为CPROGRAMFILESJAVAJDK150_06,CLASSPATH变量值为CPROGRAMFILESJAVAJDK150_06LIBDTJARCPROGRAMFILESJAVAJDK150_06LIBTOOLSJARCPROGRAMFILESJAVAJDK150_06和PATH变量值为CPROGRAMFILESJAVAJDK150_06BIN。安装和配置完毕后,在“命令提示符”中输入JAVAC,会出现如图所示,则说明JDK安装和配置都是正确的。JAVAC调试界面4TOMCAT安装及配置直接运行下载的APACHETOMCAT5517EXE文件,按照一般的WINDOWS程序安装步骤即可安装好TOMCAT,安装时它会自动寻找JDK的位置。安装过程中需要选择一个文件夹作为TOMCAT的安装目录。我选择安装的位置是CTOMCAT55。安装完成以后,添加一个TOMCAT的环境变量,添加方法和JDK的环境变量的添加方法相同,设置变量名为TOMCAT_HOME,变量值为CTOMCAT55。设置完毕后就可以运行TOMCAT服务器了。TOMCAT成功启动后,在浏览器中输入HTTP/LOCALHOST8080/,如果出现欢迎界面,则说明TOMCAT安装成功。欢迎界面如下图所示3在线影像订购系统需求分析31系统功能简介本系统是一个在线影像订购系统,用户可以在本购物网站中进行用户注册,用户登录,用户信息自维护用户可以在购物车中添加挑选出的商品,也可以从购物车中删除商品,然后进行下订单操作,购买商品本网站还提供用户留言功能,用户可以自由发表对本网站以及商品的评论用户只有在登陆以后才能完成购物功能所有用户信息以及留言都会在本网站的后台进行管理32系统业务模型PRODUCTSLISTPRODUCTDETAILINFOSHOPCARTMANAGEMENTCUSTOMERINFOMODIFICATIONCUSTOMERAUTHENTICATIONCUSTOMERREGISTRATIONORDERMANAGEMENTPRODUCTINFOSHOPCARTINFOUSERINFOORDERINFOUSER4在线影像订购系统需求定义41在线购物用例如上图所示,这是整个系统的功能用例图。用户可以进行”浏览产品”,”管理购物车”,”下订单”操作,用户通过浏览产品可以查看产品的详细信息;通过管理购物车可以取消购物车上的产品,修改购物车上产品的数量,还可以清空购物车;通过下订单操作,将购物车中的产品下订单,进行购买。42用户管理用例上图为用户管理模块的用例图,用户在前台可以进行用户信息自服务,可以管理自己的注册信息,包括“注册新用户”,”认证用户”,”修改用户信息”43管理员管理用例上图为管理员管理模块用例图,该模块与用户操作无关,是管理员的后台操作用例后台管理员分为超级管理员和普通管理员,超级管理员可以管理普通管理员信息,包括”修改普通管理员信息”,”分配管理员权限”,”删除管理员“。不同身份的管理员分配不同的权限,只对有权限的业务进行操作。5在线影像订购系统总体设计51系统架构逻辑图体系结构及其说明HTMLPRESENTATIONLOGICPERSISTENTLOGICBUSINESSLOGICDATA该系统架构逻辑图为三层体系结构,自下而上分别为持久层,业务层,网络层持久层负责访问数据库,所用技术是HIBERNATE,业务层完成所有的业务逻辑,网络层负责接收用户请求和向客户端响应,所用技术是STRUTS系统采取三层架构,将系统不同的功能分离,便于软件的维护以及提高系统的稳定性52系统ESTORE应用架构MVC及其说明FORMATPAGETODISPLAYFORWARDPAGEBROWSERCLIENTINVOKECOMMANDTOHANDLEREQUESTMAPREQUESTCOMMANDEXTRACTDATAFILTERREQUESTPERFORMOPERATIONDATAORGANIZEWORKFORREQUESTVIEWCONTROLMODELMVC系统架构模型是现在企业的一个主流WEB开发架构模型它将视图层,模型层,控制层分层,控制层控制接受用户请求,调用模型层方法获取数据,然后将数据传送给客户通过分层结构将系统的层次更加分明,提高系统健壮性,便于系统的维护6在线影像订购系统软件需求分析61实体类图地址ADRESS用户USER购物车CART订单ITEM管理员MANAGER管理项MANAGEITEMORDER产品PRODUCT62实体关系图如上图所示为系统实体类之间的关系图,整个系统的实体类分为用户类(USER),地址类ADDRESS,订单类ORDER,订单项类ITEM,产品类PRODUCT,购物车类CART,留言类MESSAGE。用户与地址之间通过组建影射进行关联,是一对一的关系,即一个用户对应一个地址;用户还与用户留言进行关联,一个用户对应多条留言;订单与订单项通过一对多的关系进行关联;订单项与产品通过一对多的关系进行关联,同时一个购物车与多个订单项进行关联。63系统顺序图如上图所示为本购物系统的系统时序图,这是一个基于MVC架构的系统时序图,在WEB层通过STRUTS作为控制用户的请求和系统的响应。下面根据图示的序列标号进行分析如下当一个用户的请求来到时1,如果用户提交的是一个表单,则系统的WEB层控制器CONTROLER先产生一个ACTIONFORM实例2,用来记录用户提交的表单信息,如果用户请求是一个普通请求,则控制器就会根据请求路径转发到相应ACTION,进行请求操作3。在ACTION中,如果先前用户提交了表单,就调用ACTIONFORMGET方法获取表单信息4,然后获取一个叫BUSINESSFACTORY类的实例5,该类中封装了业务层中业务操作类的一系列实例,只有通过获取这些业务操作实例,才能调用业务方法。在第六步中6就是通过BUSINESSFACTORY获取业务方法。因为在中间层业务层中需要调用底层DAO中的访问数据库方法,所以首先必须产生一个DAO实例,而这个获取过程也是通过DAOFACTORY获取的7。当业务层获取底层访问数据库方法时,就可以访问数据库了8,在底层DAO中是通过HIBERNATE技术进行数据库访问的9。当所有业务操作完成时,ACTION就会将在业务操作中产生的数据转交到一个JSP页面进行展示10在JSP中也可以通过调用ACTIONFORMGET方法获取数据11。当服务器端所有业务操作完成时,就会将产生的JSP页面响应给用户12。7在线影像订购系统数据建模71ER图用户实体用户实体包括用户ID,用户名,性别,密码,地址,EMAIL,联系电话,手机号码。USERUSERIDNAMEGENDERPASSWORDOFFICEPHONEMOBIYPHONEEMAILADDRESS管理员实体管理员实体包括管理员姓名,密码。MANAGERPASSWORDNAME管理项实体管理项实体包括权限ID,权限名。MANAGEITEMITEMNAMEITEMID订单实体订单实体包括订单ID,地址,状态,创建日期,到期日期,价格,联系电话,EMAILORDERADDRESSSTATUSCREATEDATEIDEMAILTELCOSTENDDATE订单项实体订单项实体包括订单项ID,订单项名称,价格,数量ITEMNAMEIDNUMPRICE产品实体产品实体包括产品ID,产品名,图片,描述,按地区分类,按情节分类,库存,已销售数量,进价,售价。PRODUCTNAMEIMAGEOIDDESCRIBEBYAREAOUTPRICEINPRICEHASSENDSTOCKBYSCENE留言实体留言实体包括留言ID,留言用户名,日期,留言内容MESSAGEUSERNAMECONTENTDATEOID下图为整个数据库的总体设计ER图ORDERPRODUCTMANAGEITEMMANAGERITEMMESSAGEUSERSENDORDERRCREATECREATEMANAGEN11N1N1NMN72用户表设计主要用于记录用户信息,表结构如下列名说明类型长度备注OID数据表主键NUMBER4不允许空,主键USERID用户IDNUMBER10不允许空USERNAME用户名VARCHAR215不允许空GENDER性别VARCHAR25不允许空PASSWORD密码VARCHAR210不允许空STREET街道VARCHAR250AREA地区VARCHAR250CITY城市VARCHAR250PROVINCE省份VARCHAR250COUNTRY国家VARCHAR250EMAILEMAILVARCHAR250不允许空MOBIYPHONE移动电话VARCHAR220OFFICEPHONE办公号码VARCHAR220建表语句如下CREATETABLEWZP_SHOPOIDNUMBER4PRIMARYKEY,USERIDNUMBER10NOTNULL,USERNAMEVARCHAR215NOTNULL,GENDERVARCHAR25NOTNULL,PASSWORDVARCHAR210NOTNULL,STREETVARCHAR250,AREAVARCHAR250,CITYVARCHAR250,PROVINCEVARCHAR250,COUNTRYVARCHAR250,EMAILVARCHAR250NOTNULL,MOBIYPHONEVARCHAR220,OFFICEPHONEVARCHAR22073管理员管理模块表设计管理员表,主要用于记录管理员信息,如下表所示建表语句如下CREATETABLEWZP_MANAGEROIDNUMBER4PRIMARYKEY,NAMEVARCHAR30NOTNULL,PASSWORDVARCHAR16NOTNULL管理项表权限表,主要用于存储管理员权限,表结构如下建表语句如下CREATETABLEWZP_MANAGEITEMOIDNUMBER4PRIMARYKEY,ITEMIDNUMBER10NOTNULL,ITEMNAMEVARCHAR16NOTNULL管理员与管理权限影射表,标明管理员有哪些权限,表结构如下字段说明类型长度备注OID数据表主键NUMBER(4)不允许空NAME管理员名称VARCHAR(30)不允许空PASSWORD管理员密码VARCHAR(16)不允许空字段说明类型长度备注OID数据表主键NUMBER(4)不允许空ITEMID权限IDNUMBER10不允许空ITEMNAME权限名VARCHAR(16)不允许空建表语句如下CREATETABLEWZP_MANAGEMIDNUMBER4,ITEMIDNUMBER10,PRIMARYKEYMID,ITEMID,FOREIGNKEYMIDREFERENCESWZP_MANAGEROID,FOREIGNKEYITEMIDREFERENCESWZP_MANAGEITEMOID8在线影像订购系统详细设计代码与测试81用户管理模块详细设计代码与测试用户管理模块主要包括前台用户注册,登录及用户自服务和后台用户管理4部分前台首页用户注册用户登陆修改信息后台首页后台用户管理1用户注册当用户第一次登录时首先要注册,成为会员后,才可以购买物品用户可以通过单击首页的注册按键来打开注册页面进行会员注册操作,用户注册页面的运行结果如下图所示字段说明类型长度备注MID外键,管理员IDNUMBER(4)不允许空ITEMID外键,权限IDNUMBER10不允许空如果用户没有填完注册表中必填的内容项就进行注册,系统会提示用户必须要填写必填内容,实现代码如下/这是一个ACTIONFORM类中的VALIDATE方法,当用户提交表单时,首先必须通过这个方法进行验证用户所填内容的合法性。/PUBLICACTIONERRORSVALIDATEACTIONMAPPINGMAPPING,HTTPSERVLETREQUESTREQUESTACTIONERRORSERRORSNEWACTIONERRORS/当表单上用户ID为空时,产生一个错误信息添加到ACTIONERRORS中。IFUSERIDNULL|USERIDLENGTH0ACTIONMESSAGEMESSAGENEWACTIONMESSAGE“REGERRORSUSERID“ERRORSADD“USERID“,MESSAGE/当表单上用户名为空时,产生一个错误信息添加到ACTIONERRORS中。IFUSERNAMENULL|USERNAMELENGTH0ACTIONMESSAGEMESSAGENEWACTIONMESSAGE“REGERRORSUSERNAME“ERRORSADD“USERNAME“,MESSAGE/当表单上用户密码为空时,产生一个错误信息添加到ACTIONERRORS中。IFUSERPWDNULL|USERPWDLENGTH0ACTIONMESSAGEMESSAGENEWACTIONMESSAGE“REGERRORSUSERPWD“ERRORSADD“USERPWD“,MESSAGE/当表单上用户确认密码为空时,产生一个错误信息添加到ACTIONERRORS中。IFUSERPWDCHECKNULL|USERPWDCHECKLENGTH0ACTIONMESSAGEMESSAGENEWACTIONMESSAGE“REGERRORSUSERPWDCHECK“ERRORSADD“USERPWDCHECK“,MESSAGE/当表单上用户密码与确认密码不一致时,产生一个错误信息添加到ACTIONERRORS中IFUSERPWDEQUALSUSERPWDCHECKACTIONMESSAGEMESSAGENEWACTIONMESSAGE“REGERRORSUSERPWDCHECKERROR“ERRORSADD“USERPWDCHECKERROR“,MESSAGE/当表单上用户EMAIL为空时,产生一个错误信息添加到ACTIONERRORS中IFEMAILNULL|EMAILLENGTH0ACTIONMESSAGEMESSAGENEWACTIONMESSAGE“REGERRORSEMAIL“ERRORSADD“EMAIL“,MESSAGERETURNERRORS测试结果如下上面代码是STRUTS中的一个ACTIONFORM对象,用来保存用户的注册信息以及对注册信息的判断合法性(VALIDATE)。一旦用户所填注册信息经判断是合法的,系统就会将这个ACTIONFORM提交到一个ACTION,将用户信息存储到数据库中,ACTION的代码如下PUBLICCLASSUSERREGISTERACTIONEXTENDSACTIONPUBLICACTIONFORWARDEXECUTEACTIONMAPPINGMAPPING,ACTIONFORMFORM,HTTPSERVLETREQUESTREQUEST,HTTPSERVLETRESPONSERESPONSE/通过服务工厂获取一个用户服务对象USERSERVICEUSSERVICEFACTORYGETUSERSERVICE/将参数中的ACTIONFORM强转成USERREGISTERFORMUSERREGISTERFORMREGFORMUSERREGISTERFORMFORMUSERUSERNULLADDRESSADDRESSNEWADDRESS/如果表单中STREET不空,则将STREET字段添加到ADDRESS中。IFREQUESTGETPARAMETER“STREET“EQUALS“ADDRESSSETSTREETREGFORMGETSTREETI

温馨提示

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

评论

0/150

提交评论