struts2和spring mvc的比较
详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt236
| 
 Struts2  | 
 Springmvc  | 
|
| 
 机制  | 
 基于filter机制  | 
 基于servlet机制  | 
| 
 处理方式  | 
 Struts2框架是类级别的拦截,每次来了请求就创建一个Action,然后调用setter getter方法把request中的数据注入 Struts2实际上是通过setter getter方法与request打交道的。 Struts2中,一个Action对象对应一个request上下文。  | 
 Springmvc是方法级别的拦截,一个方法对应一个request上下文,而方法同时又跟一个url对应。 所以说从架构本身上 Springmvc就容易实现restful url。  | 
| 
 性能  | 
 Sturts2是基于类,每次发一次请求都会实例一個 action ,每个action都会被注入属性。  | 
 Springmvc会稍微比Struts2快,Springmvc 是基于方法的设计。  | 
| 
 参数传递  | 
 Struts2是在接受参数的时候,可以用属性来接受参数, 这就说明参数是让多个方法共享的。  | 
 Springmvc在接受参数的时候是基于方法的,每个方法都可设置自己的参数。  | 
| 
 设计思想  | 
 Struts2更符合oop的编程思想。struts2脱离了servlet ,Struts2的action可以是一个普通的java类。  | 
 Springmvc在servlet上做扩展  | 
| 
 Interceptor的实现机制  | 
 Struts2有以自己的interceptor机制。  | 
 spring mvc 用的是独立的AOP方式。  | 
| 
 优点  | 
 Struts2的 多层拦截器、多实例action性能都很好,并不是导致性能问题的原因。  | 
 除了spring-mvc.xml,基本上可以做到零配置。方法的访问支持resutful风格,参数的传递和配置都很灵活,Spring3 mvc的验证也是一个亮点,支 支持JSR303,处理ajax的请求更是方便,只需一个注解@ResponseBody ,然后直接返回响应文本即可  | 
| 
 缺点  | 
 Struts2由于采用了值栈,OGNL表达式等,会导致性能下降,很严重的下降。如果避免或减少使用这些,性能还是很好的。  | 
 基于springmvc的注解非常灵活方便,但是不利于维护,  | 
看Servelt规范:
引用
A filter is a reusable piece of code that can transform the content of HTTP requests, responses, and header information. Filters do not generally create a response or respond to a request as servlets do, rather they modify or adapt the requests for a resource, and modify or adapt responses from a resource.
简要翻译下:
 filter是一个可以复用的代码片段,可以用来转换HTTP请求、响应和头信息。Filter不像Servlet,它不能产生一个请求或者响应,它只是修改对某一资源的请求,或者修改从某一的响应。
JSR303是javaEE6中的一项子规范,叫做 Bean Validation,用于对Java Bean中的字段值进行验证。
struts2和spring mvc的比较的更多相关文章
- [Java语言] 《struts2和spring MVC》的区别_动力节点
		
1.Struts2是类级别的拦截, 一个类对应一个request上下文,SpringMVC是方法级别的拦截,一个方法对应一个request上下文,而方法同时又跟一个url对应,所以说从架构本身上Spr ...
 - struts2和spring mvc的区别
		
在项目中使用struts2和spring mvc为了实现后台的业务代码和前台数据之间的传递,现在基本上不会有用struts2的了,几次面试问的最多的关于struts2的问题就是struts2和spri ...
 - cpj-swagger分别整合struts2、spring mvc、servlet
		
cpj-swagger 原文地址:https://github.com/3cpj/swagger 1. Swagger是什么? 官方说法:Swagger是一个规范和完整的框架,用于生成.描述.调用和可 ...
 - struts2与spring mvc 的比较
		
1.传值: struts2通过set get来传值,而spring mvc 可以直接在方法里传值(String username,Model model)model也可以换成map来传值但不建义 mo ...
 - 【转】Struts2 和 Spring MVC对比
		
1. 实现机制 struts2框架是类级别的拦截,每次来了请求就创建一个controller中对应的Action,然后调用setter getter方法把request中的数据注入 .struts2实 ...
 - Struts2和Spring MVC 区别 今天面试被问到了
		
虽然说没有系统的学习过Spring MVC框架, 但是工作这么长时间, 基本上在WEB层使用的都是Spring MVC, 自己觉得Struts2也是一个不错的WEB层框架, 这两种框架至今自己还未有比 ...
 - 控制层技术:Servlet+reflection、Struts2、Spring MVC三者之间的比较学习
		
Servlet Struts2 Spring MVC 处理用户提交的数据 基于MVC设计模式的Web应用程序 是一个框架 是MVC框架 导入servlet包,配置web.xml文件 web.xml & ...
 - Struts2 和 spring mvc的 迭代标签常用属性对比
		
<s:iterator value="#users" var="u" status="st"> <c:forEach i ...
 - Spring MVC 3.0.5+Spring 3.0.5+MyBatis3.0.4全注解实例详解(二)
		
在上一篇文章中我详细的介绍了如何搭建maven环境以及生成一个maven骨架的web项目,那么这章中我将讲述Spring MVC的流程结构,Spring MVC与Struts2的区别,以及例子中的一些 ...
 
随机推荐
- codeforces 475D. CGCDSSQ
			
D. CGCDSSQ time limit per test 2 seconds memory limit per test 256 megabytes Given a sequence of int ...
 - word2vec原理(一) CBOW与Skip-Gram模型基础
			
word2vec原理(一) CBOW与Skip-Gram模型基础 word2vec原理(二) 基于Hierarchical Softmax的模型 word2vec原理(三) 基于Negative Sa ...
 - python 中 list 的各项操作
			
最近在学习 python 语言.大致学习了 python 的基础语法.觉得 python 在数据处理中的地位和它的 list 操作密不可分. 特学习了相关的基础操作并在这里做下笔记. ''' Pyth ...
 - Git时光机穿梭之工作区和暂存区
			
Git和其他版本控制系统如SVN的一个不同之处就是有暂存区的概念. 先来看名词解释. 工作区(Working Directory) 就是你在电脑里能看到的目录,比如我的learngit文件夹就是一个工 ...
 - (转载)Stackoverflow评选的C++推荐书单
			
C++必读书籍推荐 (原链接:http://bestcbooks.com/recommended-cpp-books 2013-10-07) 本文内容来自国外著名编程问答网站Stackoverflow ...
 - 14. Longest Common Prefix【leetcode】
			
14. Longest Common Prefix Write a function to find the longest common prefix string amongst an array ...
 - 前端开发之JavaScript篇
			
一.JavaScript介绍 前端三剑客之JavaScript,简称js,可能是这三个里面最难的一个了.很早以前,市面上流通着三种js版本,为了统一,ECMA(欧洲计算机制造协会)定义了规范的版本, ...
 - Python 装饰器总结
			
装饰器总结 前提 使用装饰器的前提在于Python提供的特性: 函数即对象,可以进行传递: 函数可以被定义在另外一个函数中: 可以通过一个例子来了解: def get_animal(name='dog ...
 - TCP/IP小记
			
--TCP/IP小记 -----------------2014/06/11 TCP的要求是:local_ip:local_port <==>remote_ip:remote_port这个 ...
 - 理解LGWR,Log File Sync Waits以及Commit的性能问题[转]
			
理解LGWR,Log File Sync Waits以及Commit的性能问题 一.概要: 1. Commit和log filesync的工作机制 2. 为什么log file wait太久 3. ...