- 浏览: 130399 次
- 性别:
- 来自: 吉林
文章分类
- 全部博客 (118)
- oracle数据库 (5)
- Web前端 (3)
- java后台 (6)
- Java虚拟机 (3)
- 大数据 (1)
- Java (27)
- 微信公众号 (1)
- ssh框架 (2)
- Java,eclipse (1)
- Hibernate (4)
- SSH (4)
- asp.net (1)
- XML,JSON (1)
- junit (1)
- SpringMVC (2)
- XML (2)
- JSON (2)
- HTTP AJAX POST请求 (2)
- request payload (1)
- form data (1)
- Content Type (1)
- Spring RESTful (1)
- RESTful (2)
- Git (2)
- 企业软件版本管理工具 (1)
- HIVE,HADOOP (1)
- Hadoop (1)
- Dobbo (1)
- 缓存(cache) (1)
- 服务器端,客户端 (1)
- Cookie (1)
- Session (1)
- MySQL索引 (1)
- 乐观锁,悲观锁 (1)
- 电子商务 (1)
- 面试部分 (1)
- 分布式事务处理 (1)
- java详解 (1)
- commons (1)
- NoClassDefFoundErrorLogFactory (1)
- Spring (1)
- tomcat (3)
- Ubuntu (1)
- 虚拟机 (1)
- Intel Virtual Technology (1)
- SVN (4)
- Taglib (5)
- java unsigned类型 (1)
- fmt (1)
- HMAC (1)
- linux (13)
- mysql (2)
- FTP (4)
- Maven (5)
- spring boot (6)
- myeclipse (1)
- web (1)
- Https (2)
- ssl (3)
- crt (1)
- cer (1)
- byte (1)
- 字符占字节 (1)
- 限制IP远程登录 (1)
- 禁止某些 IP 访问 (1)
- iptables (1)
- linux私钥登陆 (1)
- windows (1)
- openSSH (2)
- 大牛博客地址 (1)
- Maven常见异常 (1)
- shell命令 (1)
- WebWork2,Spring MVC (1)
- LinuxSS (0)
- Bitvise SSH Client (1)
- -bash-4.1$ (1)
- Centos7 (1)
- MQTT (5)
- Mosquitto (3)
- Mosquittos (0)
- HAProxy (1)
- 集群 (0)
- 负载均衡 (1)
- moqutte (1)
- 多线程 (1)
- Queue (1)
- BlockingQueue (1)
- ConcurrentLinkedQueue (1)
- erlang (1)
- jersey (1)
最新评论
我们现在流行的常用的MVC层,控制层Controller层的框架主要有Struts2和SpringMVC两个框架,分别对应着Action和Controller。那么SpringMVC和Struts的主要区别有那些呢?
一、框架机制
我们知道Struts2采用Filter实现,而SpringMVC则采用Servlet实现。
Struts2使用StrutsPrepareAndExecuteFilter,而SpringMVC使用DispatcherServlet。Filter是一种特殊的Servlet。Filter在容器启动之后即初始化;服务停止以后坠毁,晚于Servlet。Servlet在是在调用时初始化,先于Filter调用;服务停止后坠毁。
二、拦截机制
1、Struts2
Struts2框架是类级别的拦截,每次请求就会创建一个Action,和Spring整合时Struts2的Action Bean注入作用域是原型模式prototype(否则会出现线程并发问题),然后通过setter,getter吧request数据注入到属性。
Struts2中,一个Action对应一个request,response上下文,在接收参数时,可以通过属性接收,这说明属性参数是让多个方法共享的。
2、SpringMVC
SpringMVC是方法级别的拦截,一个方法对应一个Request上下文,所以方法直接基本上是独立的,独享request,response数据。而每个方法同时又何一个url对应,参数的传递是直接注入到方法中的,是方法所独有的。处理结果通过ModeMap返回给框架。
在Spring整合时,SpringMVC的Controller Bean默认单例模式Singleton,所以默认对所有的请求,只会创建一个Controller,有应为没有共享的属性,所以是线程安全的,如果要改变默认的作用域,需要添加@Scope注解修改。
三、性能方面
SpringMVC实现了零配置,由于SpringMVC基于方法的拦截,有加载一次单例模式bean注入。而Struts2是类级别的拦截,每次请求对应实例一个新的Action,需要加载所有的属性值注入,所以决定了SpringMVC更加快于Struts2。
四、拦截机制
Struts2有自己的拦截Interceptor机制,SpringMVC这是用的是独立的Aop方式。
一、框架机制
我们知道Struts2采用Filter实现,而SpringMVC则采用Servlet实现。
Struts2使用StrutsPrepareAndExecuteFilter,而SpringMVC使用DispatcherServlet。Filter是一种特殊的Servlet。Filter在容器启动之后即初始化;服务停止以后坠毁,晚于Servlet。Servlet在是在调用时初始化,先于Filter调用;服务停止后坠毁。
二、拦截机制
1、Struts2
Struts2框架是类级别的拦截,每次请求就会创建一个Action,和Spring整合时Struts2的Action Bean注入作用域是原型模式prototype(否则会出现线程并发问题),然后通过setter,getter吧request数据注入到属性。
Struts2中,一个Action对应一个request,response上下文,在接收参数时,可以通过属性接收,这说明属性参数是让多个方法共享的。
2、SpringMVC
SpringMVC是方法级别的拦截,一个方法对应一个Request上下文,所以方法直接基本上是独立的,独享request,response数据。而每个方法同时又何一个url对应,参数的传递是直接注入到方法中的,是方法所独有的。处理结果通过ModeMap返回给框架。
在Spring整合时,SpringMVC的Controller Bean默认单例模式Singleton,所以默认对所有的请求,只会创建一个Controller,有应为没有共享的属性,所以是线程安全的,如果要改变默认的作用域,需要添加@Scope注解修改。
三、性能方面
SpringMVC实现了零配置,由于SpringMVC基于方法的拦截,有加载一次单例模式bean注入。而Struts2是类级别的拦截,每次请求对应实例一个新的Action,需要加载所有的属性值注入,所以决定了SpringMVC更加快于Struts2。
四、拦截机制
Struts2有自己的拦截Interceptor机制,SpringMVC这是用的是独立的Aop方式。
发表评论
-
启动tomcat 一直在控制台输出 No mapping found for HTTP request with URI
2016-12-23 11:21 4068启动tomcat 一直在控制台输出 No mapping fo ... -
java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory 解决方案
2016-12-23 11:14 873Spring3.1启动时报错: Exception in t ... -
理解RESTful架构
2016-10-14 11:48 503越来越多的人开始意识 ... -
Spring RESTful服务接收和返回JSON最佳实践
2016-10-14 09:51 500返回JSON 1) 用Maven构建web项目: 构建过程 ... -
IE10以下的IE浏览器在form表单提交、a标签等场景下,接收application/json类型的响应时,会提示是否要下载该json文件
2016-10-13 15:35 592IE10以下的IE浏览器在form表单提交、a标签等场景下,接 ... -
SpringMVC如何接收application/json内容编码类型的参数?
2016-10-13 15:35 712[size=medium] 在上代码之前,有必要先说说@Res ... -
详解java类的生命周期
2016-04-28 10:16 488[size=small]引言 最近有 ... -
Struts+Spring+Hibernate整合入门详解
2016-04-28 10:18 441Java 5.0 Struts 2.0.9 Spring ... -
switch语句中的表达式
2016-04-28 10:18 707switch语句中的表达式只能是byte,short,char ... -
常见的几种RuntimeException
2016-04-27 14:13 409一般面试中java Exception(runtimeExce ... -
Java陷阱一箩筐----面试题集
2016-04-27 13:52 418找工作要面试,有面试就有对付面试的办法。以下一些题目来自我和我 ... -
MyBatis快速入门
2016-04-26 16:12 362只为成功找方法,不为失败找借口! MyBatis学习总结(一) ... -
Integer.toString(int par1,int par2)
2016-04-25 14:44 365Integer.toString(int par1,int ... -
Java中堆内存和栈内存详解
2016-04-01 10:32 481Java把内存分成两种,一 ... -
负数的二进制表示方法
2016-03-29 15:24 528今天在看base64编码转换时,既然对负数的二进制表示有些遗忘 ... -
Java关键字final、static使用总结
2016-03-24 11:24 361Java关键字final、static使 ... -
JAVA——Class对象的三种生成方式
2016-03-23 16:18 472Class类(在java.lang包中,Instances o ... -
Java内部类
2016-03-22 16:28 321http://www.cnblogs.com/yaoyingl ... -
java中的内部类总结
2016-03-22 16:02 447内部类不是很好理解,但说白了其实也就是一个类中还包含着另外一个 ... -
java面试题
2016-03-22 13:18 419http://www.blogjava.net/supercr ...
相关推荐
Spring MVC可以替代Struts作为控制器层,因为它的灵活性和可扩展性更强。Hibernate则作为数据访问层,处理与数据库的交互。这种整合方式通常被称为"Spring全家桶",它允许开发者利用各个框架的优点,构建出健壮且...
可以构建一个功能强大的Java Web应用,通过SpringMVC处理请求,Struts(尤其是Struts2)提供额外的MVC功能,MyBatis作为数据访问层处理数据库操作,而JUnit则帮助进行单元测试,确保整个系统的稳定性和正确性。...
在实际项目中,这三者可能会有以下的协作流程:用户发送请求,DispatcherServlet接收到请求后,根据配置找到对应的Struts2 Action或者Spring MVC Controller来处理。Controller/Action处理业务逻辑,并通过MyBatis...
Struts2是其最新版本,采用Model-View-Controller设计模式,提供了一套完整的解决方案,包括Action、Interceptor、Result等概念,使得开发者可以更方便地处理请求和响应。 4. Hibernate:Hibernate是一个对象关系...
整合Struts2与MyBatis或Hibernate时,Struts2的动作类(Action)接收请求并调用Service层,Service层再通过MyBatis或Hibernate操作数据库。 整合步骤通常包括以下部分: - 配置POM.xml文件:添加所需框架的依赖。 -...
Struts2提供了更强大的动作类和拦截器机制,可以实现复杂的业务逻辑控制。它整合了多种开源技术,如Freemarker和Tiles,为视图层提供了更多的选择。Struts2还支持国际化和主题,增强了用户体验。 5. **Hibernate**...
例如,Spring MVC作为前端控制器,Struts2可以用于特定的Action处理,Hibernate负责数据持久化,而MyBatis则提供更灵活的SQL操作。通过合理选择和集成,可以打造高效、稳定且易于维护的系统。在实际项目中,通常会...
Struts、Spring MVC和Struts2是Java Web开发中三个重要的MVC框架,它们都用于构建基于模型-视图-控制器(MVC)设计模式的Web应用程序。下面将分别介绍这三个框架的工作原理,并进行对比。 **Struts1原理:** Struts...
Maven负责构建和依赖管理,Struts2作为前端控制器处理HTTP请求,Spring提供业务逻辑和依赖注入,MyBatis处理数据访问,而Spring MVC则进一步优化了Web层的结构,使得视图和控制逻辑更清晰。 通过这样的整合,开发者...
描述中提到这是一个使用Spring 3和Hibernate 4构建的完全可运行的SpringMVC实例,这表明它不仅包含了前端控制器的实现,还涉及了持久层的管理。 在Java Web开发中,Model-View-Controller(MVC)是一种广泛采用的...
虽然现在已经逐渐被SpringMVC和Struts2取代,但理解其工作原理有助于理解MVC模式的历史发展。 4. **Struts2**:Struts2是Struts1的升级版,它结合了WebWork的优势,提供了更强大的拦截器(Interceptor)机制和更...
SSH是Java开发中的一种经典企业级应用框架,由Struts2、Hibernate和Spring三个开源框架组合而成。这个框架集合提供了模型-视图-控制器(MVC)架构模式,持久层管理,以及服务层的实现,使得开发高效且灵活。下面我们...
在Java开发领域,Spring、SpringMVC、MyBatis和Struts2是四个非常重要的框架,它们被广泛用于构建企业级应用。这个压缩包包含了这四个框架相关的83个jar文件,为开发者提供了一站式的解决方案,避免了逐一搜索和添加...
Struts2、MyBatis和SpringMVC是Java Web开发中的三大框架,它们各自负责不同的职责,协同工作能构建出高效、灵活的企业级应用。在这个名为"某著名培训机构struts2+mybatis+springMVC整合代码"的压缩包中,你将找到一...
这些文件名揭示了一系列关于Java企业级开发中常用框架的学习教程,包括Struts2、Hibernate、Spring、Spring MVC和MyBatis。以下是对这些框架及其在实际应用中的关键知识点的详细阐述: 1. **Struts2**:Struts2是...
Struts2和Hibernate是两种非常流行的Java Web开发框架,它们分别负责MVC(Model-View-Controller)架构中的控制层和持久层。本教程通过一个简单的Demo,展示了如何将这两个框架整合,实现基本的CRUD(创建、读取、...
【SpringMVC与Struts的区别】 SpringMVC相比Struts具有以下优势: 1. 更高的灵活性和可扩展性。 2. 更好的架构设计,如约定优于配置。 3. 简洁的Web层开发,支持RESTful风格。 4. 与Spring框架其他组件深度集成。 5...
Struts2、Spring和iBatis是Java Web开发中常用的三大框架,它们分别负责MVC模式中的Action层、业务逻辑层和服务数据访问层。本文将详细介绍这三个框架如何整合,以及在实际项目中如何运用。 首先,Struts2作为表现...
- 入口不同:SpringMVC 由 Servlet 控制,Struts2 通过 Filter 实现。 - 设计模式:SpringMVC 基于方法设计,而 Struts2 基于类。 - 性能:SpringMVC 因为基于方法设计,可能稍快于 Struts2。 - JSR303 支持:...
Struts和Spring是Java Web开发中两种非常流行的MVC(Model-View-Controller)框架,它们都致力于解耦业务逻辑和展示层,提高代码的可维护性和可测试性。然而,两者在设计理念、功能特性以及实现方式上存在显著差异。...