论文部分内容阅读
摘 要:软件框架结构对于软件体系结构的规范化和软件维护具有重要的作用。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.
关键词: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.