终于有springmvc与struts2的对比啦(转)

     2022-04-30     107

关键词:

本文转自:http://www.itsource.cn/web/news/5/20150318/370.html

目前企业中使用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数据。

 

jsf/springmvc/struts2区别与比较

SpringMVC与Struts2区别与比较总结1、Struts2是类级别的拦截,一个类对应一个request上下文,SpringMVC是方法级别的拦截,一个方法对应一个request上下文,而方法同时又跟一个url对应,所以说从架构本身上SpringMVC就容易实现restfulurl,而stru... 查看详情

springmvc与struts2的区别

1、 springmvc是基于方法开发的,而struts2是基于类开发的。Springmvc将url和Controller方法进行映射。映射成功后springmvc生成一个Handler对象,对象中只有一个method。方法执行结束,形参数据销毁。2、springmvc可以单例开发ÿ... 查看详情

前端框架性能对比

运行性能对比:JSP+Servlet>Struts1>SpringMvc>Struts2+freemarker>>Struts2+OGNL+值栈 但是开发效率上正好相反,要特别注意,SpringMvc和Struts2不相上下 查看详情

springmvc与struts2区别和第一个springmvc应用

首先先从网上找到一篇描述SpringMVC和Struts2的区别的文章文章转载路径:http://blog.csdn.net/chenleixing/article/details/44570681下面是原文:1、Struts2是类级别的拦截,一个类对应一个request上下文,SpringMVC是方法级别的拦截,一个方法对应... 查看详情

struts2和springmvc有啥区别

1)springmvc的入口是一个servlet,即前端控制器,例如:*.actionstruts2入口是一个filter过虑器,即前端过滤器,例如:/*2)springmvc是基于方法开发,传递参数是通过方法形参,可以设计为单例struts2是基于类开发,传递参数是通过类的... 查看详情

我的新书《c++服务器开发精髓》终于出版啦

...始出来亲爱的各位读者,我的新书《C++服务器开发精髓》终于终于终于与大家见面了,图书如下:图书的封面设计很精美,当然内容一定不负众望。因出版社老师要求提供一张照片放到封面上,今年的6月1日儿童节去拍了一张,... 查看详情

使用springmvc的详细步骤

使用springMVC也可以代替struts2,当然只是代替业务分发的功能,struts2的一些其他功能它是没有的,不然要struts2有什么用。  下面我用springMVC代替struts2去整合hibernate实现简单的员工查询功能。  使用springMVC有两个配置文件需... 查看详情

struts和spring分别是啥?

...ring分别是什么?二者有什么区别?通常更多的我们对比 SpringMVC与Struts把这张图放在这里,我是想说SpringMVC和Struts2真的是不一样的,虽然在都有着核心分发器等相同的功能组件(这些由MVC模式本身决定的)。 为什么SpringMVC... 查看详情

终于把springboot3.0写成书了!

...SSH,成为JavaWeb开发的三驾马车。大概在2013年左右,又和SpringMVC、MyBatis框架组成SSM,成为新一代的Web开发框架全家桶,一直流行延续至今。而为了简化Spring框架的上手难度,SpringBoot框架于2014年诞生,可以帮助开发者更加轻松、... 查看详情

springmvc和struts2的区别

SpringMVC和Struts2类似,是一款基于传统MVC设计模式的JavaEE框架。它的核心是一个弹性的控制层,能够很好地发挥MVC模式的“分离显示逻辑和业务逻辑”的能力。而近年来越来越多的开发者选择使用SpringMVC技术来代替Struts2技... 查看详情

springmvc中文文档翻译发布

前后经过九个月,我翻译的SpringMVC官方较新的4.2.4.RELEASE版本中文文档第一版终于发布啦,你现在就可以在这里看到:mvc.linesh.tw。文档翻译致力于做到准确传达原意,做到符合中文语境与习惯,看之,能让你不会产生“也许我... 查看详情

springmvc框架入门

简介SpringMVC采用模型(Model)-视图(View)-控制器(controller)的方法把业务逻辑、数据与界面显示分离。用通俗的话来讲,MVC的理念就是把数据处理、数据展示和程序/用户的交互三者分离开的一种编程模式。 为什么要学SpringMVC?Sprin... 查看详情

springmvc当中的controller接口和struts2当中的action有啥区别

SpringMVC的Controller和Struts2的Action均是实现MVC模式的控制层。两者区别如下:SpringMVC可精确控制到方法上,Controller可以单例开发,Struts2的Action则是多例prototype开发,基于类进行拦截请求的。SpringMVC的速度一般比Struts2要快,主要是s... 查看详情

springmvc和struts2有什么不同?为什么要用springmvc或者struts2?让你实现一个mvc框架大概如何设计?

...机制1、Struts2采用Filter(StrutsPrepareAndExecuteFilter)实现,SpringMVC(DispatcherServlet)则采用Servlet实现。2、Filter在容器启动之后即初始化;服务停止以后坠毁,晚于Servlet。Servlet在是在调用时初始化,先于Filter调用,服务停止后销毁... 查看详情

基于asp.netmvc下的extjs的combbox加载速率问题,终于解决啦:)

    在实际的开发项目中,自己遇到一个让自己苦恼很久的问题,一直也未解决,先简单介绍一下这个问题吧。当在表单里有多个combbox的时候(表单中的combbox是经过封装的控件,从后台请求同一个方法获取数据)... 查看详情

springmvc和struts2的区别?

1.在一个请求到达服务器时,springmvc采用Servlet进行拦截,Struts2采用Filter进行拦截2.Springmvc的Handler是单例的,Struts2的Action是多例的3.Springmvc以方法参数封装数据,Struts2以类封装数据4.Springmvc将数据封装到ModelAndView,之后放在request域... 查看详情

消息推送平台终于要发布啦!

我的开源项目消息推送平台Austin终于要上线了,迎来在线演示的第一版! 查看详情

springmvc3深入总结

...截器、多实例action性能都很好。可以参考我写的一篇关于SpringMVC与Struts2与Servlet比较的文章 http://elf8848.iteye.com/admin/blogs/698217 Spring3MVC的优点:1、Spring3MVC的学习难度小于Struts2,Struts2用不上的多余功能太多。呵呵,当... 查看详情