精华内容
下载资源
问答
  • springmvc和struts的区别

    2019-06-26 19:45:00
    (1)联系 1)它们都是表现层框架,都是基于mvc模型编写的 2)它们的底层实现都离不开servletAPI 3)它们的处理请求机制都是一个核心控制器(2)区别 1)springMVC的入口是servlet,Struts的入口是filter;...
    (1)联系
    1)它们都是表现层框架,都是基于mvc模型编写的
    2)它们的底层实现都离不开servletAPI
    3)它们的处理请求机制都是一个核心控制器
    (2)区别
    1)springMVC的入口是servlet,Struts的入口是filter;
    2)springMVC是基于方法的,Struts是基于类的,Struts每次执行都会创建一个动作
    3)springMVC使用更加简洁,同时还支持JSR303,处理ajax请求更方便
    4)Struts2的OGNL表达式使页面的开发效率相对于springMVC要更高一些,但是执行的效率没有比JSTL提升,尤其是Struts的表单远没有html执行效率高。

    转载于:https://www.cnblogs.com/q-1993/p/11093464.html

    展开全文
  • springMVC和struts的区别

    万次阅读 2016-04-12 07:52:56
    目前企业中使用SpringMvc比例已经远远超过Struts2,那么两者到底有什么区别,是很多初学者比较关注问题,下面我们就来对SpringMvc和Struts2进行各方面比较: 1.核心控制器(前端控制器、预处理控制器):对于...

    目前企业中使用SpringMvc的比例已经远远超过Struts2,那么两者到底有什么区别,是很多初学者比较关注的问题,下面我们就来对SpringMvc和Struts2进行各方面的比较:

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

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

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

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

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

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

    7.spring mvc处理ajax请求,直接通过返回数据,方法中使用注解@ResponseBody,spring mvc自动帮我们对象转换为JSON数据。

    展开全文
  • SpringMVC和Struts的区别

    2018-06-22 15:32:19
    一个类对应一个request上下文,SpringMVC是方法级别拦截,一个方法对应一个request上下文,而方法同时又跟一个url对应,所以说从架构本身上SpringMVC就容易实现restful url,而struts2架构实现起来要费劲,...

    1Struts2是类级别的拦截, 一个类对应一个request上下文,SpringMVC是方法级别的拦截,一个方法对应一个request上下文,而方法同时又跟一个url对应,所以说从架构本身上SpringMVC就容易实现restful url,而struts2的架构实现起来要费劲,因为Struts2中Action的一个方法可以对应一个url,而其类属性却被所有方法共享,这也就无法用注解或其他方式标识其所属方法了。

    2、由上边原因,SpringMVC的方法之间基本上独立的,独享request response数据,请求数据通过参数获取,处理结果通过ModelMap交回给框架,方法之间不共享变量,而Struts2搞的就比较乱,虽然方法之间也是独立的,但其所有Action变量是共享的,这不会影响程序运行,却给我们编码 读程序时带来麻烦,每次来了请求就创建一个Action,一个Action对象对应一个request上下文。
    3、由于Struts2需要针对每个request进行封装,把request,session等servlet生命周期的变量封装成一个一个Map,供给每个Action使用,并保证线程安全,所以在原则上,是比较耗费内存的。

    4、 拦截器实现机制上,Struts2有以自己的interceptor机制,SpringMVC用的是独立的AOP方式,这样导致Struts2的配置文件量还是比SpringMVC大。

    5、SpringMVC的入口是servlet,而Struts2是filter(这里要指出,filter和servlet是不同的。以前认为filter是servlet的一种特殊),这就导致了二者的机制不同,这里就牵涉到servlet和filter的区别了。

    6、SpringMVC集成了Ajax,使用非常方便,只需一个注解@ResponseBody就可以实现,然后直接返回响应文本即可,而Struts2拦截器集成了Ajax,在Action中处理时一般必须安装插件或者自己写代码集成进去,使用起来也相对不方便。

    7、SpringMVC验证支持JSR303,处理起来相对更加灵活方便,而Struts2验证比较繁琐,感觉太烦乱。

    8、Spring MVC和Spring是无缝的。从这个项目的管理和安全上也比Struts2高(当然Struts2也可以通过不同的目录结构和相关配置做到SpringMVC一样的效果,但是需要xml配置的地方不少)。

    9、 设计思想上,Struts2更加符合OOP的编程思想, SpringMVC就比较谨慎,在servlet上扩展。

    10、SpringMVC开发效率和性能高于Struts2。
    11、SpringMVC可以认为已经100%零配置。

     

    Spring 及其优点

    spring是什么

    Spring是一个轻量级的DI和AOP容器框架。

    说它轻量级有一大部分原因是相对与EJB的(虽然本人从没有接触过EJB的应用),重要的是,Spring是非侵入式的,基于spring开发的应用一般不依赖于spring的类。

    DI:称作依赖注入(Dependency Injection),和控制反转一个概念,具体的讲,当一个角色需要另外一个角色协助的时候,在传统的程序设计中,通常有调用者来创建被调用者的实例。但是在spring中创建被调用者将不再有调用者完成,因此叫控制反转。创建被调用对象有Spring来完成,在容器实例化对象的时候主动的将被调用者(或者说它的依赖对象)注入给调用对象,因此又叫依赖注入

    AOP:Spring对面向切面编程提供了强有力的支持,通过它让我们将业务逻辑从应用服务(如事务管理)中分离出来,实现了高内聚开发,应用对象只关注业务逻辑,不再负责其它系统问题(如日志、事务等)。Spring支持用户自定义切面。

    面向切面编程是面向对象编程的有力补充。面向对象编程将程序分成各个层次的对象,面向切面的程序将运行过程分解成各个切面。AOP是从运行程序的角度去考虑程序的结构,提取业务处理过程的切面,OOP是静态的抽象,AOP是动态的抽象,是对应用执行过程的步骤进行抽象,从而获得步骤之间的逻辑划分。

    容器:Spring是个容器,因为它包含并且管理应用对象的生命周期和配置。如对象的创建、销毁、回调等。

    框架:Spring作为一个框架,提供了一些基础功能,(如事务管理,持久层集成等),使开发人员更专注于开发应用逻辑。

     

    Spring优点

    1.使用Spring的IOC容器,将对象之间的依赖关系交给Spring,降低组件之间的耦合性,让我们更专注于应用逻辑

    2.可以提供众多服务,事务管理,WS等。

    3.AOP的很好支持,方便面向切面编程

    4.对主流的框架提供了很好的集成支持,如Hibernate,Struts2,JPA等

    5.Spring DI机制降低了业务对象替换的复杂性。

    6.Spring属于低侵入,代码污染极低。

    7.Spring的高度可开放性,并不强制依赖于Spring,开发者可以自由选择Spring部分或全部

     

    Struts2及其优点

    Struts2 是一个相当强大的Java Web开源框架,是一个基于POJO的Action的MVC Web框架。它基于当年的Webwork和XWork框架,继承其优点,同时做了相当的改进。Struts2现在在Java Web开发界的地位可以说是大红大紫,从开发人员的角度来分析,Struts2之所以能够如此的深入开发人员之心,与其优良的设计是分不开的。

    1、Struts2基于MVC架构,框架结构清晰,开发流程一目了然,开发人员可以很好的掌控开发的过程。
    我在项目开发过程中,一个具体的功能的开发流程是:拿到一个具体的功能需求文档和设计好的前台界面(在开发中我不负责设计页面),分析需要从前台传递哪些参数,确定参数的变量名称,在Action中设置相应的变量,这些参数在前台如何显示,并将页面上的一些控件适当使用Struts2提供的服务器端控件来代替,编写Action对应的方法来完成业务逻辑,最后,做一些与配置文件相关的设置。当然实际的开发比这个过程要复杂,涉及到数据库,验证,异常等处理。但是使用Struts2进行开发,你的关注点绝大部分是在如何实现业务逻辑上,开发过程十分清晰明了。
     
    2、使用OGNL进行参数传递。
    OGNL提供了在Struts2里访问各种作用域中的数据的简单方式,你可以方便的获取Request,Attribute,Application,Session,Parameters中的数据。大大简化了开发人员在获取这些数据时的代码量
     
    3、强大的拦截器
    Struts2 的拦截器是一个Action级别的AOP,Struts2中的许多特性都是通过拦截器来实现的,例如异常处理,文件上传,验证等。拦截器是可配置与重用的,可以将一些通用的功能如:登录验证,权限验证等置于拦截器中以完成一些Java Web项目中比较通用的功能。在我实现的Web项目中,就是使用Struts2的拦截器来完成了系统中的权限验证功能。
     
    4、易于测试
    Struts2的Action都是简单的POJO,这样可以方便的对Struts2的Action编写测试用例,大大方便了Java Web项目的测试。
     
    5、易于扩展的插件机制
    在Struts2添加扩展是一件愉快而轻松的事情,只需要将所需要的Jar包放到WEB-INF/lib文件夹中,在struts.xml中作一些简单的设置就可以实现扩展。常用的Struts2的扩展可以通过这个链接找到:
    http://cwiki.apache.org/S2PLUGINS/home.html
     
    6、模块化
    Struts2已经把模块化作为了体系架构中的基本思想,可以通过三种方法来将应用程序模块化:
    将配置信息拆分成多个文件
    把自包含的应用模块创建为插件
    创建新的框架特性,即将与特定应用无关的新功能组织成插件,以添加到多个应用中去。
     
    7、全局结果与声明式异常
    为应用程序添加全局的Result,和在配置文件中对异常进行处理,这样当处理过程中出现指定异常时,可以跳转到特定页面,这一功能十分实用。

    Spring MVC和Struts2的比较的优点

    我们用struts2时采用的传统的配置文件的方式,并没有使用传说中的0配置。spring3 mvc可以认为已经100%零配置了(除了配置spring mvc-servlet.xml外)。

     

    Spring MVC和Struts2的区别:

    1. 机制:spring mvc的入口是servlet,而struts2是filter(这里要指出,filter和servlet是不同的。以前认为filter是 servlet的一种特殊),这样就导致了二者的机制不同,这里就牵涉到servlet和filter的区别了。

    2. 性能:spring会稍微比struts快。spring mvc是基于方法的设计粒度更细,但要小心把握像在servlet控制数据一样。sturts是基于类,每次发一次请求都会实例一个action,每个action都会被注入属性spring3 mvc拦截到方法后根据参数上的注解,把request数据注入进去,在spring3 mvc中,一个方法对应一个request上下文。而struts2框架是类级别的拦截,每次来了请求就创建一个Action,然后调用setter getter方法把request中的数据注入;struts2实际上是通过setter getter方法与request打交道的;struts2中,一个Action对象对应一个request上下文。

    3. 参数传递:struts是在接受参数的时候,可以用属性来接受参数,这就说明参数是让多个方法共享的。

    4. 设计思想上:struts更加符合oop的编程思想, spring就比较谨慎,在servlet上扩展。

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



    展开全文
  • SpringMVC和Struts2的区别

    2019-05-21 18:15:29
    SpringMVC和Struts2的区别SpringMVC和Struts2的区别如下:SpringMVC和Struts2的区别如下:SpringMVC和Struts2的区别如下: SpringMVC和Struts2的区别如下: 1、SpringMVC是提供基于方法的请求,而Struts2是提供基于...

    SpringMVC和Struts2的区别如下:

    1、SpringMVC是提供基于方法的请求,而Struts2是提供基于类级别的请求。
    2、SpringMVC是支持单例模式开发,而struts2是不支持单例模式开发。
    3、在拦截器机制上,struts2有以自己的interceptor机制,SpringMVC是独立的AOP方式,这样导致Struts2的配置文件量比SpringMVC大。
    4、由于Struts2需要针对每一个request进行封转,把request、session等servlet生命周期的变量封装成一个有一个的map,供给Action使用,并保证线程安全,所以在原则上,是比较耗费内存的。
    5、SpringMVC的入口时servlet。struts2是filter。
    6、SpringMVC集成为ajax,使用十分方便,只需要一个注解@ResponseBody就可以使用,然后直接返回响应文本即可,而Struts2拦截器集成了Ajax,在Action中处理时一般必须安装插件或者自己写代码集成进去,使用起来也相对不方便。
    7、Spring MVC和Spring是无缝的。从这个项目的管理和安全上也比Struts2高。
    8、 设计思想上,Struts2更加符合OOP的编程思想, SpringMVC就比较谨慎,在servlet上扩展
    9、SpringMVC开发效率和性能高于Struts2。
    10、Struts2是类级别的拦截,每次请求对应实例一个新的Action,需要加载所有的属性值注入,SpringMVC实现了零配置,由于SpringMVC基于方法的拦截,有加载一次单例模式bean注入。所以,SpringMVC开发效率和性能高于Struts2。

    SpringMVC和Struts2的区别如下:

    1、SpringMVC是提供基于方法的请求,而Struts2是提供基于类级别的请求。
    2、SpringMVC是支持单例模式开发,而struts2是不支持单例模式开发。
    3、在拦截器机制上,struts2有以自己的interceptor机制,SpringMVC是独立的AOP方式,这样导致Struts2的配置文件量比SpringMVC大。
    4、由于Struts2需要针对每一个request进行封转,把request、session等servlet生命周期的变量封装成一个有一个的map,供给Action使用,并保证线程安全,所以在原则上,是比较耗费内存的。
    5、SpringMVC的入口时servlet。struts2是filter。
    6、SpringMVC集成为ajax,使用十分方便,只需要一个注解@ResponseBody就可以使用,然后直接返回响应文本即可,而Struts2拦截器集成了Ajax,在Action中处理时一般必须安装插件或者自己写代码集成进去,使用起来也相对不方便。
    7、Spring MVC和Spring是无缝的。从这个项目的管理和安全上也比Struts2高。
    8、 设计思想上,Struts2更加符合OOP的编程思想, SpringMVC就比较谨慎,在servlet上扩展
    9、SpringMVC开发效率和性能高于Struts2。
    10、Struts2是类级别的拦截,每次请求对应实例一个新的Action,需要加载所有的属性值注入,SpringMVC实现了零配置,由于SpringMVC基于方法的拦截,有加载一次单例模式bean注入。所以,SpringMVC开发效率和性能高于Struts2。

    SpringMVC和Struts2的区别如下:

    1、SpringMVC是提供基于方法的请求,而Struts2是提供基于类级别的请求。
    2、SpringMVC是支持单例模式开发,而struts2是不支持单例模式开发。
    3、在拦截器机制上,struts2有以自己的interceptor机制,SpringMVC是独立的AOP方式,这样导致Struts2的配置文件量比SpringMVC大。
    4、由于Struts2需要针对每一个request进行封转,把request、session等servlet生命周期的变量封装成一个有一个的map,供给Action使用,并保证线程安全,所以在原则上,是比较耗费内存的。
    5、SpringMVC的入口时servlet。struts2是filter。
    6、SpringMVC集成为ajax,使用十分方便,只需要一个注解@ResponseBody就可以使用,然后直接返回响应文本即可,而Struts2拦截器集成了Ajax,在Action中处理时一般必须安装插件或者自己写代码集成进去,使用起来也相对不方便。
    7、Spring MVC和Spring是无缝的。从这个项目的管理和安全上也比Struts2高。
    8、 设计思想上,Struts2更加符合OOP的编程思想, SpringMVC就比较谨慎,在servlet上扩展
    9、SpringMVC开发效率和性能高于Struts2。
    10、Struts2是类级别的拦截,每次请求对应实例一个新的Action,需要加载所有的属性值注入,SpringMVC实现了零配置,由于SpringMVC基于方法的拦截,有加载一次单例模式bean注入。所以,SpringMVC开发效率和性能高于Struts2。

    展开全文
  • SpringMVC和struts2区别

    2019-01-23 12:02:16
    SpringMVC和Struts2的区别 (多例)Struts2是一个请求一个Action, (Struts2接收的参数是通过类的成员变量来接收的,这些变量在多线程访问中,是共享的,而不是像SpringMVC那样,方法结束之后,形参自动销毁,且...
  • springmvc和struts2的区别

    2016-06-23 11:35:04
    springmvc struts的区别   1、Springmvc是基于方法开发,而Struts是基于类开发 springmvc映射的时候将urlController方法进行映射。映射成功之后,springmvc会生成Handler对象。Handler对象中只包括了一个...
  • springMvc和struts2区别

    2017-08-04 01:44:38
    目前企业中使用SpringMvc比例已经远远超过Struts2,那么两者到底有什么区别,是很多初学者比较关注问题,下面我们就来对SpringMvc和Struts2进行各方面比较: 1. 核心控制器(前端控制器、预处理控制器):对于...
  • SpringMVC Struts2 区别

    2019-10-09 14:07:45
    Struts2有以自己interceptor机制,SpringMVC是独立AOP方式,这样导致 Struts2配置文件量还是比SpringMVCSpringMVC的入口是servlet,而Struts2是filter 简单介绍一下Struts2值栈? 值栈是对应每...
  • springmvc和struts2区别

    2015-04-22 10:53:28
    最近做了两个项目都是用springmvc做的,突然间想比较一下和struts的区别,在网上找了好多资料,下面这篇文章感觉写的还行便摘抄下来了:   SpringMVC VS Struts2   我们用struts2时采用的传统的配置文件...
  • springmvc和struts2都是MVC模式中C控制层的框架,但是两者也有一些本质上的区别: 1、springvc的核心是servlet,struts2的核心是filter。 2、springmvc基于方法开发的,struts2基于类开发 springmvc...
  • SpringMVC和Struts2区别

    2019-03-26 11:49:19
    struts2框架是类级别拦截,每次来了请求就创建一个Action,然后调用setter getter方法把request中数据注入 struts2实际上是通过setter getter方法与request打交道 struts2中,一个Action对象对应一个request上...
  • 区别1: Struts2 核心是基于一个Filter即...Struts2是基于类开发,传递参数是通过类属性传递(属性驱动模型驱动),所以只能设计成多例prototype SpringMvc是基于类中方法开发,也就是...
  • springMVC struts2区别

    2016-03-08 08:40:29
    springMVC的每个action对应一个方法,struts2每个action对应一个类 springMVC是方法级别拦截,struts2是类级别拦截 struts2方法之间也是独立,但是同一个action类变量方法之间是共享 SpringMVC的方法...
  • SpringMVC和Struts2的区别 1.机制: spring mvc的入口是Servlet,而struts2是filter. 2.性能 SpringMVC会稍微比Struts2快。springMVC是基于方法的设计,而Struts2是基于类,每次发一次请求都...
  • SpringMVC Struts2的区别 1、Struts2是类级别的拦截, 一个类对应一个request上下文,SpringMVC是方法级别的拦截,一个方法对应一个request上下文,而方法同时又跟一个url对应,所以说从架构本身上SpringMVC就...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,050
精华内容 420
关键字:

springmvc和struts的区别

spring 订阅