




已阅读5页,还剩56页未读, 继续免费阅读
硕士学位论文-产品信息发布系统设计与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
大连理工大学硕士学位论文产品信息发布系统设计与实现姓名:曹海涛申请学位级别:硕士专业:软件工程指导教师:姚琳20070603大连理工大学专业学位硕士学位论文摘要随着Interact及全球信息网应用的快速发展,人们对信息的需求、管理和应用不再局限于有限的地理空间内。因特网与企业经营活动的结合创造了新的网络经济,使企业的经营活动由传统经营模式转向产品发布、网络营销、商务洽谈、交易管理等的电子化,企业的内部运作、组织管理也发生了深刻的变革,迎来了崭新的电子商务时代。本文设计并实现了产品信息发布系统。从相关技术的介绍开始,介绍了本系统采用的设计模式:MVC模式。着重介绍了MVC和Struts框架的基本思想、体系结构以及Hibernate对象持久化技术的理论基础。然后介绍了产品信息发布系统的需求分析、开发环境及系统的开发流程。接着介绍了系统的功能设计,给出了它的系统架构设计、系统结构设计、系统数据库设计,实现了游戏产品信息管理、发布、产品信息查询等功能。最后对系统的实现进行了详细的阐述,完成了一个系统实现的全过程。在设计及实现的过程中,总结和继承了已有的理论研究和实用系统开发经验,研制出一个使用方便的网上信息发布系统。系统通过应用测试,运行结果良好,满足了用户需求。系统用户界面友好,操作灵活,可大大提高工作效率,降低企业协同办公的成本具有广泛的研究意义和应用价值。关键词:_vc;Struts框架;产品信息发布产品信息发布系统设计与实现DesignandImplementationofProductInationPublishingSystemAbstractWiththefastdevelopmentoftheInternetandglobalinationnetworkapplicationpeoplesdemandmanagementandapplicationoftheinationnolongerlimitstothelimitedgeographyspaceTheunionofInternetandthecorporationmanagementactivitycreatesthenewnetworkeconomy,anditmakesthecorporationmanagementactivitychangetoelectronicsuchastheproductissuance,thenetworkmarketing,thecommercialdiscussionthetransactionmanagementfromthetraditionalmanagementpatternalso,theinsideoperationtheorganizationandthemanagementofthecorporationhavebeendeeplychangedAnewelectronicbusinessiscomingThisarticledesignsandrealizestheproductinationissuancesystemStartwiththeintroductionofthecorrelativetechnique:MVC,emphaticallyintroducesthebasicthoughttheareinteetureofMVCandtheSmasframeaswellasthetheoT)rbasisoftheHibernateobjectlastingtechniqueThenitintroducesthedemandanalysisthedevelopmentenvironmentandthedevelopmentflowofthesystemThefollowingintroductionisaboutthesystemfunctionaldesignItshowssystemconstructiondesign,thesystemstructuraldesignandthesystemdatabasedesignandrealizesthefunctionssuchasthemanagementtheiSbuance,theinquiryoftheproductandSOonFinally,itoalTiesonthedetailedelaborationofthesystemrealizationandcompletesasystem1eaLizationentireprocessIntheprocessofdesignandrealizationIsummarizeandinheritthefundamentalresearchandthepracticalsystemdevelopmentexperiencewhichhasalreadyexistedanddevelopsainationissuancesystemthroughinteractwhichiseasytooperateonThesystemhaspassedtheapplicationtesttheresultisgood,hasmettheuserneedThesystemuserinterfaceisfriendlyandnimbletooperd士eCallcllhancetheworkingefficiencygreatlyandreducethecostofthecorporationcooperativeworkingIthastheextensiveresearchsignificanceandtheapplicationvalueKeyWords:MVC;Strutsframe:Theproductinationissuance独创性说明作者郑重声明:本硕士学位论文是我个人在导师指导下进行的研究工作及取得研究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写的研究成果,也不包含为获得大连理工大学或者其他单位的学位或证书所使用过的材料。与我一同工作的同志对本研究所做的贡献均已在论文中做了明确的说明并表示了谢意。大连理工大学硕士研究生学位论文大连理工大学学位论文版权使用授权书本学位论文作者及指导教师完全了解“大连理工大学硕士、博士学位论文版权使用规定”,同意大连理工大学保留并向国家有关部门或机构送交学位论文的复印件和电子版,允许论文被查阅和借阅。本人授权大连理工大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,也可采用影印、缩印或扫描等复制手段保存和汇编学位论文。作者签名:导师签名:缝亟卫年月旦日大连理工大学专业学位硕士学位论文1绪论在互联网日益流行的今天,网络成为人类生活中必不可少的工具。随着因特网在全球范围内以一种不可阻挡的势头迅猛发展,人类的生存方式也迅速改变,它革命性地改变了我们的交流方式。也改变了原始的商务模式。互联网己日益成为收集提供信息的最佳渠道并进入传统的流通领域。目前已经出现了众多提供商品信息的网站。专业针对超市、商场或实际店铺,提供发布打折促销、商场活动或其他产信息。11课题背景与意义产品信息发布系统是指在Internet上进行产品信息发布的信息系统,其特征是利用Internet的技术传输和处理信息”1。网络产品信息发布是伴随着网络广告的发展而不断的发展成熟的。产品信息发布方式最初形式就是以文字、图片的做成的产品广告条。1994年10月14日,美国著名的Wired杂志推出了网络Hotwired(御hotwiredcom)01。其主页上开始有ATT等14个客户的广告Banner。这是网络产品信息发布史上里程碑的一个标志,一个跨国界的全球性新型媒体正式形成。信息发布系统有狭义和广义之分,狭义的信息发布系统也称Web信息发布系统,主要指利用Web提供的通信及相关技术手段在Internet网上进行信息的发布:而广义的信息发布系统是包括采用Internet技术从信息的采集、信息的管理到信息的发布与交互的全过程的信息系统。广义的信息发布过程存在于组织内部、组织与组织之间以及组织与整个世界之间。随着全球经济一体化进程的加速,市场竞争日趋激烈,新产品层出不穷,新产品信息发布的形式对产品性能的深入介绍和宣传,促进相关产品迅速抢占市场,扩大市场份额,从而促进企业快速发展。随着Internet技术的成熟及电脑的普及,使人们坐在家中,轻点鼠标就能及时得到世界各个角落的信息。因此,互联网成为企业发布产品信息的主要途径。如何利用互联网发布产品信息,如何在公众中树立本企业良好的产品形象,成为企业十分重视的问题,也是目前研究的热点。12产品信息发布系统的技术现状系统是由一些(至少两个)部件为了某种目标而有机地结合在一起的一个整体,产品信息发布系统是由信息的提取(表达)、信息数据的处理和信息数据的输出组成。信息是由数据来表达的,而数据不是信息,数据是所表达的实体的属性值,数据所表达的内容才是信息。表达信息的数据有很多种:可以是数值型数据、字符型数据、声音数据和图形数据等。产品信息发布系统设计与实现信息数据的处理包括:数据的存储、更新、检索等。数据可存储在数据库中,也可存储在其他文件中。数据的更新指数据的添加、删除、修改等。数据经过处理后,只有将其输出才能供信息用户识别和使用,产品信息发布系统的输出即将产品信息数据以网页的形式表达出来。人类社会自从出现了商品,就有了商品信息交流的需要,这种交流一开始是面对面的交流,后来人类开始借助简单的媒介物来传达一些信息,发展到现在运用互联网来发布产品信息。产品信息发布主要有以下几种方式旧。(1)印刷方式:主要以报纸、杂志、宣传品为主要媒介,用文字、图片等表达信息,虽然携带方便,价格便宜,易于保存,但是信息内容是静态的,信息盆不可能很大,且受发行盆限制,传播的范围有限。(2)广播方式:它用声音来传达信息,因而不受文化、教育程度限制,另外传播速度快、范围广,能适应各种环境。然而它也存在不足:单向性的传输,只能在特定的时间、频段才能收听,所发布的信息是面向所有的人,具有共同性、大众化、普遍性。而且语言所表述的是抽象的概念,缺乏直观、形象的表现。(3)电视方式:将影像、声音、文字、图形等信息形式集于一体,是一种全方位信息传播载体。表达信息形象、直观、快捷,受到广泛的青睐:另一方面它也存在与广播类似的问题,观众只能受时间、频道的限制,被动的接受信息,无法实现交互式的双向传播,尤其是其投入费用昂贵,一定程度上阻碍了产品信息通过电视方式进行有效发布。(4)互联网方式:较前三种方式而言,其根本的区别是将纸墨信息、模拟信息全都转化为数字信息,使信息表达进入一个更深层次。这种方式具有以下几方面特点:交互式的双向传播,改变了传统“一对多”的单向传播模式,形成“点对点”的传播方式,用户从被动的接收信息到主动找寻信息,具有个体性和目标性互联网的特点使媒体更容易得到反馈,使传播者和访问者之间能够形成一种平行交流气氛:表现形式丰富,它综合了报纸、广播、电视的优点,给受众以全方位的、多维的信息。即它能通过文字、高清晰度图片、动画、声音乃至动态图象等各种方式进行组合传播:信息丰富,资源共享,理论上讲所有因特网用户的信息是共享的,即互联网是一个巨大的共用、信息资料库:信息读取、查找、更新和处理方便迅捷,可操作性好,通过简单的点击鼠标就可读取、查找有用的信息,不像传统媒体那样受印刷或者栏目安排的限制,它的信息放置在网页上,完全没有任何时间限制,需要时可以随时更新:一2一大连理工大学专业学位硕士学位论文超时空、地域和人种传播,时效性好。平面媒体和电子媒体往往比不上互联网络来得迅速。通过互联网络发布产品,企业可以以最快的速度将最新的产品信息以文字、图片等方式发送到服务器上,在世界每个角落的使用者,就可以立即看到最新的产品信息。目前,在互联网上可以见到的一些产品信息发布系统多以文字说明、性能数据描述、辅以图片介绍的方式来表达产品信息,信息数据存储在数据库中,遥过数据库来进行管理,有的甚至不采用数据库而直接放在HT札中,在一定程度上能够达到产品信息发布的目的,但这些系统所发布的信息是静态的,无法解决网上动态交互的问题,发布的形式较单一,没有充分发挥计算机的功能:另一方面,就是产品信息的组织管理问题,一些产品信息是非结构化数据,对非结构化数据的管理传统上是采用文件系统,但文件系统在信息的动态管理,如结构管理、数据一致性等方面缺乏有效的支持,而关系型、数据库只能很好解决以二维表形式表达的结构化数据,但对以文件形式存在的非结构化数据的管理不甚理想。13论文工作和章节安排本文所完成的工作是设计并实现了“产品信息发布系统”。在设计及实现的过程中,通过详细分析产品信息发布系统的主要功能,总结和继承已有的理论研究和实用系统开发经验,同时采用当前最新的Internet应用开发技术,研制出一个使用方便的产品信息发布系统。本文共分为四个部分,第二章介绍了系统相关技术;第三章对系统的功能进行详细的分析;第四章对系统功能模块进行详细设计;第五章产品信息发布系统的实现和系统测试。产品信息发布系统设计与实现2相关技术21WC设计模式模式的概念是最初来源于工程和建筑模式,软件行业的模式概念的酱及是由ErichGamma,RichardHelmRalphJohnson和JohnVlissides四人合著的设计模式:可复用面向对象软件的基础一书而引发的。如今“模式”已经成为全世界软件开发的一个共同话题。在讨论模式之前,必须对“模式”这个词加以界定,简而言之,人们在自己的环境中不断发现问题和寻找问题的解决方案的时候,发现有一些问题及其解决方案不断变换面孔重复出现,但在这些不同的面孔后面有着共同的本质,这些共同的本质就是模式脚。模型一视图一控制器(1I、,C)是XeroxPARC在20世纪80年代为编程语言Smalltalk一80发明的一种软件设计模式,至今已被广泛使用,最近几年被推荐为Sun公司J2EE(java2enterpriseedition)平台的设计模式。Mvc模式弱化了业务逻辑接口和数据接口之间的藕合,使逻辑与呈现相分离,从而让表现层更为独立和更富于变化,增强了代码的可维护性与扩展性。MvC是一种设计模式,它强制性地把应用程序的输入、处理和输出分开。其应用架构划分为3个相互协调的核心模块:模型、视图和控制器,它们分别担负不同的任务。图21显示了这三个模块各自的功能以及它们的相互关系。,i整奎查刮封藉耋曩墓主篱态I模型蛩恼-1塑堂视图解释模型模型更新请求发送用户输入给控制器允许控制器选择视图控制器定义应用程序行为用户动作影射成模型更新选择相应的视图图21胛c设计模式Fig21MVCdesignpa柚大连理工大学专业学位硕士学位论文由上图我们可以清晰地看出整个蝌c的处理过程是:首先控制器接收用户的请求,并决定应该调用哪个模型来进行处理:然后模型根据用户的请求进行相应的业务逻辑理,并返回数据:最后控制器调用相应的视图格式化模型返回的数据,并通过表示层呈现给用户。模型(Model)是应用程序的主体部分,表示业务数据和业务逻辑。它包含应用程序的核心功能,封装系统的状态。一个模型能为多个视图提供数据,由于同一个模型可以被多个视图重用,所以提高了应用的可重用性。视图(View)是模型的动态表示,并提供用户交互界面。视图向用户显示相关的数据,并能接收用户的输入数据,但是它并不进行任何实际的业务处理。同时当模型状态发生变化时,视图应该得到通知,以便更新视图。控制器(Controller)接受用户的输入并调用模型和视图来完成用户的需求。当Web用户点击Web页面中的提交按钮来发送HTML表单时,控制器接收请求并调用相应的模型组件去处理请求,然后调用相应的视图来显示模型返回的数据”3。基于该编程模型进行开发,各个模块之间的接口一旦制定,开发人员可根据模块的主要功能选用适当的技术对该模块进行有针对性的开发,且无须熟悉实现其他模块的具体技术细节,最后根据所制定的接口进行系统集成即可。因此,将Il、,C编程模型引入web应用程序的设计开发中,可以有效弥补目前Web应用程序开发上的不足,也可以加快产品推向市场的时间。22JSPNodelI和JSPModel2虽然Mvc设计模式很早就出现了,但在Web应用的开发中引入M、rC却是步履维艰。这是因为Web应用系统的开发具有一些鲜明的特点。其一是客户机与服务器间的无状态连接。HTTP的底层是TCPIP协议,而TCPIP是一种无状态连接的协议,这种连接状态使得模型很难将更改通知视图。为了使视图能同步表达模型的状态,客户端必须不断向服务器进行查询,这样会急剧加重服务器端的负担。另一个特点是传统的设计方式即页面到页面(pagetopage)方式将数据显示、业务逻辑、流程控制和数据持久性处理等模块强耦合在一个代码模块中,采用这种模型在开发中容易产生很多问题,而且会随着应用程序规模的不断扩大而加剧系统开发、维护的复杂程度。为了解决以上问题,Sun公司先后制定了两种规范,称为JSPModel1和JSPModel2。在JsPModel1的体系中,如图22所示,JSP页面负责响应用户请求并将处理结果返回用户。JsP既要负责业务流程控制,又要负责提供表示层数据,同时充当视图和控产品信息发布系统设计与实现制器,未能实现这两个模块之间的独立和分离。尽管lodel1体系十分适合简单应用的需要,它却不适合开发复杂的大型应用程序。BR到JSP应O用W掣尚耋SER、图22Hodell体系结构图Fi昏22Systemarchi慨xumdiagramJsPHodel2体系结构(如图23所示)是一种联合使用JSP和Servlet来提供动态内容服务的方法。它吸取了JSP和Servlet两种技术各自的突出优点,用JsP生成表示层的内容,让Servlet完成深层次的处理任务。在这里,Servlet充当控制器的角色,负责处理用户请求,创建JSP页需要使用的JavaBean对象,根据用户请求选择合适的JSP页返回给用户。在JSP页内没有处理逻辑,它仅负责检索原先由Servlet创建的JavaBean对象,从Servlet中提取动态内容插入到静态模块。这是一种有突破性的软件设计方法,它清晰地分离了表达和内容,明确了角色定义以及开发者与网页设计者的分工。事实上,项目越复杂,使用ltode2设计模式的好处就越大。圈23MVCliodel2Fig23HVCModel2基于MvC设计模式的Model2应用框架,完美地解决Modell应用中出现的问题。它不仅实现了系统业务逻辑功能模块、显示模块和数据持久层处理模块的分离,同时还提高了应用系统的可维护性、可扩展性、可移植性和组件的可复用性嘲。一6大连理工大学专业学位硕士学位论文23Struts框架231Struts概述Struts这个名字来源于在建筑和旧式飞机中使用的金属支架,目的是为了帮助开发人员减少在运用Mvc设计模式来开发Web应用的时间。Struts按照llvc模式的思想,提供了一种创建Web应用程序的框架,其中对应用程序的用户界面表示和数据的后端逻辑处理代码进行了抽象,整合TServlet和JSP在Web应用开发上的优势以建立灵活、扩展性强、复用程度高的应用系统睁”】。232Struts框架结构作为一个Mvc的框架,Struts对Model,View和Controller都提供了对应的实现组件。其组件结构如图24所示。图24Struts框架的组件结构Fig24Frameworkstructurecon正mem(1)Controller:控制器的作用是从客户端接受请求,并且选择执行相应的业务逻辑,然后把响应结果送回到客户端“。在Struts中Controller功能由图ActionServlet和ActionMapping对象构成:核心是一个Servlet类型的对象ActionServlet,它用来接受客户端的请求。ActionServlet包括一组基于配置的ActionMapping对象。每个ActionMapping对象实现了一个请求到一个具体的Model部分中Action处理器对象之间的映射。产品信息发布系统设计与实现(2)Model:MVC系统中的Model部分从概念上可以分为两类一系统的内部状态和改变系统状态的动作“”。Struts为Model部分提供了Action和Action对象:所有的Action处理器对象都是开发者从Struts的Action类派生的子类。Action处理器对象封装了具体的处理逻辑,调用业务逻辑模块,并且把响应提交到合适的View组件以产生响应。Struts提供的Action组件对象,它可以通过定义属性描述客户端表单数据。开发者可以从它派生子类对象,利用它和Struts提供的自定义标记库结合可以实现对客户端的表单数据的良好封装和支持,Action处理器对象可以直接对它进行读写,而不再需要和request,response对象进行数据交互。通iSLAction组件对象实现了对View和Model之间交互的支持。Struts通常建议使用一组JavaBean表示系统的内部状态,根据系统的复杂度也可以使用像EntityEJB和SessionEJB等组件来实现系统状态。Struts建议在实现时把“做什么”(Action)和“如何做”(业务逻辑)分离。这样可以实现业务逻辑的重用。(3)View:Struts应用中的View部分是通过JSP技术实现的。Struts提供了自定义的标记库可以使用,通过这些自定义标记可以非常好地和系统的Model部分交互,通过使用这些自定义标记创建的JSP表单,可以实现和Model部分中的Action的映射,完成对用户数据的封装,同时这些自定义标记还提供了像模板定制等多种显示功能“”。233Struts架构的优缺点Struts是实现M1C设计模式的一个优秀的应用框架,它具有以下一些优缺点。优点(1)协作性:Struts是一个互相协作、互相促进的平台,适用于开发小组、独立的开发人员、以及每个人之间的协同工作。(2)开放源码:您可以获得开放源码的全部优点,比如可以查看代码并让使用库的每个人检查代码。许多人都可以进行很好的代码检查。(3)与其他Java技术兼容:Struts的一个基本设计标准就是一定要兼容面向企业级应用的JJEE平台规范“。(4)JSP标记机制的使用:标记特性从3SP文件获得可重用代码和抽象Java码。这个特性能很好地集成到基于JSP的开发工具中,这些工具允许用标记编写代码。灵活利用能大大提高开发效率。在库中找不到的标记可以自己定义。这些标记库支持构建国际化的应用程序,也支持与输入表单和JavaBean进行交互。这些标记库使得您不需要在JSP中进行显式的Java编码,或者说只需进行极少量的编码。一8一大连理工大学专业学位硕士学位论文(5)丰富的MVC实现样例:如果您希望创建您自己的Mvc实现,则Struts丰富的实现样例可增加您的见识。(6)管理问题空间:分治是解决问题并使问题可管理的极好方法。当然,问题越来越复杂,并且需要越来越多的管理。缺点(1)Struts是基于Web的MVC解决方案,所以必须用HTIHL,JSP和Servlet来实现,适用范围有限;(2)开源项目发展很快,但代码、设计变动比较大,利用不当对系统的后续升级、维护不利“”;(3)将问题分为几个部分的同时也引入了复杂性:(4)视图部分的精力主要集中在JsP上,以)(ML等多种元素作为视图实现的功能,需要进一步加强“”;(5)需要Weblogic等支持J2EE的应用服务器来支持。234Struts的核心组件Struts架构包括如下的核心组件“”,如表21所示。(1)ActionSer、,1etActionServlet继承自javaxservlethttphttpServlet类,在Struts框架中扮演的角色是控制器。主要负责将http的客户请求信息组装后,根据配置文件的描述,转发到适当的处理器。按照Servlet的标准,所有的Servlet必须在WEB配置文件(霄ebm1)中声明。用户向服务器提交请求的时候,实际上信息是首先发送到控制器ActionServlet,一旦控制器获得了请求,就会将请求信息转交给一些辅助类处理,这些辅助类知道如何去处理与请求信息所对应的业务操作。在Struts中这个辅助类就是orgapachestrutsactionAction。通常开发者需要自己继承Action类,从而实现自己的Action实例。(2)ActionclassAction类的角色,就像客户请求动作和与业务逻辑处理之间的一个适配器,其功能就是将请求与业务逻辑分开。这样的分离,使得客户请求和Action类之间可以有多个点对点的映射,而且Action类还提供了其它的辅助功能,比如:认证、日志、数据验证。Action中最常用的方法是cute。控制器收到客户的请求后,将请求转发给一个Action实例,如果这个实例不存在,控制器会首先创建一个,然后调用这个Action实例的cute方法陋脚。产品信息发布系统设计与实现(3)Action应用系统的信息转移(或状态转移)的非持久性数据存储,是由ActionBean负责保持的。Action的主要功能就是为Action的操作提供与客户表单相映射的数据(如果在客户指定的情况下,包括对数据的校验)。Action负责对系统数据状态的保持,而Action则负责根据业务逻辑的需要,对数据状态进行修改,在改变系统状态后,Action贝U自动的回写新的数据状态并保持。表21Struts架构的核心组件Tab21smnsframeworkmodule组件角色ActionServlotAorionClassActionActionMappingActionForwardActionErrorStruts标记库核心控制器Web层调用业务逻辑的接口视图层数据的显示与封装帮助控制器将请求映射到操作用来指示操作转移的方向用来保存和回收错误减轻开发视图层的工作在Action的使用中,Struts提倡使用值对象(value-object),使客户或开发人员对数据状态和对象能够有更加清晰的理解和使用。对于客户的请求,Struts框架在处理Action的时候,一般需要经历如下几个步骤01删。检查Action的映射,确定Action中己经配置了3t寸Action的映射。根据rlalle属性,查找Bean的配置信息。检查Action的Bean的使用范围,确定在此范围是否已经有Bean的实例。假如当前范围下,己经存在了Bean的实例,而且对当前请求来说,是同一种类型的话,那么就重用。否则,就重新构建一个Bean的实例。Bean的reset方法被调用。调用对应的setter方法,对状态属性赋值。如果validated的属性被设置为true,那么就调用Bean的validate方法。(4)ActionMapping控制器接收用户的请求,然后转发。但是,控制器如何知道什么样的信息转发到什么样的Action类去处理呢这就需要一些与动作和请求信息相对应的映射配置说明。在大连理工大学专业学位硕士学位论文Struts中,这些配置映射信息是存储在一些特定的xml文件中。这些配置信息在系统启动的时候被读入内存,供Strutsframework在运行期间使用,在内存中,每一个标签产品信息发布系统设计与实现代码最外层的是标签,它包含了所有Struts中其他HTML输入标签。同一个HTML的元素类似,中包含所有同该HnjL表单相关的子元素。除了完成同HTML-样的功能之外,还可以在某+Actionbean中存储和查找所需数据。表52是对例子中际签几个属性功能的描述。表52标签中的属性Tab52mgofattribute属性描述Action表示该表单提交时的URL该项属性用于提交时在struts配置文件中查找对应的ActionMappmgName定义同该请求中表单对应的Action名Type定义同该请求中表单对应的Action全类名。下面的代码是Struts标签在开发中使用的情况。标签:读取的属性值,执行ActionListdo。标签:页面文本框的Struts标签。标签:页面按钮的Struts标签。Mltml:value=”梭索”onclick=”givcValueO;532Action类Action是用于封装和验证通过HTTP请求传输来的数据的。在系统开发中我们使用了动态Action。动态Action支持在Struts配置文件中完成Action的全部配置,没有必要编写额外的程序来创建具体的Action类。配置动态Action的方法为:在Struts配置文件中配置一个元素,将type属性设置为DynaAction或它的某个子类的全名。的子元素用来设置动态Action的属性。元素的Flame属性指定属性名,type指定属性类型。代码如下。大连理工大学专业学位硕士学位论文54模型的实现Model提供了存储数据的功能并且能让Web组件容易的访问和更新这些数据。此应用的Model部分包括了业务对象和数据访问对象(DAO)。下面介绍一下数据访问对象。数据访问对象(DataAccessObject)用来访问关系数据库,并用方法封装数据库的调用,这样就将SQL语句与应用程序的其它部分分离开。每一个实体业务对象都有一个相对应的数据访问对象,为该实体业务对象封装数据库调用、实现业务逻辑。在程序中我们定义了一个总的DA0类,各模块可以直接访问也可以定义子类来继承DAO。下面以DAO为例介绍数据库访问对象。DAO中定义的数据库访问方法。insert实现插入记录;update实现更新记录;delete实现删除记录;search检索记录;下面我们主要说明一下insert()方法的编写。publicstaticintinsert(Objectobj)Transactiontrans-null;try,session的取得Sessionsession=HibemateUtilcmrentSessionO;trails=sessionbcginTransactionO;数据库的插入session蹦ve(obj);Iranscorn酬);I异蒋情况catch(HibemateExceptionc)if(trans!-null)(tansrollback();产品信息发布系统设计与实现)finallytryHibemateUfilcloseScssionO;)catch(HibcmatcExccption曲return1;乞t啪o:)本方法的好处是各模块可以共用一个类,不用再编写相关的查询、插入、更新、删除语句,极大地提高了开发人员的效率。55控制器的实现控制器是MVC模式中最为关键的部分,是整个设计理念的核心,因为它扮演着调度的角色,由它来接受用户请求,控制整个消息的派发,调用模型组件的业务方法,联系模型组件和视图组件,使应用成为整体。控制器处理与业务相关的事务。主要由不同功能的Action实现。控制器主要由业务控制类、业务辅助类和一些业务bean组成。(1)业务控制类:根据业务来分,它是面向Web层的,相当于是一些业务逻辑的facade。主要依据模块来分。假设,目前己经确定有6个模块,那么,就有6个业务管理类,还需要根据最终业务功能模块划分,来作相应得调整。(2)业务实体类:与业务相关的、由业务控制类来调用的类。该类主要由一些具体业务功能的实现以及一些辅助方法构成,来自logicclass图。(3)业务数据类:主要保存Web层传递下来的数据。这些数据应该足够满足相应的BusiCtrl完成业务的需要。在struts中,控制器由ActionServlet和ActionMapping对象构成,核心是一个Servlet类型的ActionServlet,它用来接收客户端的请求,并根据相应的ActionMapping对象将之导向到某+Action去处理。每个ActionMapping对象定义了一个与所请求的URI大连理工大学专业学位硕士学位论文相匹配的路径和一个具体的Model部分Action的完整类名,这个类负责执行商业逻辑,然后将控制分派给适当的view组件来输出响应。如果说控制器扮演调度的角色,那Action类则是调度任务的集体执行者,所以,Action类在struts框架中尤为重要,几乎每一个Action实例的工作流程都如图52所示。图52Action:作流程Fig52Actionworkflow下面是PageAction的相关实现。,publicclassPagcActionextendsActionpublicActionForwardcute(ActionMappingmappingActionHttpServletRequestrequestHttpScrvletResponseresponse)ActionForwardforward=newActionForwardO;intintForward=Commomlogin(requcstreslnse);if(intForwardn产品信息发布系统设计与实现把t啪mappingfindForward(“togin”);SUingforwardName2(String)requestgetSession()getAtaibut”forwardName”);intintShowLine=Integerparselm(requestgetSessionOgetAraibut“”lineNumber”、toStringO);PageLogicpageLogic=newPageLogicO;hatintCurPage=IntegerparseInt(requestgetParameter(”page”;pageLogicgetDataOnPage(requestintShowLine,intCurPage,forwardName);forward=mappingfmdForward(forwardName);rctumforward;56Strtus框架的异常处理Strtus框架在视图层和控制层提供了对异常处理的支持。如图53所示为Struts框架处理异常的主要流程。圈53Struts框架处理异常的流程Fig53Smnsframeworkexc叫onhandlingflowStruts的控制器负责捕获各种异常,包括控制器运行中本身抛出的异常,以及调用模型的业务方法是抛出的异常。当Struts的控制器捕获到异常后,在异常处理代码块中,创建描述异常信息的AetionMessage对象把它保存在ActionMessage(或其子类大连理工大学专业学位硕士学位论文ActionErrors)对象中,然后把ActionSessage保存在特定范围内。接下来,视图层的Chtml:errors标签检索特定范围内的Actior潮essage对象,把本地化的错误信息输出到网页上。Struts框架的这种异常处理机制可以避免直接向用户显示原始的Java异常信息,而是在控制层对Java异常进行重新包装,在视图层提供能够让用户理解的错误信息。在本系统中主要采用的就是创建ActionHessage对象来处理异常。代码如下。ActionMessagesmessages=llewActionMessagesO;if(tistweekcnt=一null)messagesadd(”message”,newActionMessage(”GAMEl004”);saveMessages(request,messages);CommomsetMessages(requestmessages);rectamappingfindForward(”toErrorPage”);57关键功能和技术的实现571用户安全认证的实现图54登录页面Fig54LonginPage该页面实现用户分组管理,口令限制,操作权限的划分;实现网络安全的功能;保障系统的数据安全:由于系统只是针对制造商、商会和店铺三方面的应用,所以并不提供用户注册这一功能。当用户登录系统时,系统读入用户的代码及口令后,在系统用户字典中检索,明确其权限,允许其进行相应的操作。画面如图54所示。关键代码如下。if(回a901一脚跎)(Artiequals(”11”)0Arrtiequals(”22”)RoleBeanrole;n州RoleBeanO;rolesetUserld(newInteger(Userld)toStrin90);rolesetUserType(newInteger(UserType)toStrin90);rolesctTitle(”fifle01”);ve斌oradd(role);Fla901=true;RoleBeanrole=newRoleBean0;rotesetUsefld(newInteger(Userld)toStrin90);rolesetUserType(newInteger(UserType)tosuig();rrolesctPdvilegeFlag(ArritoStfin90);rolesetVisibleJsp(hashTbget(Arti)otoSh4mgO);vectoradd(role);572公告板信息表示图55公告板页面Fig55PostPage大连理工大学专业学位硕士学位论文该页面主要是商品新信息的显示,同时可以按条件检索商品信息。用户可以点击新规作成进入信息登录页面添加信息,点击编集修改商品信息,点击信息的标题可以进入该商品的详细信息页面查看商品的详细信息。画面如图55所示。其关键代码如下。StringBuffersbSelect=newStringBuffer0;sbSelectappend(”FROM”);sbSelectappend(”Bbstbla”);sbSelectappend(”Bbsctgymstb,“);sbSeleaappend(”Usermstc,”);sbSelectappend(”WHERE”);sbSelectappend(”abbsctgycd=bbbsctgycdAND”);sbSelectappend(”aregcd=cusercdAND”);sbSelectappend(strSqlCondition);sbSelectappend(“ORDERBYaupdtmDESC”);listBbs=BbsDAOsearch(sbSelecttoStrin90,intCountintShowLine);573降价商品登录表示图56降价商品输入页面Fig56Markdowngoodsmputpage产品信息发布系统设计与实现此画面是降价商品信息显示画面,所有参加降价活动的商品都在此页面显示,用户可以根据需求检索商品,还可以点击标题查看商品的详细信息。商会的工作人员可以进入登录和更新页面对商品信息进行添加和修改。此页面只有已经登录的商品才能够显示出来。其画面如图56所示。574降价商品信息表示此画面是降价商品活动信息显示画面,所有参加降价活动的信息都在此页面显示,用户可以根据需求检索商品,还可以点击标题查看商品的详细信息。用户可以进入实绩照会画面查看商品的贩卖情况,还可以进入店铺情报画面查看参与活动的店铺信息。也可以进入设定情报画面查看商品降价活动信息,商会人员可以进入设定降价活动信息。其画面如图57所示。图57降价商品显示Fig57Markdowngoodsdisplay575多条件查询技术编码管理系统一个重要职能是提供编码数据查询服务,企业对编码数据使用一般是通过查询来实现。为了更有效的提供查询服务,编码管理系统提供了一种多条件组合的大连理工大学专业学位硕士学位论文数据查询方法多条件组合查询的难点在于对数据库通过程序进行操作的时候,由于SQL语句所携带的条件是变化的,给软件实现带来一定的难度。编码数据管理系统对该问题的解决算法如下。(1)查询条件:假设某个编码数据所提供的查询条件有N项,所对应的数据库中的查询数据项为伍0,X1,x2,xn),对于这N项条件的查询可以分为完全匹配和模糊匹配Fo,Fl,F2,Fn)。如果某项查询数据项Xi为完全匹配,贝lJFi=l,如果Xi为模糊匹配,则Fi:0。(2)查询条件的值:每个数据项xi对应输入数据的值为Yi,所以对应查询数据项的值的集合Yo,Yl,Y2,Yn,由于N个条件是自由选择,所以Yi的值有可能为空,因此,设置辅助变量z0,Zl,Z2,Zn),如果Yi=NULL,那么Zi=0,反之贝lJZi=l。(3)SQL语句的求解:根据以上变量对实际的数据值进行程序判断,可以得出SQL语句的查询条件。本系统采用的就是多条件查询,在系统实现中查询条件在页面采用的是checkbox控件,允许多项选择。本系统还可以采取模糊查询,在sql文中用“关键字”实现。在查询过程中,当用户只输入一个条件时,查询语句只会按着一个条件查询,当用户输入两个或更多的条件查询时,查询语句会按照多个条件查询,查出同时符合这些条件的结果。代码如下。if(strJancdI-null!slrJancdexluals()flSqlappend(“ijancAlike);flSqlappend(s仕Jancd);flSqlappend(”);flSqlappend(”and”);if(strKanNm!;nulllstrKanNmequals(”)flSqlappend(”itiflcnmlike“);flSqlappend(strKanNm);flSqlappend(”and”);)ff(strStdnoInull!strStdnoequals()if(strKikakuequals(”0”)、产品信息发布系统设计与实现flSqlappend(”i51xlnolike);)elseflSqlappend(”istd】like”);)nSqlappend(strStdno);nSqIappd(”+and”);58系统测试基于Web的系统测试与传统的软件测试不同,它不但需要检查和验证是否按照设计的要求运行,而且还要测试系统在不同用户的浏览器端的显示是否合适。重要的是,还要从最终用户的角度进行安全性和可用性测试。该项目是一个设计复杂的JAvA项目。测试分为两部分:一部分是用工具进行单层测试,另一部分是对单一模块进行功能测试。正常的情况下应该由专门的测试人员编写测试式样书并进行测试,因为专业测试人员善于发现测试点,容易
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 景观湖泊挖掘土石运输协议
- 2024年份6月携程乡村民宿客房季节性销售合同范本
- 宇宙生命之谜生字
- 肉制品加工基础知识
- 数字化时代:合同风险管理与监管路径探讨(2025年)
- 旅游生命周期理论
- 2025年北京市连锁店店铺装修环保评估合同范本
- 2024湘潭县就业职业技术学校工作人员招聘考试及答案
- 2024沈阳音乐学院附属中等音乐学校工作人员招聘考试及答案
- 粮食单位年终总结
- 湖南邵阳农商行招聘真题2024
- 2024年国家药品监督管理局直属单位招聘考试真题
- 2025智能家居系统供应及安装施工合同
- 建筑工程一级安全教育内容
- 2024-2025学年江苏省南京市鼓楼区树人中学七年级下学期英语3月学情调研卷(原卷版+解析版)
- 2025年全民国家安全教育日主题教育课件
- DL∕T 2528-2022 电力储能基本术语
- 小学数学专题讲座:“小学数学计算能力的培养.ppt“
- 年龄更改申请书
- 自动计算空调水管及冷量管径对应表-office2010以上版本
- 饮水机滤芯更换记录表
评论
0/150
提交评论