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. PAT甲题题解-1050. String Subtraction (20)-水题

    #include <iostream> #include <cstdio> #include <string.h> #include <algorithm&g ...

  2. Linux内核分析作业三

    构造一个简单的Linux系统MenuOS 复习 计算机三大法宝 存储程序计算机 函数调用堆栈 中断 操作系统两把宝剑 中断上下文的切换 进程上下文的切换 一.Linux内核源代码简介 函数目录 Lin ...

  3. 20135327郭皓——Linux内核分析第二周 操作系统是如何工作的

    操作系统是如何工作的 上章重点回顾: 计算机是如何工作的?(总结)——三个法宝 存储程序计算机工作模型,计算机系统最最基础性的逻辑结构: 函数调用堆栈,高级语言得以运行的基础,只有机器语言和汇编语言的 ...

  4. Linux内核分析第三周总结

    构造一个简单的Linux系统MenuOS 操作系统的"两把宝剑":中断上下文的切换(保存现场和恢复现场).进程上下文的切换 Linux内核源代码简介 --------------- ...

  5. LeetCode 633. 平方数之和

    题目: 给定一个非负整数 c ,你要判断是否存在两个整数 a 和 b,使得 a2 + b2 = c.     示例1: 输入: 5 输出: True 解释: 1 * 1 + 2 * 2 = 5 示例2 ...

  6. psql -- PostgreSQL 交互终端

    psql --  PostgreSQL 交互终端 用法:psql [option...] [dbname [username]] 描述:psql 是一个以终端为基础的 PostgreSQL 前端.它允 ...

  7. Java之File类详解

    常用操作: File f = new File("C:\\testdata\\filedir\\a\\b\\c"); f.mkdir(); //建立单级目录 f.mkdirs(); ...

  8. 一个由于springboot自动配置所产生的问题的解决

    由于我的项目里面需要使用到solr,我做了一下solr和springboot的整合,结果启动项目的时候,就报错了...报错的信息的第一行提示如下: org.springframework.beans. ...

  9. python自动化之鼠标移动

    ################################用GUI自动化控制键盘和鼠标############################### ''' http://pyautogui.r ...

  10. 一本通1642【例 2】Fibonacci 第 n 项

    1642: [例 2]Fibonacci 第 n 项 sol:挺模板的吧,经典题吧qaq (1) 1 0    *     1 1     =   1 1 1 0 (2) 1 1    *     1 ...