`
ITsource源代码
  • 浏览: 43494 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

终于有SpringMvc与Struts2的对比啦

阅读更多

       目前企业中使用SpringMvc的比例已经远远超过Struts2,那么两者到底有什么区别,是很多初学者比较关注的问题,下面我们就来对SpringMvc和Struts2进行各方面的比较:

 

1.核 心控制器(前端控制器、预处理控制器):对于使用过mvc框架的人来说这个词应该不会陌生,核心控制器的主要用途是处理所有的请求,然后对那些特殊的请求 (控制器)统一的进行处理(字符编码、文件上传、参数接受、异常处理等等),spring mvc核心控制器是Servlet,而Struts2是Filter。

 

2.控制器实例:Spring Mvc会比Struts快一些(理论上)。Spring Mvc是基于方法设计,而Sturts是基于对象,每次发一次请求都会实例一个action,每个action都会被注入   属性,而Spring更像Servlet一样,只有一个实例,每次请求执行对应的方法即可(注意:由于是单例实例,所以应当避免全局变量的修改,这样会产生线程安全问题)。

 

3. 管理方式:大部分的公司的核心架构中,就会使用到spring,而spring mvc又是spring中的一个模块,所以spring对于spring mvc的控制器管理更加简单方便,而且提供了全 注解方式进行管理,各种功能的注解都比较全面,使用简单,而struts2需要采用XML很多的配置参数来管理(虽然也可以采用注解,但是几乎没有公司那 样使用)。

 

4.参数传递:Struts2中自身提供多种参数接受,其实都是通过(ValueStack)进行传递和赋值,而SpringMvc是通过方法的参数进行接收。

 

5.学习难度:Struts更加很多新的技术点,比如拦截器、值栈及OGNL表达式,学习成本较高,springmvc 比较简单,很较少的时间都能上手。

 

6.intercepter 的实现机制:struts有以自己的interceptor机制,spring mvc用的是独立的AOP方式。这样导致struts的配置文件量还是比spring mvc大,虽然struts的配置能继承,所以我觉得论使用上来讲,spring mvc使用更加简洁,开发效率Spring MVC确实比struts2高。spring mvc是方法级别的拦截,一个方法对应一个request上下文,而方法同时又跟一个url对应,所以说从架构本身上spring3 mvc就容易实现restful url。struts2是类级别的拦截,一个类对应一个request上下文;实现restful url要费劲,因为struts2 action的一个方法可以对应一个url;而其类属性却被所有方法共享,这也就无法用注解或其他方式标识其所属方法了。spring3 mvc的方法之间基本上独立的,独享request response数据,请求数据通过参数获取,处理结果通过ModelMap交回给框架方法之间不共享变量,而struts2搞的就比较乱,虽然方法之间 也是独立的,但其所有Action变量是共享的,这不会影响程序运行,却给我们编码,读程序时带来麻烦。

 

7.spring mvc处理ajax请求,直接通过返回数据,方法中使用注解@ResponseBody,spring mvc自动帮我们对象转换为JSON数据。

4
1
分享到:
评论
1 楼 cklxh 2016-03-24  
此文明显为spring MVC拉偏架(从文字语法中可看出),而且博主对struts2用的不太熟,可能只是做过一些了解。

相关推荐

    springmvc、struts2区别、mybatis、hibernate区别

    struts2介绍、和springmvc对比,mybatis介绍和hibernate对比

    简单了解SpringMVC与Struts2的区别

    SpringMVC与Struts2的区别 SpringMVC和Struts2都是流行的Java Web框架,但它们之间存在着许多区别。下面我们将对比SpringMVC和Struts2的主要区别,帮助开发者更好地选择合适的框架。 首先,Struts2是类级别的拦截...

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

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

    SpringMVC与hibernate整合12实例

    11. SpringMVC与Struts2对比:分析两种MVC框架的优缺点,理解其工作原理差异。 12. 性能优化:探讨缓存机制,如二级缓存的使用,提高系统性能。 以上实例涵盖了SpringMVC和Hibernate整合的各个方面,对于初学者和...

    Java SpringMVC 学习路线.pdf

    在对比SpringMVC与Struts2时,可以发现两者在设计思想和实现细节上有所区别。SpringMVC作为新起之秀,在市场使用率上已经超过了Struts2。SpringMVC的控制器是基于方法级别的拦截,而Struts2则是基于类级别的拦截。...

    八、SpringMVC

    SpringMVC与Struts2运行流程对比 SpringMVC和Struts2都是基于MVC架构的Web应用程序框架,但它们的运行流程有所不同。SpringMVC的运行流程主要包括以下几个步骤: 1. 客户端请求:客户端发送请求到服务器。 2. ...

    SpringMVC教程及实现原理

    - **性能对比**:由于Struts2每次请求都需要创建新的Action实例,因此其性能通常不如SpringMVC。 - **参数传递**:SpringMVC支持更加灵活的参数传递方式,可以通过注解(如`@RequestParam`、`@PathVariable`等)来...

    三歪教你学SpringMVC.docx

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

    springMVC使用文档

    #### SpringMVC 与 Struts2 的比较 - **入口机制**:SpringMVC 使用 Servlet 作为入口,而 Struts2 使用 Filter。 - **设计原则**:SpringMVC 基于方法设计,参数传递通过方法参数;Struts2 基于类设计,参数传递...

    SpringMVC controller

    对于SpringMVC与其它MVC框架的对比,例如Struts、WebWork(WebWork2)等,每种框架都有自己的设计理念和优势。Struts是一个成熟的MVC框架,拥有庞大的信息资源和开发社区,适合于实际的Web应用产品研发。WebWork2的...

    SpringMVC面试专题.pdf

    SpringMVC 是一款由 Spring 框架提供的重要模块,主要负责处理 Web 应用的 Model-...这些知识点涵盖了 SpringMVC 的核心概念、工作流程以及与其他框架的对比,对于理解 SpringMVC 并在面试中回答相关问题非常有帮助。

    SpringMVC入门精通

    #### 三、SpringMVC 与 Struts2 的对比 1. **架构差异**: - **SpringMVC**:方法级别的拦截,每个请求映射到一个方法。 - **Struts2**:类级别的拦截,一个类对应一个请求上下文。 - 结果:SpringMVC 更易于...

    SpringMVC面试专题1

    【SpringMVC面试专题1】 1. **SpringMVC是什么?...以上内容涵盖了SpringMVC的基本概念、优点、工作流程、控制器的单例模式问题、与Struts2的对比,以及请求映射等关键知识点,这些是面试中可能会遇到的问题。

    struts2学习笔记

    #### 二、Struts2与Struts1的关键区别 1. **实例管理**:Struts1中Action是单例模式,而Struts2采用多实例模式,提高了线程安全性和性能。 2. **Servlet API依赖**:Struts1的Action类与Servlet API紧密耦合,限制...

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

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

    springMVC案例

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

    SpringMVC.docx

    5. **拦截器机制**:Struts2有自己独特的拦截器(Interceptor)机制,而SpringMVC采用AOP(面向切面编程)的方式实现拦截功能。 #### 五、SpringMVC的优势 - **灵活性**:SpringMVC允许开发者自由选择视图技术,如...

    SpringMVC4教程-超权威--超详细

    #### 十七、SpringMVC对比Struts2 - **设计理念差异**:SpringMVC采用了更现代的设计理念,更加注重组件间的松耦合,而Struts2则沿用了Action-Based的设计模式。 - **性能比较**:SpringMVC由于其简洁的设计和高效...

    springMVC01.pdf

    - **对比 Struts1 和 Struts2**:SpringMVC 相比 Struts1 和 Struts2,提供了更灵活的配置和更强大的注解支持,降低了 XML 配置的工作量,同时也支持更丰富的拦截器机制。 4. **SpringMVC 的配置**: - **Maven ...

    SpringMVC+Mybatis所需JAR包

    5. **struts2-core-2.3.20.jar**:Struts2是另一个流行的MVC框架,虽然Spring MVC更常用,但这个包可能是遗留的或者用于对比测试。通常在Spring MVC项目中,Struts2不是必需的。 6. **xwork-core-2.3.20.jar**:...

Global site tag (gtag.js) - Google Analytics