SpringMVC和Struts2的区别

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

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

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

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

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

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

7.spring mvc 处理ajax请求,直接通过返回数据,方法中使用@reponseBody,Spring mvc 会自动帮我们转换成json 数据、

面试:----Struts和springmvc的区别--区别上的更多相关文章

  1. Struts2框架和SpringMvc框架的区别

    Struts2框架和SpringMvc框架的区别 一.拦截机制的不同 Struts2是类级别的拦截,每次请求就会创建一个Action,和Spring整合时Struts2的ActionBean注入作用域 ...

  2. org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter与org.apache.struts.dispatcher.FilterDispatcher是什么区别?

    org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter与org.apache.struts.dispatcher.F ...

  3. 可能会搞砸你的面试:你知道一个TCP连接上能发起多少个HTTP请求吗?

    本文由原作者松若章原创发布,作者主页:zhihu.com/people/hrsonion/posts,感谢原作者的无私分享. 1.引言 一道经典的面试题是:从 URL 在浏览器被被输入到页面展现的过程 ...

  4. 框架使用的技术主要是SpringMVC 在此基础上进行扩展

    框架使用的技术主要是SpringMVC 在此基础上进行扩展 1 Web前端使用 2 前段控制器采用SpringMVC零配置 3 IOC容器Spring 4 ORM使用 Mybites或者hiberna ...

  5. SpringMVC进行文件的上传以及多文件的上传(转)

    基本的SpringMVC的搭建在我的上一篇文章里已经写过了,这篇文章主要说明一下如何使用SpringMVC进行表单上的文件上传以及多个文件同时上传的步骤 SpringMVC 基础教程 框架分析:htt ...

  6. SpringMVC实现PUT请求上传文件

    在JQuery中,我们可以进行REST ful中delete和put的请求,但是在java EE标准中,默认只有在POST请求的时候,servlet 才会通过getparameter()方法取得请求体 ...

  7. SpringMVC+BUI实现文件上传(附详解,源码下载)

    中午有限时间写这博文,前言就不必多说了,直奔主题吧. BUI是一个前端框架,关于BUI的介绍请看博主的文章那些年用过的一些前端框架. 下面我们开始实例的讲解! 一.效果演示: 上传成功后,会发现本地相 ...

  8. 使用SpringMVC框架实现文件上传和下载功能

    使用SpringMVC框架实现文件上传和下载功能 (一)单个文件上传 ①配置文件上传解释器 <!—配置文件上传解释器 --> <mvc:annotation-driven>&l ...

  9. SocketIo+SpringMvc实现文件的上传下载

    SocketIo+SpringMvc实现文件的上传下载 socketIo不仅可以用来做聊天工具,也可以实现局域网(当然你如果有外网也可用外网)内实现文件的上传和下载,下面是代码的效果演示: GIT地址 ...

随机推荐

  1. YQCB冲刺第二周第四天

    站立会议 任务看板 今天的任务为实现精准查账的功能. 昨天的任务为实现查看消费明细的功能. 遇到的问题为忘记在记账记录的表中添加用户名一栏,这样导致不同用户登录时查看消费明细会显示所有用户的所有记录.

  2. 继承 多态 java相关基础知识

    1:静态语句块.构造语句块(就是只有大括号的那块)以及构造函数的执行顺序 例子: class HelloA { public HelloA() { System.out.println("H ...

  3. 使用SSH过程中遇到的几个问题及解决方案

    一.HTTP Status 500 - org.springframework.orm.hibernate3.HibernateOptimisticLockingFailureException: B ...

  4. javascript 函数的几种声明函数以及应用环境

    本页只列出常用的几种方式,当然还有比如new Function()以及下面三种的组合. 1.函数式声明 例子:function sum(a,b){ return a+b; }; 2.函数表达式声明(匿 ...

  5. PAT 1044 火星数字

    https://pintia.cn/problem-sets/994805260223102976/problems/994805279328157696 火星人是以13进制计数的: 地球人的0被火星 ...

  6. LDAP的前世今生

    上世界80年代,就有了LDAP的雏形. 我接触到最早的Windows系列的服务器,是Windows2000 Professional版本里可以加入ActiveDirectory,后来从Windows2 ...

  7. VMware虚拟机安装ghost win7系统方法

    原本地址:http://www.xitongcheng.com/jiaocheng/xtazjc_article_15314.html

  8. 微信 小程序组件 加入购物车全套 one wxss

    //1,wxss /*外部容器*/ .container { display: flex; flex-direction: column; align-items: center; justify-c ...

  9. 窗体的构造函数和OnCreate事件

    窗体的构造函数和创建事件和OldCreateOrder属性有很大的关系. 情况1: 如果窗体继承自TForm,且有如下形式: 1.      constructor TForm1.Create(AOw ...

  10. poj 2528 (线段树+特殊离散化)

    Mayor's posters Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 51098   Accepted: 14788 ...