`
ymq267
  • 浏览: 130399 次
  • 性别: Icon_minigender_1
  • 来自: 吉林
社区版块
存档分类
最新评论

控制层SpringMVC和Struts2的区别

 
阅读更多
我们现在流行的常用的MVC层,控制层Controller层的框架主要有Struts2和SpringMVC两个框架,分别对应着Action和Controller。那么SpringMVC和Struts的主要区别有那些呢?

一、框架机制

我们知道Struts2采用Filter实现,而SpringMVC则采用Servlet实现。

Struts2使用StrutsPrepareAndExecuteFilter,而SpringMVC使用DispatcherServlet。Filter是一种特殊的Servlet。Filter在容器启动之后即初始化;服务停止以后坠毁,晚于Servlet。Servlet在是在调用时初始化,先于Filter调用;服务停止后坠毁。



二、拦截机制

1、Struts2

Struts2框架是类级别的拦截,每次请求就会创建一个Action,和Spring整合时Struts2的Action Bean注入作用域是原型模式prototype(否则会出现线程并发问题),然后通过setter,getter吧request数据注入到属性。

Struts2中,一个Action对应一个request,response上下文,在接收参数时,可以通过属性接收,这说明属性参数是让多个方法共享的。



2、SpringMVC

SpringMVC是方法级别的拦截,一个方法对应一个Request上下文,所以方法直接基本上是独立的,独享request,response数据。而每个方法同时又何一个url对应,参数的传递是直接注入到方法中的,是方法所独有的。处理结果通过ModeMap返回给框架。

在Spring整合时,SpringMVC的Controller Bean默认单例模式Singleton,所以默认对所有的请求,只会创建一个Controller,有应为没有共享的属性,所以是线程安全的,如果要改变默认的作用域,需要添加@Scope注解修改。



三、性能方面

SpringMVC实现了零配置,由于SpringMVC基于方法的拦截,有加载一次单例模式bean注入。而Struts2是类级别的拦截,每次请求对应实例一个新的Action,需要加载所有的属性值注入,所以决定了SpringMVC更加快于Struts2。



四、拦截机制

Struts2有自己的拦截Interceptor机制,SpringMVC这是用的是独立的Aop方式。
分享到:
评论

相关推荐

    springMVC+struts+hibernate

    Spring MVC可以替代Struts作为控制器层,因为它的灵活性和可扩展性更强。Hibernate则作为数据访问层,处理与数据库的交互。这种整合方式通常被称为"Spring全家桶",它允许开发者利用各个框架的优点,构建出健壮且...

    springmvc-struts

    可以构建一个功能强大的Java Web应用,通过SpringMVC处理请求,Struts(尤其是Struts2)提供额外的MVC功能,MyBatis作为数据访问层处理数据库操作,而JUnit则帮助进行单元测试,确保整个系统的稳定性和正确性。...

    springmvc+struts+mybatis项目学习

    在实际项目中,这三者可能会有以下的协作流程:用户发送请求,DispatcherServlet接收到请求后,根据配置找到对应的Struts2 Action或者Spring MVC Controller来处理。Controller/Action处理业务逻辑,并通过MyBatis...

    Spring4,SpringMVC,Struts,Hibernate,Maven,Mybatis学习资料

    Struts2是其最新版本,采用Model-View-Controller设计模式,提供了一套完整的解决方案,包括Action、Interceptor、Result等概念,使得开发者可以更方便地处理请求和响应。 4. Hibernate:Hibernate是一个对象关系...

    maven+(springmvc,mybatis,struts2,hibernate)两两整合

    整合Struts2与MyBatis或Hibernate时,Struts2的动作类(Action)接收请求并调用Service层,Service层再通过MyBatis或Hibernate操作数据库。 整合步骤通常包括以下部分: - 配置POM.xml文件:添加所需框架的依赖。 -...

    Java Web框架例子合集(spring,springmvc,mybatis,struts2,hibernate)

    Struts2提供了更强大的动作类和拦截器机制,可以实现复杂的业务逻辑控制。它整合了多种开源技术,如Freemarker和Tiles,为视图层提供了更多的选择。Struts2还支持国际化和主题,增强了用户体验。 5. **Hibernate**...

    Hibernate.mybatis.springMVC.struts2.spring

    例如,Spring MVC作为前端控制器,Struts2可以用于特定的Action处理,Hibernate负责数据持久化,而MyBatis则提供更灵活的SQL操作。通过合理选择和集成,可以打造高效、稳定且易于维护的系统。在实际项目中,通常会...

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

    Struts、Spring MVC和Struts2是Java Web开发中三个重要的MVC框架,它们都用于构建基于模型-视图-控制器(MVC)设计模式的Web应用程序。下面将分别介绍这三个框架的工作原理,并进行对比。 **Struts1原理:** Struts...

    maven+struts2+spring+mybatis+springMVC

    Maven负责构建和依赖管理,Struts2作为前端控制器处理HTTP请求,Spring提供业务逻辑和依赖注入,MyBatis处理数据访问,而Spring MVC则进一步优化了Web层的结构,使得视图和控制逻辑更清晰。 通过这样的整合,开发者...

    MVC.rar_SpringMVC Struts_java MVC_mvc_spring-aspects-3.2.2_spri

    描述中提到这是一个使用Spring 3和Hibernate 4构建的完全可运行的SpringMVC实例,这表明它不仅包含了前端控制器的实现,还涉及了持久层的管理。 在Java Web开发中,Model-View-Controller(MVC)是一种广泛采用的...

    SpringMVC精品资源--基于maven的多框架和多视图融合技术(Struts1、Struts2、Spring、.zip

    虽然现在已经逐渐被SpringMVC和Struts2取代,但理解其工作原理有助于理解MVC模式的历史发展。 4. **Struts2**:Struts2是Struts1的升级版,它结合了WebWork的优势,提供了更强大的拦截器(Interceptor)机制和更...

    SSH(struts2,Hibernate,Spring)整合及测试亲测可用所需jar包

    SSH是Java开发中的一种经典企业级应用框架,由Struts2、Hibernate和Spring三个开源框架组合而成。这个框架集合提供了模型-视图-控制器(MVC)架构模式,持久层管理,以及服务层的实现,使得开发高效且灵活。下面我们...

    Spring+SpringMVC+mybatis+struts2的jar,有83个

    在Java开发领域,Spring、SpringMVC、MyBatis和Struts2是四个非常重要的框架,它们被广泛用于构建企业级应用。这个压缩包包含了这四个框架相关的83个jar文件,为开发者提供了一站式的解决方案,避免了逐一搜索和添加...

    某著名培训机构struts2+mybatis+springMVC整合代码

    Struts2、MyBatis和SpringMVC是Java Web开发中的三大框架,它们各自负责不同的职责,协同工作能构建出高效、灵活的企业级应用。在这个名为"某著名培训机构struts2+mybatis+springMVC整合代码"的压缩包中,你将找到一...

    struts2,hibernate,spring,springmvc,mybatis

    这些文件名揭示了一系列关于Java企业级开发中常用框架的学习教程,包括Struts2、Hibernate、Spring、Spring MVC和MyBatis。以下是对这些框架及其在实际应用中的关键知识点的详细阐述: 1. **Struts2**:Struts2是...

    struts2+hibernate整合增删改查加注册登录Demo包含数据库自动建表语句

    Struts2和Hibernate是两种非常流行的Java Web开发框架,它们分别负责MVC(Model-View-Controller)架构中的控制层和持久层。本教程通过一个简单的Demo,展示了如何将这两个框架整合,实现基本的CRUD(创建、读取、...

    SpringMVC.docx

    【SpringMVC与Struts的区别】 SpringMVC相比Struts具有以下优势: 1. 更高的灵活性和可扩展性。 2. 更好的架构设计,如约定优于配置。 3. 简洁的Web层开发,支持RESTful风格。 4. 与Spring框架其他组件深度集成。 5...

    Struts2+spring+ibatis三大框架整合实例

    Struts2、Spring和iBatis是Java Web开发中常用的三大框架,它们分别负责MVC模式中的Action层、业务逻辑层和服务数据访问层。本文将详细介绍这三个框架如何整合,以及在实际项目中如何运用。 首先,Struts2作为表现...

    吴天雄--SpringMVC笔记.doc

    - 入口不同:SpringMVC 由 Servlet 控制,Struts2 通过 Filter 实现。 - 设计模式:SpringMVC 基于方法设计,而 Struts2 基于类。 - 性能:SpringMVC 因为基于方法设计,可能稍快于 Struts2。 - JSR303 支持:...

    Struts和Spring两种MVC框架究竟有什么不同呢?

    Struts和Spring是Java Web开发中两种非常流行的MVC(Model-View-Controller)框架,它们都致力于解耦业务逻辑和展示层,提高代码的可维护性和可测试性。然而,两者在设计理念、功能特性以及实现方式上存在显著差异。...

Global site tag (gtag.js) - Google Analytics