基于MVC模式的Struts框架在大型网站开发中的应用

来源 :中国教育信息化·高教职教 | 被引量 : 0次 | 上传用户:suan11111
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘 要:软件框架结构对于软件体系结构的规范化和软件维护具有重要的作用。Struts就是一种较好的软件框架结构。Struts框架具有组件的模块化、灵活性和重用性的优点,同时简化了基于MVC的Web应用程序的开发。本文主要介绍了基于MVC模式的Struts框架在大型网站开发中的应用。
  关键词:MVC模式 Struts框架 网站开发
  中图分类号:TP393.18 文献标识码:B 文章编号:1673-8454(2008)17-0016-02
  
  一、引言
  
  软件开发工作中遇到的很多问题都可能在以往开发同类软件的过程中出现过并且已经被解决,解决问题时所用到的好的方法、技术经过积累并不断地归纳、总结形成一种固定的解决方案、一种模式,以便在日后的系统开发过程中专门用来解决同类问题。设计模式就是对以往开发经验的总结,它的提出使开发人员可以简单、方便地复用成功的设计方案,而不必每次都做重复的工作。
  框架是一种可重用的、半完成的应用程序,可以用来产生专门的定制程序。若把在不同应用程序中有共性的一些东西抽取出来,做成一个所谓的程序框架,在开发一个新的程序时就不必从头开始,而是可以在这个基础上开始搭建。
  在基于Java的网站设计中,Java Servlets被设计用于Web浏览器的请求,Java ServerPage被设计用于创建那些可发布宣传站点到在线应用系统中的动态Web页面。之所以在基于Java的网站开发中引入Struts技术,是因为Struts使用一个特殊的Servlet作为“交换机”,将来自Web浏览器的请求转到相应的ServerPage。这使得Web应用更加容易设计、创建和维护,且按照Struts构建的网站框架非常易于开发(利用现成的模块)和升级维护。
  早些时候的JSP应用程序开发是用过程化语言来完成的,它们将数据库查询语句这样的数据层代码和HTML这样的表示层代码混合在一起,这样一来无论是对业务逻辑的变更还是对界面显示的修改都会涉及应用程序的整体,使程序维护起来相当困难。
  
  二、Web层的解决方案——MVC模式
  
  MVC模式的提出彻底解决了上述问题。MVC是Model(模型)—View(视图)—Controller(控制器)的缩写,它适用于大型可扩展的Web应用的开发,它强制性地将应用程序的输入、处理和输出分开,将其划分为模型、视图和控制器三个核心部分,使它们各司其职,各自完成不同的任务,其中任何一部分的修改都不会影响其它两部分。
  在MVC模式中,模型封装了应用问题的核心数据、逻辑关系和业务规则,提供了业务逻辑的处理过程。模型一方面被控制器调用,完成问题处理的操作过程,另一方面为视图获取显示数据提供了访问数据的操作。因为模型是与数据格式无关的,因此一个模型可以为多个视图提供数据,这样一个模型一次编写可以被多个视图重用,从而避免了代码的重复编写。
  
  视图是MVC模式下用户看到的并与之交互的界面。视图从模型处获得数据,视图的更新由控制器控制。视图不包含任何业务逻辑的处理,它只是作为一种输出数据的方式。
  MVC模式中,控制器主要起导航的作用,它根据用户的输入调用相应的模型和视图去完成用户的请求。控制器本身不输出任何东西,它接受用户请求并决定调用哪个模型构件去处理,以及由哪个视图来显示模型处理之后返回的数据。
  MVC的处理过程如下:对于每一个用户输入的请求,首先被控制器接收,并决定由哪个模型来进行处理,然后模型通过业务处理逻辑处理用户的请求并返回数据,最后控制器用相应的视图格式化模型返回数据,并通过显示页面呈现给用户。图1所示为模型、视图、控制器这三个模块各自的功能以及它们之间的相互关系。
  
  三、Struts是实现MVC模式的框架
  
  Struts是一个比较好的实现MVC模式的通用框架,它提供了对开发MVC系统的底层支持,采用的主要技术是Servlet、JSP和自定义标签库。作为一个MVC模式的通用框架,Struts由四个主要部分组成:模型、视图、控制器和XML文件,如图2所示。
  模型通常由Java Bean或EJB组件实现,负责处理业务逻辑;视图包括一组JSP文件,这些文件主要由JSP标签或客户化标签构成,简化了JSP页面的编码工作;在Struts框架中控制器主要包括ActionServlet类和Action类,ActionServlet是Struts的核心部件,它接受用户的Http请求,根据配置信息将请求转发给适当的Action对象,Action类负责调用模型的方法,并帮助控制应用程序的流程;Struts包括Web.xml和Struts-config.xml两个配置文件,其中Web.xml是Web应用的发布描述文件,Struts-config.xml是与Struts相关的特殊信息配置的描述文件。
  Struts框架的处理流程清楚地体现了MVC系统的特点:Struts Controller ActionServlet处理客户请求,利用配置的ActionMapping对象把请求映射到Action处理器对象进行处理。Action处理器对象访问ActionForm中的数据,处理和响应客户请求,并调用后台的Bean组件,这些组件封装了具体的业务逻辑。Action处理器对象根据处理结果通知Controller,Controller进行下一步的处理。
  
  四、利用Struts框架开发JSP网站的系统流程
  
  由于Struts已经为用户提供了一个非常好的MVC框架,因此,利用Struts技术开发基于MVC框架的大型JSP网站时,可以大大加快开发的速度。在开发时可以采用以下的开发流程:
  (1)收集和定义应用需求;(2)基于数据采集和显示的原则定义和开发“屏幕显示”需求;(3)为每一个“屏幕显示”定义访问路径;(4)定义ActionMappings,建立到应用业务逻辑之间的联系;(5)开发满足“屏幕显示”需求的所有支持对象;(6)基于每一个“屏幕显示”需求提供的数据属性,创建对应的ActionForm对象;(7)开发被ActionMapping调用的Action对象;(8)开发应用逻辑对象(Bean、EJB等);(9)对应ActionMappings设计的流程创建JSP页面;(10)建立合适的配置文件Struts-config.xml、web.xml;(11)进行开发、测试和部署。
  具体使用Struts框架时,对应各个部分的开发包括以下方面:
  (1)Model(模型)部分
  采用JavaBean和EJB组件,设计和实现系统的业务逻辑。根据不同的请求从Action派生具体Action处理对象。完成“做什么”的任务来调用由Bean构成的业务组件。创建由ActionForm的派生类实现对客户端表单数据的封装。
  (2)Controller(控制器)部分
  Struts为我们提供了核心控制部分的实现。在此,只需要配置ActionMapping对象。
  (3)View(视图)部分
  为了使用Model中ActionForm对象,必须用Struts提供的自定义标记库创建HTML表单。利用Struts提供的自定义标记库编写用户界面,把应用逻辑和显示逻辑分离。Struts框架通过这些自定义标记建立了View和Model之间的联系。
  
  五、结束语
  
  Struts为大型网站的开发提供了框架结构,JSP页面中不包含任何业务逻辑,控制器组件ActionServlet可使用Struts框架所提供的,开发人员只需将大部分精力集中到实际业务逻辑的处理,这样有利于快速有效地开发出Web应用程序。Struts框架下用户显示、控制逻辑和业务处理逻辑相分离,若业务需求发生变化则主要修改用于处理业务逻辑的EJB或JavaBean组件,因此便于系统的维护和升级。总之,Struts框架适用于可扩展的大型Web应用的开发。
  
  参考文献:
  [1]陈天河.Java数据库高级编程宝典[M].北京:电子工业出版社,2005.
  [2]陆正武,张志立.Java项目开发实践[M].北京:中国铁道出版社,2005.
  [3]张丽君,齐建卓,吴宏波.基于MVC模式的Struts框架在Web系统开发中的应用[J].内蒙古大学学报,2005,36(1).
  [4]柯喆,张忠能.Struts在开发B/S结构系统中的应用[J].计算机工程,2004,30(12).
  [5]孙卫琴.精通Struts:基于MVC的Java Web设计与开发[M].北京:电子工业出版社,2004.
其他文献
《蚂蚁和西瓜》是一本非常有趣的绘本,故事从蚂蚁发现一块西瓜开始,引发了一系列有趣的情节。因为阅读这本书,我们的孩子也开始了一段奇妙的科学之旅。  午餐后,有一群孩子在阅读区的地垫上看书。这时来了几只小蚂蚁,它们的出现,打破了阅读区的宁静(阅读区靠近院子,偶有小蚂蚁造访),韬韬、宁宁、哲楠、石头等孩子围着蚂蚁观察起来。他们拿来了放大镜、昆虫观察盒等观察工具,想要仔细观察蚂蚁的样子。可这几只蚂蚁实在是
【摘要】课堂革命鼓励课堂教学精彩生成、分享智慧、合作探究。本文基于小学低年级识字教学中有效开展小组合作学习的研究,在实践中探索科学有效的评价,培养学生学习自信,由文本转向习本、生本,保障每一个学生的学习权,打造生命课堂。  【关键词】课堂革命 合作学习 科学有效的评价  合作学习作为新型的学习方式正被教师们广泛应用于教学实践中,人人参与、组织互动、竞争合作,思维碰撞的火花闪耀课堂。针对目前低年级识
【摘 要】BYOD教学环境下的综合实践活动课型的多变使得这种学习环境的有利一面得到了放大化,因为主动参与探究的学生多了,学习的面更广了,学习的效率也会更加有效。本文从两节综合实践活动的案例片段来对如何从智慧层面推动实践的深入化进行了探究。  【关键词】智慧提升 牵引能力 探究能力 实践能力  综合实践活动的课型可以是多样化的,其中一种课型特别适合在自带设备(BYOD)环境下展开,那就是网络探究型。
在教育教学实践中,很多老师都会遇到林林这样的孩子,思维活跃、表达独特、富有创造精神,在某方面的知识甚至比老师都丰富。遇到这样的情况,我觉得首先要采取接纳的态度。我们对幼儿接纳宽容的态度也会塑造幼儿心胸宽广的品性。而这种被认同的情感会进一步拉近教师与幼儿之间的关系。根据马斯洛的需求层次理论,需求的第四层次是被尊重的需要。幼兒初入社会群体,缺乏安全感,更渴望得到认同和接纳。  话题中,我认为在保证安全
新春已至,迎春吐蕊。一年一度的全国两会在万众瞩目中如期召开。3月7日傍晚,本刊编辑部一行四人来到全国政协十三届一次会议委员驻地北京会议中心,如约见到了两位全国政协委员——北京师范大学教育学部教授刘焱和北京市北海幼儿园园长柳茹。春寒料峭,九号楼外,草色遥看近却无,偶有鸟雀栖息,鸣叫数声。大厅内,金色巨型壁画“京华四季”下,两位委员迎面而来,笑意盈盈显得格外温暖。  普惠深入人心  连任三届、履职十年
远程访问需求日益强烈    随着应用的进一步扩展和信息化进程的不断加深,长沙理工大学对于校外的教职员工远程访问各种电子资源的需求越来越旺盛。这些应用统计如下:    网外用户访问校内图书馆资源的问题  图书馆的电子资源访问都是通过校园IP地址判断的,由于在网外的客户没有允许的IP地址,所以造成大量教职工、学生无法访问的情况。    移动用户接入安全问题  无论是学校电子资源的版权还是校园网内的科研
教研组是幼儿园落实保教工作,开展教学研究,进行教育教学管理,提高教师业务水平的主阵地。教研团队的管理思想决定着教研和班级工作开展的质量,教研组长在教研活动中也就起着举足轻重的作用。  近几年,随着教育事业的蓬勃发展,一些年长的教师都相继输出到了本区的一些姊妹园所担当要职,一些年轻的教师相继走上了本园的管理岗位,引领着园所的教研工作。作为教研组长在引领教研工作时,一方面要求真:关注教师工作中的真问题
摘 要:校园网已在高校中日益普及并迅速发展,很多高校建立了自己的校园网络平台。但是由于校园网教学资源的缺乏,使得教师仍然需要花费大量的时间和精力去校园网以外搜索教学资源。为了丰富校园网内教学资源建设,本系统根据《教育资源建设规范》,利用Jsp Weblogic8.1 Sqlserver 2000技术进行了设计开发,并投入使用。  关键词:教学资源 校园网 JSP  中图分类号:TP393 文献标识
参与式家长会与传统家长会最大的不同,就在于打破了传统家长会中教师“一言堂”的窘境。参与式家长会通过话题讨论、视频观看、小组研讨、游戏体验等多种形式的综合运用,提高家长的参与度和积极性,为真正实现家园融合共育助力。然而,很多教师在实践参与式家长会的过程中往往会出现顾此失彼、只重视家长会形式,忽视了家长会的内涵与效果等问题。  参与式家长会在教育实践中存在的问题   教师对家长的调查不深入,游戏选择不
如今,微信等新媒体已进入幼教课堂,很多幼儿园要求教师编写微信,使用美拍、美篇等,记录幼儿园各类活动。有的老师会认为这项工作有难度,要花费许多精力,因此而烦恼或顾虑重重。那么如何有效使用新媒体,才能让它更好地服务于我们的教育教学,让教师们化“烦恼”为“愉悦”呢?先来看一个案例吧。  陈老师班上有个插班生叫小小,他总是喜欢一个人玩。平时在操场上,大家都在玩轮胎,他一个人爬攀登架。后来有一次在戶外活动中