`
txf2004
  • 浏览: 6887712 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

用Struts建立MVC应用的介绍

阅读更多

在重新总结了Struts跟MVC模式的关系之后,在IBM Java开发者社区找到了一篇题为“用Struts建立MVC应用的介绍”,作为总结之后Struts内容的一个补充,看了感觉很好。

(转载 部分节选)

Struts的结构和处理流程简介

Struts是Apache组织的一个项目,像其他的Apache组织的项目一样,它也是开放源码项目。Struts是一个比较好的MVC框架提供了对开发MVC系统的底层支持,它采用的主要技术是Servlet,JSP和custom tag library。获取它的使用版本和具体信息可以查阅 http://jakarta.apache.org网站。

Struts框架的基本构成由下图所示:
作为一个MVC的框架,Struts对Model、View和Controller都提供了对应的实现组件,对应上面的UML图,分别进行介绍,并且看看它们是如何结合在一起的。
Controller:控制器的作用是从客户端接受请求,并且选择执行相应的业务逻辑,然后把响应结果送回到客户端。在Struts中Controller功能由图中ActionServlet和ActionMapping对象构成:核心是一个Servlet类型的对象ActionServlet,它用来接受客户端的请求。ActionServlet包括一组基于配置的ActionMapping对象,每个ActionMapping对象实现了一个请求到一个具体的Model部分中Action处理器对象之间的映射。
Model: MVC系统中的Model部分从概念上可以分为两类--系统的内部状态,和改变系统状态的动作。Struts为Model部分提供了Action和ActionForm对象:所有的Action处理器对象都是开发者从Struts的Action类派生的子类。Action处理器对象封装了具体的处理逻辑,调用业务逻辑模块,并且把响应提交到合适的View组件以产生响应。Struts提供的ActionForm组件对象,它可以通过定义属性描述客户端表单数据。开发者可以从它派生子类对象,利用它和Struts提供的自定义标记库结合可以实现对客户端的表单数据的良好封装和支持,Action处理器对象可以直接对它进行读写,而不再需要和request、response对象进行数据交互。通过ActionForm组件对象实现了对View和Model之间交互的支持。Struts通常建议使用一组JavaBean表示系统的内部状态,根据系统的复杂度也可以使用像Entity EJB 和 Session EJB等组件来实现系统状态。Struts建议在实现时把"做什么"(Action)和"如何做"(业务逻辑)分离。这样可以实现业务逻辑的重用。
View:Struts应用中的View部分是通过JSP技术实现的。Struts提供了自定义的标记库可以使用,通过这些自定义标记可以非常好地和系统的Model部分交互,通过使用这些自定义标记创建的JSP表单,可以实现和Model部分中的ActionForm的映射,完成对用户数据的封装,同时这些自定义标记还提供了像模板定制等多种显示功能。
Struts框架的处理流程清楚的体现了MVC系统的特点,简单的Struts组件结构如图2所示。Struts Controller ActionServlet处理客户请求,利用配置的ActionMapping对象把请求映射到Action处理器对象进行处理。Action处理对象访问ActionForm中的数据,处理和响应客户请求,它还调用后台的Bean组件,这些组件封装了具体的业务逻辑。Action处理器对象根据处理结果通知Controller,Controller进行下一步的处理。

图2 Struts框架的组件结构图
利用Struts框架开发MVC系统要做的工作
由于Struts已经为我们提供了一个非常好的MVC框架,我们利用Struts开发MVC系统时可以大大加快开发的速度。在开发时可以采用的一个开发流程如下(引自资料3):
收集和定义应用需求。
基于数据采集和显示的原则定义和开发"屏幕显示"需求 。
为每一个"屏幕显示"定义访问路径。
定义ActionMappings建立到应用业务逻辑之间的联系。
开发满足"屏幕显示"需求的所有支持对象。
基于每一个"屏幕显示"需求提供的数据属性来创建对应的ActionForm对象
开发被ActionMapping调用的Action对象。
开发应用业务逻辑对象 (Bean,EJB,等等)。
对应ActionMapping设计的流程创建JSP页面。
建立合适的配置文件struts-config.xml , web.xml。
开发/测试/部署
具体在使用Struts框架时,对应各个部分的开发工作主要包括:
Model部分:采用JavaBean和EJB组件,设计和实现系统的业务逻辑。根据不同的请求从Action派生具体Action处理对象。完成"做什么"的任务来调用由Bean构成的业务组件。创建由ActionForm 的派生类实现对客户端表单数据的封装。
Controller部分:Struts为我们提供了核心控制部分的实现。我们只需要配置ActionMapping对象
View部分:为了使用Model中的ActionForm 对象,我们必须用Struts提供的自定义标记创建HTML 表单。利用Struts提供的自定义标记库编写用户界面把应用逻辑和显示逻辑分离。Struts框架通过这些自定义标记建立了View和Model之间的联系。Struts的自定义标记还提供了很多定制页面的功能。
同时需要编辑两个配置文件:web.xml和struts-config.xml。通过它们配置Struts系统中的各个模块之间的交互。下面对这两个配置文件做一些介绍:
web.xml文件的配置:
web应用中的web.xml是第一个要配置的地方,它描述了系统的Controller对象。在web.xml中增加如下标记
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>application</param-name>
・・・・・・
</servlet>
说明:这个servlet对象就是Struts提供的Controller,还可以为它指定初始化参数,比如对系统应用属性的支持。
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servelt-mapping>
说明:实现客户请求的url信息和服务器端具体处理的映射关系。
<taglib>
<taglib-url>/WEB-INF/struts-bean.tld</taglib-url>
<taglib-location>/WEB-INF/struts-bean.tld</taglib-location>
</taglib>
・・・・・・・
说明:添加对Struts提供的应用所使用的自定义标记库的引用。
struts-config.xml文件的配置:
struts-config.xml是用于建立Controller和Model之间的关系的。它描述了Controller所使用的把请求对应到具体处理的法则,同时它还描述了客户提供的数据与ActionForm组件的对应映射关系。
在struts-config.xml中增加如下标记
<form-beans>
<form-bean name="loginForm" type="loginForm" />
</form-beans>
说明:<form-bean>标记描述一个具体的ActionForm子类对象,通过它和JSP页面中的自定标记的结合使用可以实现ActionForm和View之间的数据映射。
<action-mappings>
<action
path="/login"
type="loginAction"
name="loginForm"
input="/login.jsp" ・・・ />
</action-mappings>
说明:<action-mappings>标记描述了请求和处理的一对一映射关系。input和path属性唯一的标记了客户端的一个请求,name属性描述封装客户端的数据的ActionForm子类对象。Type属性描述处理这个请求的Action子类对象。
通过对两个配置文件的配置,把Struts框架中MVC的各个部分联系起来,实现一个真正的MVC系统。
(完 查看原文
分享到:
评论

相关推荐

    用Struts建立MVC应用的介绍.doc

    用Struts建立MVC应用的介绍.doc

    Struts1.0 开发指南 多个文档

    Struts1.0学习文档-初学者入门.doc Struts,MVC 的一种开放源码实现.doc Struts.doc Struts标记库.doc Struts开发指南之J2EE n层结构.doc Struts开发指南之MVC架构.doc ...用Struts建立MVC应用的介绍.doc

    struts2.0开发环境的搭建及HelloWorld的演示

    struts2.0开发环境的搭建及HelloWorld的演示

    struts-2.3.16.1

    如果我们想混合使用Servlets和JSP的优点来建立可扩展的应用,struts是一个不错的选择。 Struts 是Apache软件基金会(ASF)赞助的一个开源项目。它最初是Jakarta项目中的一个子项目,并在2004年3月成为ASF的顶级项目...

    struts2JAR包

    Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。Struts 2是Struts的下一代产品,是在 struts 1和WebWork的...

    JSP程序设计课件包含Hibernate,Struts的介绍

    11. Struts 技术介绍:Struts 1在MVC的基础上创建的设计模式。使更加容易应用MVC架构进行JSP网站编程,维护和测试。 Struts 1通过struts-config.xml文件设置动作、表单类、结果显示等。Struts 1通过Action类处理各种...

    struts2必须jar包

    Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。Struts 2是Struts的下一代产品,是在 struts 1和WebWork的...

    review.struts.zip

    Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。Struts 2是Struts的下一代产品,是在 struts 1和WebWork的...

    struts-2.3.16.1.zip

    Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。Struts 2是Struts的下一代产品,是在 struts 1和WebWork的...

    struts-2.3.16.3-all.zip

    Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。Struts 2是Struts的下一代产品,是在 struts 1和WebWork的...

    struts-2.5-all

    struts是开源框架。使用Struts的目的是为了帮助我们减少在运用MVC设计模型来开发Web应用的时间。如果我们想混合使用Servlets和JSP的优点来建立可扩展的应用,struts是一个不错的选择。

    struts-2.3.15

    Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。Struts 2是Struts的下一代产品,是在 struts 1和WebWork的...

    Struts+Spring+Hibernate快速入门

    本文是开发基于spring的web应用的入门文章,前端采用Struts MVC框架,中间层采用spring,后台采用Hibernate。  本文包含以下内容:  •配置Hibernate和事务  •装载Spring的applicationContext.xml文件  •...

    Struts开发实例.rar

     11、如何在Struts 数据库应用程序中实现记录的删除、更新及链接;  12、如何在Struts 数据库应用程序中实现记录的添加;  13、如何建立一个带登陆页面的Struts数据库应用程序;  14、如何建立一个带登陆页面...

    Hibernate+Struts的J2EE应用开发

    关键字Hibernate,Struts,MVC,持久层引言随着Java技术的逐渐成熟与完善,作为建立企业级应用的标准平台,J2EE平台得到了长足的发展。借助于J2EE规范中包含的多项技术:EnterpriseJavaBean(EJB)、JavaServlets...

Global site tag (gtag.js) - Google Analytics