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

从MVC的角度看Struts1和Struts2的区别

阅读更多
   Struts1和Struts2都是优秀的MVC框架,MVC模式的目的是实现web的职能分离。MVC即模型、视图、控制器,模型层实现业务逻辑,视图层用于用户交互,控制器担当模型的视图的桥梁,它分发用户的请求并选择视图显示给用户,同时也解释用户的输入并映射成模型层可执行的操作。

   Struts1的控制层由ActionServlet和ActionMapping构成,ActionServlet继承自Servlet,它包含一组基于配置的ActionMapping对象,每个ActionMapping对象实现了一个请求到模型层中的一个Action之间映射,ActionServlet接收并分发用户的请求。

Model部分由Action和ActionForm对象构成,Strut1中所有的Action处理器对象都是必须继承Action类,Action处理器对象用于封装了具体的处理逻辑,调用业务逻辑模块,并且把响应提交到合适的View组件以产生响应。通过ActionForm组件对象实现了对View和
Model之间交互的支持。 在Strut1中Action处理器是单例的,所以有线程安全的问题。

View部分是通过JSP技术实现的,并且提供了一套自定义的标记库。

  Struts2是Strut和webwork的整合,它的控制层由FilterDispatcher和Interceptor构成,FilterDispatcher根据请求调用相应的业务逻辑控制器(Action)并根据配置加载Action相关的所有Interceptor。

Strut2中的Action可以是一个pojo,通常包含了一个execute方法,该方法返回一个字符串,当业务控制器处理完用户请求后,根据处理结果不同,execute方法返回不同字符串——每个字符串对应一个视图名,。 (实际上Action是个被代理的对象,ActionProxy为Interceptor、Action和Result提供了执行环境。 )Struts 2 中的Action对象为每一个请求产生一个实例,因此没有线程安全问题。在与spring集成时,应设置作用域scope为prototype。

Struts2并不强制View层的表现形式,可以是JSP、Freemarker模板、二进制流输出等等。也有自己的一套标签,并支持OGNL表达式。


分享到:
评论

相关推荐

    struts1原理,struts2原理,spring mvc原理,struts1和struts2,struts和spring mvc

    总结来说,Struts1、Struts2和Spring MVC各有优劣,选择哪个框架主要取决于项目需求、团队熟悉程度以及对框架特性的偏好。在现代Java Web开发中,Spring MVC因其灵活性和强大的功能,成为更受欢迎的选择。

    MVC模式和Struts框架

    MVC模式和Struts框架

    Struts 2 自定义MVC 框架

    自定义Struts 2 MVC框架的过程有助于深入理解其工作原理,从而更好地应用和优化项目。 首先,我们来详细探讨Struts 2的核心组件和它们的角色: 1. **模型(Model)**:模型是应用的核心,负责处理业务逻辑和数据。在...

    Struts1和Struts2的区别和对比

    Struts1和Struts2是两个非常著名的Java Web框架,它们都用于构建MVC(Model-View-Controller)架构的应用程序。尽管它们都是Struts家族的一部分,但它们在设计哲学和实现方式上存在显著差异。 首先,从Action类的...

    MVC与Struts简介

    Struts2框架的产生,经历了从Struts1到WebWork再到Struts2的发展过程。Struts1存在灵活性不足、数据传输复杂、缺乏拦截器、Servlet和JSP处理过程混乱、数据传输混乱和可访问性差等问题。Struts2通过引入POJO(Plain ...

    struts1 mvc基本原理

    总的来说,Struts1提供了一套完善的框架,使开发者能够以MVC的方式组织Java Web应用,从而提高代码的可维护性和可扩展性。尽管现在有了更新的框架如Spring MVC,但理解Struts1的基本原理对于学习其他Web框架仍然非常...

    ACCP 5.0 Y2 MVC和Struts2本书的选择题答案

    在IT行业中,MVC(Model-View-Controller)和Struts2是两种广泛使用的Web应用程序开发框架,尤其在Java平台上。ACCP(Advanced Certified Computer Professional)5.0 Y2是某培训机构的一个课程版本,该课程可能涵盖...

    Struts1 MVC实例

    Struts1是一个经典的Java Web开发框架,它遵循MVC(Model-View-Controller)设计模式,使得开发者可以更有序地组织代码,提高开发效率。在这个"Struts1 MVC实例"中,我们将深入探讨如何利用Struts1实现一个基础的...

    程序员必看的书籍Struts1和Struts2的区别

    - **Action类设计**:Struts1强制要求Action类继承抽象基类,而Struts2则更加灵活,支持接口实现和注解,这体现了从侵入式编程向非侵入式编程的转变。 - **配置灵活性**:Struts2提供了更为灵活的配置选项,支持XML...

    struts1和struts2的区别

    从开发者角度看,就是说需要显示给用户的数据可以直接从Action中获取,而不像Struts1.x那样,必须把相应的Bean存到Page、Request或者Session中才能获取。Struts1.x 必须继承org.apache.struts.action.Action或者其...

    Struts2MVC模式

    总的来说,Struts2通过MVC模式将Web应用的各部分职责划分清晰,提供了一套完整的控制流程和灵活的配置机制,使得开发者能够专注于业务逻辑的实现,提高开发效率。同时,源码的开源性和丰富的开发工具进一步支持了...

    spring-webmvc-struts.jar

    spring-webmvc-struts.jar对Struts和Spring整合时需要用到的包

    [Struts 2权威指南--基于WebWork核心的MVC开发(高清完整版) 1/12

    第1章 Struts 2概述,第2章 Struts 2下的HelloWorld,第3章 Struts 2基础,第4章 深入Struts 2,第5章 Struts 2的类型转换,第6章 文件的上传和下载.,第7章 Struts 2的拦截器,第8章 Struts 2的输入校验,9.2 ...

    struts1和struts2的jar包

    总的来说,Struts1和Struts2都是为了简化Java Web应用的开发,提供了MVC模式的实现。尽管Struts2在许多方面进行了改进,但Struts1仍有许多项目在使用,理解这两个框架的差异和使用方法对于Java Web开发者来说非常...

    Struts1和Struts2区别

    Struts1和Struts2是两个非常著名的Java Web框架,由Apache软件基金会开发,用于构建MVC(Model-View-Controller)模式的应用程序。这两个框架都极大地简化了Web应用程序的开发,但它们在设计思想、架构和功能特性上...

    struts与struts2的区别

    Struts1使用的是JSP和Tiles框架来组织视图,而Struts2引入了FreeMarker和Velocity等模板引擎,提供了更多样化的视图渲染方式。 **5. 配置方式:** Struts1的配置主要在XML文件中完成,而Struts2引入了更简洁的注解...

    Struts1与Struts2原理 区别详解汇总

    ### Struts1与Struts2原理及区别详解 #### Struts1原理概述 **Struts1** 是一种基于MVC架构的开源Java Web框架,它主要用于构建动态网站和应用程序。Struts1的核心组件包括ActionServlet、ActionForm以及Action...

    MVC原理(struts框架详解).

    MVC原理(struts框架详解), Struts 质上就是在Model2的基础上实现的一个MVC架构。它只有一个中心控制器,他采用XML定制转向的URL。采用Action来处理逻辑

    struts1应用及MVC介绍.ppt

    Struts1是一个基于MVC(Model-View-Controller)设计模式的开源Java框架...虽然目前Struts1已经有些过时,被更现代的框架如Spring MVC所替代,但对于理解MVC模式和Web应用开发的基本流程,学习Struts1仍然是有价值的。

Global site tag (gtag.js) - Google Analytics