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. 《Gogoing》Alpha版使用说明

    前言: Gogoing是由我们山药蛋团队利用课余时间,基于安卓安卓系统开发完成.该软件针对于我们大学生没有赚钱能力,却又渴望外面的世界,该软件的核心理念的是“穷”游.为当代的大学生提供一个景点推荐或者 ...

  2. Mybatis:Eclipse引入dtd约束文件使得xml文件有提示

    https://blog.csdn.net/lsx2017/article/details/82558135

  3. Python的三种格式化输出

    今天刚学了python的三种格式化输出,以前没接触过这么有趣的输出方式,现在来分享一下. #!/user/bin/env python#coding:utf-8#三种格式化输出 #第一种格式化输出na ...

  4. Docker的入门使用(初探总结)

    Docker容器包含两种(Linux,Windows)内核,常用的为Linux. linux ,mac,windows8及以下(boot2docker,通过Linux虚拟机实现)的Docker提供Li ...

  5. PHP中Cookie的使用

    1.什么是Cookie? Cookie保存在客户端浏览器中,cookie是Http头的一部分,通过浏览器请求页面时,它会被通过Http头的形式发送过去.被请求的页面,可以通过PHP来获取cookie的 ...

  6. [转帖] k8s kubectl 命令行技巧

    https://jimmysong.io/posts/kubectl-cheatsheet/ Kubectl Cheatsheet kubectl命令技巧大全Posted on November 3, ...

  7. 第六周 可执行代码 以及 PSP 燃尽图 等等

    转眼已经第六周了.这周主要内容有下:(CHECKLIST) 1.完成未完成的功能点. 2.PSP. 3.站立会议. 4.燃尽图. 5.各种图(折线,饼图). 6.checkList 具体任务如下: 1 ...

  8. spring not_support 该方法被事务方法调用时 不会加入spring事务 只是执行jdbc普通的事务

  9. 04.基于IDEA+Spring+Maven搭建测试项目--application-context.xml配置

    <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...

  10. 学习Spring Boot:(十六)使用Shiro与JWT 实现认证服务

    前言 需要把Web应用做成无状态的,即服务器端无状态,就是说服务器端不会存储像会话这种东西,而是每次请求时access_token进行资源访问.这里我们将使用 JWT 1,基于散列的消息认证码,使用一 ...