`

SpringMVC与Struts2区别与比较总结

    博客分类:
  • java
 
阅读更多

1、Struts2是类级别的拦截, 一个类对应一个request上下文,SpringMVC是方法级别的拦截,一个方法对应一个request上下文,而方法同时又跟一个url对应,所以说从架构本身上SpringMVC就容易实现restful url,而struts2的架构实现起来要费劲,因为Struts2中Action的一个方法可以对应一个url,而其类属性却被所有方法共享,这也就无法用注解或其他方式标识其所属方法了。

2、由上边原因,SpringMVC的方法之间基本上独立的,独享request response数据,请求数据通过参数获取,处理结果通过ModelMap交回给框架,方法之间不共享变量,而Struts2搞的就比较乱,虽然方法之间也是独立的,但其所有Action变量是共享的,这不会影响程序运行,却给我们编码 读程序时带来麻烦,每次来了请求就创建一个Action,一个Action对象对应一个request上下文
3、由于Struts2需要针对每个request进行封装,把request,session等servlet生命周期的变量封装成一个一个Map,供给每个Action使用,并保证线程安全,所以在原则上,是比较耗费内存的

4、 拦截器实现机制上,Struts2有以自己的interceptor机制,SpringMVC用的是独立的AOP方式,这样导致Struts2的配置文件量还是比SpringMVC大。

5、SpringMVC的入口是servlet,而Struts2是filter(这里要指出,filter和servlet是不同的。以前认为filter是servlet的一种特殊),这就导致了二者的机制不同,这里就牵涉到servlet和filter的区别了。

6、SpringMVC集成了Ajax,使用非常方便,只需一个注解@ResponseBody就可以实现,然后直接返回响应文本即可,而Struts2拦截器集成了Ajax,在Action中处理时一般必须安装插件或者自己写代码集成进去,使用起来也相对不方便。

7、SpringMVC验证支持JSR303,处理起来相对更加灵活方便,而Struts2验证比较繁琐,感觉太烦乱。

8、Spring MVC和Spring是无缝的。从这个项目的管理和安全上也比Struts2高(当然Struts2也可以通过不同的目录结构和相关配置做到SpringMVC一样的效果,但是需要xml配置的地方不少)。

9、 设计思想上,Struts2更加符合OOP的编程思想, SpringMVC就比较谨慎,在servlet上扩展。

10、SpringMVC开发效率和性能高于Struts2。
11、SpringMVC可以认为已经100%零配置

 

分享到:
评论

相关推荐

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

    **Struts2与Spring MVC比较:** 1. **灵活性**:Spring MVC允许更多的自定义,如自定义拦截器、视图解析器,而Struts2的扩展性相对弱些。 2. **依赖注入**:Spring MVC是Spring框架的一部分,天然支持DI,而Struts2...

    SpringMVC.docx

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

    SpringMVC PPT_springmvc_

    总结,SpringMVC 以其强大的功能和灵活性,成为了 Java Web 开发的主流框架之一。通过理解并熟练掌握上述知识点,开发者可以构建出高效、可维护的 Web 应用程序。本教程的 PPT 将详细讲解这些内容,帮助你快速上手 ...

    springmvc入门参数绑定ssm整合

    六、SpringMVC与Struts2比较 SpringMVC和Struts2都是流行的Web应用程序框架,但它们有很多不同之处。SpringMVC基于MVC模式,Struts2基于MVC模式,但Struts2更加注重于WEB-INF下的配置文件。SpringMVC更加灵活和可...

    三歪教你学SpringMVC.docx

    #### 二、SpringMVC与Struts2对比 **2.1 Struts2的不足** - **安全性问题**:存在已知的安全漏洞。 - **性能较低**:处理请求的速度慢于SpringMVC。 - **配置繁琐**:需要大量的XML配置文件。 - **重量级**:相比...

    SpringMVC学习课堂笔记

    #### 五、SpringMVC与Struts2的区别 - **配置方式**:SpringMVC倾向于使用注解进行配置,而Struts2主要使用XML文件配置。 - **MVC组件划分**:SpringMVC将模型、视图、控制器分离得更彻底。 - **灵活性**:...

    spring在web.xml中和在struts中的不同配置..pdf

    Struts2的Spring插件会在Struts配置文件(如struts.xml)中定义一个`<package>`,包含`<interceptors>`和`<default-interceptor-ref>`元素,这样Struts2就会知道如何与Spring协作,将Action实例化和依赖注入交给...

    struts2,spring4,spring mvc,hibernate4,mybatis的三大框架(三套)

    Struts2、Spring4、Spring MVC、Hibernate4和MyBatis是Java开发中常见的四大框架,它们各自在Web应用开发中扮演着不同的角色。这里,我们将深入探讨这五大框架的核心功能、相互关系以及如何在实际项目中应用。 ...

    Struts2+Spring+hibernate中对action的单元测试环境搭建[总结].pdf

    Struts2+Spring+Hibernate 中的Action单元测试环境搭建 在软件开发中,单元测试是一种非常重要的测试方法,可以帮助我们确保代码的可靠性和稳定性。在 Struts2+Spring+Hibernate 框架中,对 Action 的单元测试环境...

    SpringMVC总结及SSM整合

    - 性能优于Struts2。 - 简单易学,使用约定优于配置。 - 天生和Spring无缝集成,利用Spring IOC容器和AOP特性。 - 支持Restful风格。 - 异常处理、本地化、国际化、数据验证、类型转换等增强功能。 - 提供拦截器,...

    Struts2技术笔记(个人总结的,都有代码示例)

    - **框架对比**:在Java Web开发领域,Struts2常被拿来与Webwork和SpringMVC等框架进行比较。虽然它们都采用了MVC设计模式,但Struts2在灵活性和可扩展性方面有着显著的优势。 #### 二、Struts2执行流程详解 ...

    全新mvc的升级 完全仿struts2

    **mvc模式详解** ...总结来说,MVC模式是现代Web应用的基础,而Struts2作为成熟的MVC框架,为开发者提供了强大且灵活的工具。通过学习和仿照Struts2,开发者可以加深对MVC的理解,提升软件开发的效率和质量。

    在Netbeans中使用Struts2.0+Spring2.5+Hibernate框架

    其中,Struts2、Spring与Hibernate作为经典的“SSH”组合(Struts-Spring-Hibernate),在Java Web开发领域占据着重要的地位。本文旨在通过一个简单的登录示例项目,详细介绍如何在Netbeans IDE环境下构建基于Struts...

    SpringMVC文档

    #### 二、SpringMVC与其他MVC框架的比较 1. **运行性能**: - **JSP+Servlet > Struts1 > SpringMVC > Struts2 + Freemarker > Struts2**: 主要原因是Struts2中使用了OGNL和值栈机制,这在高并发情况下会影响性能...

    SSH mybatis springmvc lucene Jquery oracle等笔记总结.docx

    SpringMVC是Spring框架的一部分,提供了一种MVC模式实现,与Struts2相比,它更注重于组件的解耦和灵活性,使用了IoC容器来管理组件,并提供了多种视图解析器。 【jQuery】 jQuery是一个JavaScript库,简化了DOM操作...

    springmvc第一天课堂笔记.docx

    #### 六、SpringMVC与Struts2的区别 1. **控制器**:SpringMVC中的控制器是单例模式,而Struts2中的Action是多例模式。 2. **参数绑定**:SpringMVC支持直接的参数绑定,而Struts2需要通过ActionForm来绑定参数。 3...

    SpringMVC学习.pdf

    要理解SpringMVC,我们首先需要知道其重要性以及与其他流行的MVC框架如Struts1和Struts2的不同。与这两者不同的是,SpringMVC是由Spring社区所维护,与Spring框架集成得更为紧密。它被设计为一个轻量级框架,不依赖...

    springMVC案例

    - **开发效率**:与性能表现相反,开发效率大致顺序为:Struts2 > SpringMVC > Struts1 > JSP + Servlet。 #### 四、基于Spring 3.2的Annotation方式搭建SpringMVC环境 1. **下载SpringMVC库** - 从官方网址下载...

    传智播客_Springmvc+Mybatis由浅入深全套视频教程-SpringMVC笔记(两天)

    - **优势**:相比其他框架,如Struts2,SpringMVC的组件之间耦合度更低,配置更加灵活,且易于扩展。 #### MVC设计模式在B/S系统下的应用 - **Model**(模型):代表数据和业务逻辑。 - **View**(视图):负责展示...

Global site tag (gtag.js) - Google Analytics