`

SpringMVC与Struts2区别

    博客分类:
  • java
 
阅读更多

一、框架机制

1、Struts2采用Filter(StrutsPrepareAndExecuteFilter)实现,SpringMVC(DispatcherServlet)则采用Servlet实现。
2、Filter在容器启动之后即初始化;服务停止以后坠毁,晚于Servlet。Servlet在是在调用时初始化,先于Filter调用,服务停止后销毁。


二、拦截机制

1、Struts2

a、Struts2框架是类级别的拦截,每次请求就会创建一个Action,和Spring整合时Struts2的ActionBean注入作用域是原型模式prototype(否则会出现线程并发问题),然后通过setter,getter吧request数据注入到属性。
b、Struts2中,一个Action对应一个request,response上下文,在接收参数时,可以通过属性接收,这说明属性参数是让多个方法共享的。
c、Struts2中Action的一个方法可以对应一个url,而其类属性却被所有方法共享,这也就无法用注解或其他方式标识其所属方法了
 
2、SpringMVC
a、SpringMVC是方法级别的拦截,一个方法对应一个Request上下文,所以方法直接基本上是独立的,独享request,response数据。而每个方法同时又何一个url对应,参数的传递是直接注入到方法中的,是方法所独有的。处理结果通过ModeMap返回给框架。
b、在Spring整合时,SpringMVC的Controller Bean默认单例模式Singleton,所以默认对所有的请求,只会创建一个Controller,有应为没有共享的属性,所以是线程安全的,如果要改变默认的作用域,需要添加@Scope注解修改。


三、性能方面
SpringMVC实现了零配置,由于SpringMVC基于方法的拦截,有加载一次单例模式bean注入。而Struts2是类级别的拦截,每次请求对应实例一个新的Action,需要加载所有的属性值注入,所以,SpringMVC开发效率和性能高于Struts2。


四、拦截机制
Struts2有自己的拦截Interceptor机制,SpringMVC这是用的是独立的Aop方式,这样导致Struts2的配置文件量还是比SpringMVC大。


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


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


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

分享到:
评论

相关推荐

    springmvc、struts2区别、mybatis、hibernate区别

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

    SpringMVC与struts2比较

    SpringMVC与struts2比较及技术特点

    SpringMVC与struts的区别

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

    SSM-SpringMVC-Struts2基础框架

    SSM-SpringMVC-Struts2基础框架

    简单了解SpringMVC与Struts2的区别

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

    springmvc-struts

    这些库的组合使用,可以构建一个功能强大的Java Web应用,通过SpringMVC处理请求,Struts(尤其是Struts2)提供额外的MVC功能,MyBatis作为数据访问层处理数据库操作,而JUnit则帮助进行单元测试,确保整个系统的...

    springmvc+struts+mybatis项目学习

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

    springMVC+struts+hibernate

    2. 集成Hibernate,配置SessionFactory和DataSource,建立对象与数据库的映射。 3. 配置Spring MVC,定义DispatcherServlet,设置视图解析器和处理器映射器。 4. 将Struts集成到Spring中,使用Spring管理Action和...

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

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

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

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

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

    整合Struts2与MyBatis或Hibernate时,Struts2的动作类(Action)接收请求并调用Service层,Service层再通过MyBatis或Hibernate操作数据库。 整合步骤通常包括以下部分: - 配置POM.xml文件:添加所需框架的依赖。 -...

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

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

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

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

    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 是一...

    Struts2和SpringMvc区别.md

    Struts2和SpringMvc区别.md

    springmvc与strtus2的区别

    SpringMVC和Struts2是两个非常著名的Java Web框架,它们在处理Web应用程序时有着各自的特点和优势。这里我们将深入探讨这两个框架之间的主要区别。 首先,SpringMVC是Spring框架的一部分,强调的是轻量级、模块化和...

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

    java面试宝典

    springmvc基础.docx

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

    springMVC与Structs2的区别

    ### SpringMVC与Struts2的主要区别 #### 一、URL映射的处理方式 - **SpringMVC**: 在URL映射方面,SpringMVC采用了更为优雅的方式。它通过注解(如`@RequestMapping`)来指定URL路径,使得开发者能够以更简洁的...

    springmvc+mybatis面试题

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

Global site tag (gtag.js) - Google Analytics