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 ,然后直接返回响应文本即可。
- 浏览: 108468 次
- 性别:
- 来自: 北京
最新评论
-
BlueSkator:
bo_hai 写道rz -y 强制覆盖linux上的文件。
linux rz sz 命令 -
bo_hai:
rz -y 强制覆盖linux上的文件。
linux rz sz 命令 -
yoyo837:
我以为是原生ajax
ajax 三种提交请求的方法 -
BlueSkator:
jahu 写道火狐,使用不成功,写js代码注意,兼容性噢 火狐 ...
js 预提交请求时确定后提交实现 -
jahu:
火狐,使用不成功,写js代码注意,兼容性
js 预提交请求时确定后提交实现
相关推荐
Struts2和SpringMvc区别.md
SpringMVC与struts2比较及技术特点
struts2介绍、和springmvc对比,mybatis介绍和hibernate对比
框架面试题,集合了String,struts2,springmvc 在本文中,我们将详细讨论框架面试题,涵盖了String、struts2和springmvc等多个方面的知识点。 首先,让我们从IOC容器开始。IOC容器是具有依赖注入功能的容器,是...
SpringMVC与Struts的区别 SpringMVC是一款优秀的MVC框架,由于其发布3.0版本后,现在有越来越多的团队选择了Spring3 MVC作为MVC的框架。SpringMVC结构简单,灵活性较高,性能也很优秀。下面我们将详细讲解SpringMVC...
spring+hibernate+jpa+struts1+struts2+springmvc+jquery+freemaker 学习笔记 Compass将lucene、Spring、Hibernate三者结合
**Struts2与Spring MVC比较:** 1. **灵活性**:Spring MVC允许更多的自定义,如自定义拦截器、视图解析器,而Struts2的扩展性相对弱些。 2. **依赖注入**:Spring MVC是Spring框架的一部分,天然支持DI,而Struts2...
本项目"maven+struts2+spring+mybatis+springMVC"就是一个典型的Java Web应用开发组合,利用了这些框架的优势进行集成,实现了数据持久化、业务逻辑处理、视图展示以及依赖管理等多个层面的功能。 首先,我们来详细...
SpringMVC与Struts2的区别 SpringMVC和Struts2都是流行的Java Web框架,但它们之间存在着许多区别。下面我们将对比SpringMVC和Struts2的主要区别,帮助开发者更好地选择合适的框架。 首先,Struts2是类级别的拦截...
Struts2和Hibernate是两种非常流行的Java Web开发框架,它们分别负责MVC(Model-View-Controller)架构中的控制层和持久层。本教程通过一个简单的Demo,展示了如何将这两个框架整合,实现基本的CRUD(创建、读取、...
本合集包含了一些最流行的框架实例:Spring、SpringMVC、MyBatis、Struts2以及Hibernate。以下是对这些框架的详细介绍: 1. **Spring**: Spring 是一个全面的后端开发框架,它提供了依赖注入(DI)和面向切面编程...
struts2_8_文件上传与下载 共20页.pptx struts2_9_拦截器 共32页.pptx struts2_10_转换器 共22页.pptx struts2_11_插件 共51页.pptx struts2_表单校验失败跳input视图问题 共13页.pptx SpringMVC_1_开发环境搭建 共...
struts2框架开发 博文链接:https://lyg8266.iteye.com/blog/1404821
详谈Servlet和Filter的区别以及两者在Struts2和Springmvc中的应用 Servlet和Filter是Java Web开发中两个非常重要的概念,它们都是Java Servlet API的一部分,但它们之间有着很大的区别。 首先,Servlet是一个在WEB...
整合Struts2与MyBatis或Hibernate时,Struts2的动作类(Action)接收请求并调用Service层,Service层再通过MyBatis或Hibernate操作数据库。 整合步骤通常包括以下部分: - 配置POM.xml文件:添加所需框架的依赖。 -...
《全面解析Spring4、SpringMVC、Struts、Hibernate、Maven及Mybatis学习路径》 在当今的软件开发领域,Java技术栈以其强大的企业级应用能力占据着主导地位,而Spring4、SpringMVC、Struts、Hibernate、Maven以及...
这些库的组合使用,可以构建一个功能强大的Java Web应用,通过SpringMVC处理请求,Struts(尤其是Struts2)提供额外的MVC功能,MyBatis作为数据访问层处理数据库操作,而JUnit则帮助进行单元测试,确保整个系统的...
Struts2、Spring4、Spring MVC、Hibernate4和MyBatis是Java开发中常见的四大框架,它们各自在Web应用开发中扮演着不同的角色。这里,我们将深入探讨这五大框架的核心功能、相互关系以及如何在实际项目中应用。 ...