整体的框架机制
    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. Elasticsearch介绍,一些概念的笔记

    Elasticsearch,分布式,高性能,高可用,可伸缩的搜索和分析系统 什么是搜索? 如果用数据库做搜索会怎么样? 什么是全文检索和Lucene? 什么是Elasticsearch? Elasti ...

  2. c++工程重复编译与重复定义

    #ifndef #define #endif防止的是"重复编译",而不是"重复定义"重复编译可能造成重复定义,但重复定义的来源不只有重复编译从代码变成可执行的程 ...

  3. 解决php的sha1和java的sha1(DigestUtils.sha1Hex)产生的字符串不相等的问题

    最近对接某个第三方服务,其中对接某些api需要用到他们的签名回调,根据他们传来的get参数和apiSecret进行拼接并使用sha1加密,然后返回弄成jsonp的格式返回,出于菜鸟的本能,首先是下载了 ...

  4. SSH中后台传到前台一个信息集合,tr td中怎么进行排列,类似在一个div里排列书籍

    总觉得描述问题不对,这里详细说一下,就是把下面图片变成排列整齐,一行四个,多出来的两个排到下一行. 我问过群里的,给的答案都有些简介:1:后台排好了,前台循环出来: 2:前台直接循环,多出来的加< ...

  5. Linux下安装PostgreSQL 转载linux社区

    Linux下安装PostgreSQL [日期:2016-12-25] 来源:Linux社区  作者:xiaojian [字体:大 中 小]   在Linux下安装PostgreSQL有二进制格式安装和 ...

  6. POJ 3041 Asteroids(模板——二分最大匹配(BFS增广))

    题目链接: http://poj.org/problem?id=3041 Description Bessie wants to navigate her spaceship through a da ...

  7. union 时只能查出一个表中的信息,另一个表只能查出字段

    原因:news表中title字段的编码,与brand表中的编码不一致导致 y

  8. phpmyadmin 自动登录的办法

    在本地开发php项目中,需要配合使用mysql在线管理系统phpmyadmin,因为经常使用,就不想每次都输入密码,所以想办法把用户名密码写入配置文件中,让每次都可以自动登录. 工具/原料   代码编 ...

  9. 给织梦DEDECMS添加栏目图片与英文名显示

    开始做微网站了,不同于传统手机网站,因为微信上的微网站是支持CSS3与HTML5的,好吧,各种要学习的还有很多很多阿~这么多新代码,叹! 本来想转战帝国CMS了,奈何这名字太不对味了,PHPCMS也懒 ...

  10. Node.js进阶:5分钟入门非对称加密方法

    前言 刚回答了SegmentFault上一个兄弟提的问题<非对称解密出错>.这个属于Node.js在安全上的应用,遇到同样问题的人应该不少,基于回答的问题,这里简单总结下. 非对称加密的理 ...