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. 原生 JavaScript 实现 AJAX、JSONP

    相信大多数前端开发者在需要与后端进行数据交互时,为了方便快捷,都会选择JQuery中封装的AJAX方法,但是有些时候,我们只需要JQuery的AJAX请求方法,而其他的功能用到的很少,这显然是没必要的 ...

  2. 第二阶段Sprint10

    昨天:查看有关“共享平台”的资料,看如何实现上传下载功能,并尝试编码,没有成功 今天:集合三个人的代码,整合到一起,修复出现的Bug 遇到的问题:看Bug没有出现,但功能不是停止运行就是部分不能用,只 ...

  3. 英语学习APP

    第一部分 调研, 评测 下载并使用,描述最简单直观的个人第一次上手体验. 界面高大上,看起来很美观,是个不错的英语学习软件.我很喜欢. 2.按照<构建之法>13.1节描述的 bug 定义, ...

  4. jieba分词学习

    具体项目在githut里面: 应用jieba库分词 1)利用jieba分词来统计词频: 对应文本为我们队伍的介绍:jianjie.txt: 项目名称:碎片 项目描述:制作一个网站,拾起日常碎片,记录生 ...

  5. Linux命令(二十一) 改变文件所有权 chown 和 chgrp

    目录 1.命令简介 2.常用参数介绍 3.实例 4.直达底部 命令简介 一个文件属于特定的所有者,如果更改文件的属主或属组可以使用 chown 和 chgrp 命令. chown 命令可以将文件变更为 ...

  6. 模拟APP存储空间、内存不足情况下软件正常运行

    1.进行临界测试,手机盘空间存满的条件下应用会有何表现: 方法一:adb shell dd if=/dev/zero of=/mnt/sdcard/bigfile 方法二:哆啦A工具生成文件 2.内存 ...

  7. String类的一些细节

    先看一段代码: public static void main(String[] args) {        String a = "a"+"b"+1;   ...

  8. pgm4

    这部分 cover 两个比较特殊的情形,一个是 Gaussian networks,一个是 exponential family. 正态分布常见的参数化策略是均值 和协方差矩阵 ,另一种是使用 inf ...

  9. MT【188】一个正切余切有关的恒等式

    (2017北大特优)求$9\tan 10^\circ+2\tan 20^\circ+4\tan 40^\circ-\tan 80^\circ=$_____ A.$0$ B.$\dfrac{\sqrt ...

  10. dp乱写1:状态压缩dp(状压dp)炮兵阵地

    https://www.luogu.org/problem/show?pid=2704 题意: 炮兵在地图上的摆放位子只能在平地('P') 炮兵可以攻击上下左右各两格的格子: 而高原('H')上炮兵能 ...