整体的框架机制
    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. Java与算法之(9) - 直接插入排序

    直接插入排序是最简单的排序算法,也比较符合人的思维习惯.想像一下玩扑克牌抓牌的过程.第一张抓到5,放在手里:第二张抓到3,习惯性的会把它放在5的前面:第三张抓到7,放在5的后面:第四张抓到4,那么我们 ...

  2. 大数据Hadoop学习之了解Hadoop(1)

    关于大数据,一看就懂,一懂就懵. 大数据的发展也有些年头了,如今正走在风口浪尖上,作为小白,我也来凑一份热闹. 大数据经过多年的发展,有着不同的实现方案和分支,不过,要说大数据实现方案中的翘楚,那就是 ...

  3. 【搬运】Tea算法Java实现工具类

    最近在做数据加密,目标是实现平台app的数据安全性,所以准备使用AES+Base64进行加密,适逢一个特长的json串AES加密不了,于是在谷歌了各种算法,判断是否合用,参见 各种加密算法比较 一文中 ...

  4. 【问题解决】java中为什么不建议使用DataInputStream 的readLine()方法

    常用方法 int read(byte[] b) 从包含的输入流中读取一定数量的字节,并将它们存储到缓冲区数组 b 中. int read(byte[] b, int off, int len) 从包含 ...

  5. 【开发技术】Get请求和Post请求区别

    a.Get请求是通过URL请求来提交表单数据的:Post是通过HTTP中的POST机制将表单中的数据提交到Action所定制的程序,如果有附件需要用Post方式. b.Get适用于传输数据量小于1K数 ...

  6. UE4/Unity3D中同时捕获多高清摄像头的高效插件

    本文主要讲实现过程的一些坑. 先说下要实现的目标,主要功能在UE4/Unity中都要用,能同时捕获多个摄像头,并且捕获的图片要达到1080p25桢上,并且需要经过复杂的图片处理后丢给UE4/Unity ...

  7. Efounds笔试

    Efounds的笔试~ 1.比较两个浮点数大小 一般不会直接用"=="或者"!="对两个浮点数进行比较. 判断两个浮点数float a 与 float b 是否 ...

  8. Android带有粘性头部的ScrollView

    前言,一天在点外卖的时候,注意到饿了么列表页的滑动效果不错,但是觉得其中的手势滑动还是挺复杂的,正好又碰到了在熟悉Touch事件的理解当中,所以就抽空对着饿了么的列表页面尝试写写这个效果 1.先贴一个 ...

  9. NPM使用命令总结

    NPM使用命令总结 npm是一个node包管理和分发工具,已经成为了非官方的发布node模块(包)的标准.有了npm,可以很快的找到特定服务要使用的包,进行下载.安装以及管理已经安装的包. 1.npm ...

  10. 【jsp】MyEclipse10.7.1最新版+破解下载

    MyEclipse企业级工作平台[1](MyEclipse Enterprise Workbench ,简称MyEclipse)是对EclipseIDE的扩展,利用它我们可以在数据库和JavaEE的开 ...