整体的框架机制
    1.Struts2的入口是StrutsPrepareAndExecuteFilter,SpringMVC的入口是通过DispatcherServlet实现.
    2.Struts2的Filter的过滤器是在容器启动之后进行初始化,服务停止之后进行销毁,SpringMVC是在Servlet在调用的时候进行初始化,优先于Filter调用,服务停止后销毁.
拦截机制
    Struts2的拦截是基于类进行拦截,每次请求就会创建一个Action,和Spring整合的时候Struts2的ActionBean注入的作用于是原型模式即prototype(因为Struts2每次的请求过来都会创建一个Action他是一个多例模式,线程安全存在问题,因此要在配置prototype),通过setter/getter把request的数据注入到属性中.
    Struts2中Action的方法可以对应一个url,但是其中类属性确是被所有的方法共享,无法使用注解标识器属性所属的具体的方法.
    Struts2中一个Action对应一个Request,Response上下文,在接受参数的时候,可以通过属性接受,属性参数是被多个方法共享的.    
    Struts2的拦截是Interceptor机制,SpringMVC用独立AOP方式,Struts2的配置文件量还是闭SpringMVC的要大.
SpringMVC
    SpringMVC是方法级别的拦截,一个方法对应一个request,方法基本上是独立的,独自享有request和response数据.而在每个方法的上面又对应一个url,参数的传递是直接注入到方法中通过@RequestMapping(value="/login",method="RequestMethod.POST")直接注入,然后Controller处理完结果返回ModelAndView,最后在通过视图解析器返回给用户.
    SpringMVC是一个单例的线程是安全的.在和Spring整合的时候,默认对所有的请求只会创建一个Controller,如果改变默认的作用域需要添加@Scope注解.
性能比较
    SpringMVC实现零配置,SpringMVC是基于方法的拦截,加载一次单例模式bean注入.而Struts2是类级别拦截,每次请求需要对应创一个新的Action实例,需要加载所有的属性值注入,因此性能的话SpringMVC高于Struts2
 
配置方面
SpringMVC是Spring家族的相对于Struts2来说原装的肯定好,实现无缝契合.安全上也比Struts2高
 设计思想
    Struts2是OOP的编程思想,而SpringMVC是在Servlet上的扩展
集成方面
    SpringMVC集成了Ajax,使用只需要注解@ResponseBody实现,然后返回数据即可,Strtus2拦截器也集成了Ajax,在Action的处理中一般需要安装插件或者写代码,使用起来相对于SpringMVC有点不方便.
总之使用什么框架是根据业务的需求来进行的,本人的观点没有抨击任何框架的意思,能实现业务功能的框架就是好框架没有好坏之分.
    

SpringMVC和Struts2的比较的更多相关文章

  1. springmvc和struts2的区别

    springmvc和struts2的区别 1.springmvc基于方法开发的,struts2基于类开发的. 2.单例和多例的区别:springmvc在映射的时候,通过形参来接收参数的,是将url和c ...

  2. springmvc和struts2的差别

    springmvc和struts2的区别相关内容   1.spring mvc的入口是servlet,而struts2是filter filter功能:用户可以改变一个request和修改一个resp ...

  3. 终于有SpringMvc与Struts2的对比啦

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

  4. SpringMVC 和Struts2的区别

    SpringMVC 和Struts2的区别 1. 机制: spring mvc的入口是servlet,而struts2是filter,这样就导致了二者的机制不同. 2. 性能: spring会稍微比s ...

  5. 终于有SpringMvc与Struts2的对比啦(转)

    本文转自:http://www.itsource.cn/web/news/5/20150318/370.html 目前企业中使用SpringMvc的比例已经远远超过Struts2,那么两者到底有什么区 ...

  6. <转>SpringMVC与Struts2 比较总结

    原链接:http://blog.csdn.net/chenleixing/article/details/44570681 个人整理: 1.级别不同:SpringMVC :方法  Struts是 类级 ...

  7. SpringMVC与Struts2配置区别

     Spring MVC模型与Struts2模型应用:  Html表单: 上述这两段代码无论是SpringMVC还是Struts2,都可以共用.而在请求响应处理类(也就是Controller)上的设计差 ...

  8. 最终有SpringMvc与Struts2的对照啦

    眼下企业中使用SpringMvc的比例已经远远超过Struts2,那么两者究竟有什么差别,是非常多刚開始学习的人比較关注的问题,以下我们就来对SpringMvc和Struts2进行各方面的比較: 1. ...

  9. JAVAEE——SpringMVC第一天:介绍、入门程序、架构讲解、SpringMVC整合MyBatis、参数绑定、SpringMVC和Struts2的区别

    1. 学习计划   第一天 1.SpringMVC介绍 2.入门程序 3.SpringMVC架构讲解 a) 框架结构 b) 组件说明 4.SpringMVC整合MyBatis 5.参数绑定 a) Sp ...

随机推荐

  1. Sass和Compass入门

    一.前言 1.Sass是什么? Sass可以简化你的Css工作流,并可以使你的Css的扩展和维护工作变的更加容易!例如,曾几时何,因为客户的需求的变更,你必须不断的通过查找和替换来更改一个像素值,或者 ...

  2. Codeforces 777B Game of Credit Cards

    B. Game of Credit Cards time limit per test:2 seconds memory limit per test:256 megabytes input:stan ...

  3. bzoj 1935: [Shoi2007]Tree 园丁的烦恼

    Description 很久很久以前,在遥远的大陆上有一个美丽的国家.统治着这个美丽国家的国王是一个园艺爱好者,在他的皇家花园里种植着各种奇花异草.有一天国王漫步在花园里,若有所思,他问一个园丁道: ...

  4. POJ 2370 Democracy in danger(简单贪心)

    Democracy in danger Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 3388   Accepted: 25 ...

  5. POJ3041-Asteroids-匈牙利算法

    Asteroids Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 23963   Accepted: 12989 Descr ...

  6. 史上最全最强Charles截取手机https协议数据包教程(附上利用此技术制作最近微信比较火的头脑王者辅助外挂)!

    纯原创,思路也是本人花了半个小时整理出来的,整个完成花费了本人半天时间,由于不才刚大学毕业,所以有的编码方面可能不入大牛们的眼,敬请原谅!如有转载请附上本地址,谢谢! 最近微信朋友圈刚刚被跳一跳血洗, ...

  7. 【android studio】 gradle配置成本地离线zip包

    http://blog.csdn.net/jingleye/article/details/52689260       关键词:distributionUrl修改成本地路径,android stud ...

  8. js object 常用方法总结

    Object.assign(target,source1,source2,...) 该方法主要用于对象的合并,将源对象source的所有可枚举属性合并到目标对象target上,此方法只拷贝源对象的自身 ...

  9. 十二个 ASP.NET Core 例子——1.1版本 EF MySql快速搭建

    core1.0的时候搭建过一次mysql EF. 一大推问题.最近在core1.1 又重新搭了一次.简单搭建还挺快,没出现什么幺蛾子.总结下步骤 建立项目,例如ASP.NET Core1.1 WebA ...

  10. ThinkPHP3.2 实现Mysql数据库备份

    <?php header("Content-type:text/html;charset=utf-8"); //配置信息 $cfg_dbhost = 'localhost'; ...