`

springMVC与struts的区别

 
阅读更多

转载:http://phl.iteye.com/blog/1672274

 

1. 机制:spring mvc的入口是servlet,而struts2是filter,这样就导致了二者的机制不同。 

2. 性能:spring会稍微比struts快。spring mvc是基于方法的设计,而sturts是基于类,每次发一次请求都会实例一个action,每个action都会被注入属性,而spring基于方法,粒度更细,但要小心把握像在servlet控制数据一样。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变量是共享的,这不会影响程序运行,却给我们编码,读程序时带来麻烦。 

6. 另外,spring3 mvc的验证也是一个亮点,支持JSR303,处理ajax的请求更是方便,只需一个注解@ResponseBody ,然后直接返回响应文本即可。

分享到:
评论

相关推荐

    SpringMVC与struts的区别

    SpringMVC与Struts的区别 SpringMVC是一款优秀的MVC框架,由于其发布3.0版本后,现在有越来越多的团队选择了Spring3 MVC作为MVC的框架。SpringMVC结构简单,灵活性较高,性能也很优秀。下面我们将详细讲解SpringMVC...

    springmvc、struts2区别、mybatis、hibernate区别

    struts2介绍、和springmvc对比,mybatis介绍和hibernate对比

    SpringMVC与struts2比较

    SpringMVC与struts2比较及技术特点

    springMVC+struts+hibernate

    Spring MVC、Struts和Hibernate是Java Web开发中的三个重要框架,它们各自负责应用程序的不同层面,协同工作以构建高效的企业级应用。Spring MVC是Spring框架的一部分,主要处理HTTP请求和响应,提供模型-视图-控制...

    springmvc-struts

    Struts1的核心概念包括Action、FormBean、ActionServlet和配置文件(struts-config.xml),它通过配置文件来定义请求与Action的映射,以及Action如何与视图交互。Struts2是其升级版,设计更灵活,支持更多的插件和...

    springmvc+struts+mybatis项目学习

    Struts2还支持OGNL表达式语言,用于在Action与视图之间传递数据。 MyBatis是一个优秀的持久层框架,它简化了SQL操作,允许开发者直接编写SQL语句,避免了过多的ORM(对象关系映射)操作。MyBatis通过XML配置文件或...

    SSM-SpringMVC-Struts2基础框架

    SSM-SpringMVC-Struts2基础框架

    简单了解SpringMVC与Struts2的区别

    SpringMVC与Struts2的区别 SpringMVC和Struts2都是流行的Java Web框架,但它们之间存在着许多区别。下面我们将对比SpringMVC和Struts2的主要区别,帮助开发者更好地选择合适的框架。 首先,Struts2是类级别的拦截...

    Spring4,SpringMVC,Struts,Hibernate,Maven,Mybatis学习资料

    《全面解析Spring4、SpringMVC、Struts、Hibernate、Maven及Mybatis学习路径》 在当今的软件开发领域,Java技术栈以其强大的企业级应用能力占据着主导地位,而Spring4、SpringMVC、Struts、Hibernate、Maven以及...

    Java面试题51.SpringMVC和Struts2的不同.mp4

    Java面试题51.SpringMVC和Struts2的不同.mp4

    一头扎进SpringMVC MyBatis Struts Spring Hibernate全套教学视频【4.3G】

    SpringMVC MyBatis Struts Spring Hibernate全套教学视频【4.3G】 网盘下载地址 【付费下载之后的用户,可留言获取更多下载资源】

    maven+(springmvc,mybatis,struts2,hibernate)两两整合

    整合SpringMVC与Hibernate时,SpringMVC控制器通过Spring的Data JPA或HibernateTemplate与Hibernate交互,实现对象的保存、查询等操作。 5. Struts2: Struts2是基于MVC设计模式的Action驱动的Web框架,它简化了...

    MVC.rar_SpringMVC Struts_java MVC_mvc_spring-aspects-3.2.2_spri

    Struts 2与SpringMVC类似,但它的配置更侧重于XML,而SpringMVC则更倾向于注解驱动的配置。 Hibernate是Java领域的一款对象关系映射(ORM)工具,它简化了数据库操作,使得开发者可以使用面向对象的方式处理数据。...

    51.SpringMVC和Struts2的不同(比较重要).avi

    java面试宝典

    Hibernate.mybatis.springMVC.struts2.spring

    本资源包含五个主流的Java Web框架的最新版本:Hibernate 5.3.1、MyBatis 3.4.6、Spring Framework 5.0.7、Struts2 2.5.16。下面将分别介绍这些框架的核心功能和使用方法。 **1. Hibernate 5.3.1** Hibernate 是一...

    springmvc基础.docx

    springmvc基础 包含代码+知识点+详细解释 1. 什么是springmvc? 2. springmvc框架原理 前端控制器、处理器映射器、处理器适配器、视图解析器 3. springmvc入门程序 目的:对前端控制器、...6. springmvc和struts2区别

    网上商城Hibernate+springmvc+struts

    登录,退出登录,购物车,订单详情,商品搜索,显示商品 ... 数据库设计 ...商品分类,商品信息展示, 产品管理:添加产品信息(上传照片+商品简介),修改产品信息; 数据库设计 ...用户管理:用户详情,删除用户

    springmvc+mybatis面试题

    【SpringMVC与Struts2的区别】 1. 入口不同:SpringMVC的入口是DispatcherServlet(前端控制器),而Struts2的入口是Filter(过滤器)。 2. 开发方式:SpringMVC基于方法开发,参数通过方法形参传递;Struts2基于类...

    Java Web框架例子合集(spring,springmvc,mybatis,struts2,hibernate)

    本合集包含了一些最流行的框架实例:Spring、SpringMVC、MyBatis、Struts2以及Hibernate。以下是对这些框架的详细介绍: 1. **Spring**: Spring 是一个全面的后端开发框架,它提供了依赖注入(DI)和面向切面编程...

    Struts2和SpringMvc区别.md

    Struts2和SpringMvc区别.md

Global site tag (gtag.js) - Google Analytics